์์ฒด ๊ด๋ฆฌ ๋ฐฐํฌ์๋ฒ๋ฅผ ์ํ ํ๋ก๋์ ๋ ธํธ
์ด ํ์ด์ง์ ๋ด์ฉ
์ด ํ์ด์ง์์๋ ํนํ ํ๋ก๋์ ํ๊ฒฝ์์ ์คํํ ๋ MongoDB์ ์ํฅ์ ๋ฏธ์น๋ ์์คํ ๊ตฌ์ฑ์ ์์ธํ ์ค๋ช ํฉ๋๋ค.
๊ฒฝ๊ณ
MMAPv1 ์ ๊ฑฐ๋จ
MongoDB 4.2 ์ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ MMAPv1 ์คํ ๋ฆฌ์ง ์์ง ์ ์ ๊ฑฐํฉ๋๋ค. MMAPv1 ์คํ ๋ฆฌ์ง ์์ง ๋ฐฐํฌ์๋ฒ ๋ฅผ WiredTiger ์คํ ๋ฆฌ์ง ์์ง ์ผ๋ก ๋ณ๊ฒฝํ๋ ค๋ฉด ๋ค์์ ์ฐธ์กฐํ์ธ์.
์ฐธ๊ณ
MongoDB Atlas๋ ํด๋ผ์ฐ๋์ ํธ์คํ ๋๋ ์๋น์คํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ค. ํธ์คํ ์๋น์ค์ธ MongoDB Cloud Manager์ ์จํ๋ ๋ฏธ์ค ์๋ฃจ์ ์ธ Ops Manager๋ MongoDB ์ธ์คํด์ค์ ๋ชจ๋ํฐ๋ง, ๋ฐฑ์ ๋ฐ ์๋ํ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์์ธํ ์ค๋ช ์ Atlas ๋ฌธ์, MongoDB Cloud Manager ๋ฌธ์ ๋ฐ Ops Manager ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
MongoDB Atlas์์ ํธ์คํ ๋๋ ๋ฐฐํฌ์ ํ๋ก๋์ ์คํ์ ๋ํด ์์ธํ ์์๋ณด๋ ค๋ฉด Atlas ํ๋ก๋์ ๋ ธํธ๋ฅผ ์ฐธ์กฐํ์ธ์.
ํ๋ซํผ ์ง์
ํ๋ก๋์ ํ๊ฒฝ์์ ์คํํ๋ ค๋ฉด ์ด์ ์ฒด์ ๊ถ์ฅ ์ฌํญ์ ๋ํ ๊ถ์ฅ ํ๋ซํผ์ ์ฐธ์กฐํ์ธ์.
ํ๋ซํผ ์ง์ ์ฐธ๊ณ ์ฌํญ
์ฐธ๊ณ
MongoDB 4.0์ macOS 10.12.x, 10.13.x ๋ฐ 10.14.0์์ ๋น์ ์ ์ข ๋ฃ ์ ๋ฐ์ดํฐ๊ฐ ์์ค๋ ์ ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ macOS 10.14.1์์ Apple์ ์ํด ์์ ๋์์ต๋๋ค.
์์ธํ ๋ด์ฉ์ WT-4018 ๋ฅผ ์ฐธ์กฐํ์ธ์.
x86_64
MongoDB์๋ ๋ค์ ์ต์ x86_64
๋ง์ดํฌ๋ก์ํคํ
์ฒ๊ฐ ํ์ํฉ๋๋ค.
Intel
x86_64
์ ๊ฒฝ์ฐ MongoDB์๋ ๋ค์ ์ค ํ๋๊ฐ ํ์ํฉ๋๋ค.Sandy Bridge ์ด์ ์ฝ์ด ํ๋ก์ธ์, ๋๋
Tiger Lake ์ด์์ Celeron ๋๋ Pentium ํ๋ก์ธ์.
AMD
x86_64
์ ๊ฒฝ์ฐ MongoDB์๋ ๋ค์์ด ํ์ํฉ๋๋ค.Bulldozer ์ด์์ ํ๋ก์ธ์.
MongoDB 5.0๋ถํฐ mongod
, mongos
๋ฐ ๋ ๊ฑฐ์ mongo
์
ธ์ ์ด ์ต์ ๋ง์ดํฌ๋ก์ํคํ
์ฒ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ์ง ์๋ x86_64
ํ๋ซํผ์ ๋ ์ด์ ์ง์ํ์ง ์์ต๋๋ค.
MongoDB๋ RHCK(Red Hat Compatible Kernel)๋ฅผ์คํํ๋ Oracle Linux๋ง ์ง์ํฉ๋๋ค. MongoDB๋ UEK(Unbreakable Enterprise Kernel)๋ฅผ ์ง์ํ์ง ์์ต๋๋ค.
MongoDB 5.0์์๋ ํน์ Intel ๋ฐ AMD ํ๋ก์ธ์์์ ์ฌ์ฉํ ์ ์๋ AVX ๋ช ๋ น์ด ์ธํธ๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
ARM64
arm64
์ MongoDB์๋ ARMv8.2-A ๋๋ ๊ทธ ์ด์์ ๋ง์ดํฌ๋ก ์ํคํ
์ฒ๊ฐ ํ์ํฉ๋๋ค.
MongoDB 5.0๋ถํฐ mongod
, mongos
๋ฐ ๋ ๊ฑฐ์ mongo
์
ธ์ ์ด ์ต์ ๋ง์ดํฌ๋ก์ํคํ
์ฒ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ์ง ์๋ arm64
ํ๋ซํผ์ ๋ ์ด์ ์ง์ํ์ง ์์ต๋๋ค.
์ฐธ๊ณ
MongoDB๋ ๋ ์ด์ ์ ์ ํ CPU ์ํคํ ์ฒ(Raspberry Pi 4)๊ฐ ์๋ ๋จ์ผ ๋ณด๋ ํ๋์จ์ด๋ฅผ ์ง์ํ์ง ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ MongoDB 5.0์ ํธํ์ฑ ๋ณ๊ฒฝ ์ฌํญ์ ์ฐธ์กฐํ์ธ์.
ํ๋ซํผ ์ง์ ๋งคํธ๋ฆญ์ค
์ค์
v4.4 ์ฌ์ฉ ์ข ๋ฃ
v4.4๋ 2024๋ 2์ 29์ ์ฌ์ฉ์ด ์ข ๋ฃ๋์ด ๋ ์ด์ MongoDB์์ ์ง์๋์ง ์์ต๋๋ค.
ํ๋ซํผ | ์ํคํ
์ฒ | ์๋์
| 8.0 | 7.0 | 6.0 | 5.0 | 4.4 |
---|---|---|---|---|---|---|---|
Amazon Linux 2023 | x86_64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | |||
Amazon Linux 2023 | x86_64 | Community | โ | โ | |||
Amazon Linux V2 | x86_64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | โ | โ | |
Amazon Linux V2 | x86_64 | Community | โ | โ | โ | โ | |
Debian 12 | x86_64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | |||
Debian 12 | x86_64 | Community | โ | โ | |||
Debian 11 | x86_64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | 5.0.8+ | ||
Debian 11 | x86_64 | Community | โ | โ | 5.0.8+ | ||
Debian 10 | x86_64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | โ | ||
Debian 10 | x86_64 | Community | โ | โ | โ | ||
Debian 9 | x86_64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | |||
Debian 9 | x86_64 | Community | โ | โ | |||
RHEL/Rocky/Alma/Oracle Linux 9.0+ [1] | x86_64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | 6.0.4+ | ||
RHEL/Rocky/Alma/Oracle Linux 9.0+ [1] | x86_64 | Community | โ | โ | 6.0.4+ | ||
RHEL/Rocky/Alma/Oracle Linux 8.0+ [1] | x86_64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | โ | โ | โ |
RHEL/Rocky/Alma/Oracle Linux 8.0+ [1] | x86_64 | Community | โ | โ | โ | โ | โ |
RHEL/CentOS/Oracle Linux 7.0+ [1] | x86_64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | โ | โ | |
RHEL/CentOS/Oracle Linux 7.0+ [1] | x86_64 | Community | โ | โ | โ | โ | |
RHEL/CentOS/Oracle Linux 6.2+ [1] | x86_64 | ์ํฐํ๋ผ์ด์ฆ | โ | ||||
RHEL/CentOS/Oracle Linux 6.2+ [1] | x86_64 | Community | โ | ||||
SLES 15 | x86_64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | โ | โ | โ |
SLES 15 | x86_64 | Community | โ | โ | โ | โ | โ |
SLES 12 | x86_64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | โ | โ | |
SLES 12 | x86_64 | Community | โ | โ | โ | โ | |
Ubuntu 24.04 | x86_64 | ์ํฐํ๋ผ์ด์ฆ | โ | ||||
Ubuntu 24.04 | x86_64 | Community | โ | ||||
Ubuntu 22.04 | x86_64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | 6.0.4+ | ||
Ubuntu 22.04 | x86_64 | Community | โ | โ | 6.0.4+ | ||
Ubuntu 20.04 | x86_64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | โ | โ | โ |
Ubuntu 20.04 | x86_64 | Community | โ | โ | โ | โ | โ |
Ubuntu 18.04 | x86_64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | โ | ||
Ubuntu 18.04 | x86_64 | Community | โ | โ | โ | ||
Ubuntu 16.04 | x86_64 | ์ํฐํ๋ผ์ด์ฆ | โ | ||||
Ubuntu 16.04 | x86_64 | Community | โ | ||||
Windows 11 | x86_64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | โ | ||
Windows 11 | x86_64 | Community | โ | โ | โ | ||
Windows Server 2022 | x86_64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | โ | ||
Windows Server 2022 | x86_64 | Community | โ | โ | โ | ||
Windows Server 2019 | x86_64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | โ | โ | |
Windows Server 2019 | x86_64 | Community | โ | โ | โ | โ | |
Windows 10 / Server 2016 | x86_64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | โ | ||
Windows 10 / Server 2016 | x86_64 | Community | โ | โ | โ | ||
macOS 14 | x86_64 | ์ํฐํ๋ผ์ด์ฆ | โ | ||||
macOS 14 | x86_64 | Community | โ | ||||
macOS 13 | x86_64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | |||
macOS 13 | x86_64 | Community | โ | โ | |||
macOS 12 | x86_64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | |||
macOS 12 | x86_64 | Community | โ | โ | |||
macOS 11 | x86_64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | |||
macOS 11 | x86_64 | Community | โ | โ | |||
macOS 10.15 | x86_64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | โ | ||
macOS 10.15 | x86_64 | Community | โ | โ | โ | ||
macOS 10.14 | x86_64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | |||
macOS 10.14 | x86_64 | Community | โ | โ | |||
macOS 10.15 | x86_64 | ์ํฐํ๋ผ์ด์ฆ | โ | ||||
macOS 10.15 | x86_64 | Community | โ | ||||
macOS 14 | arm64 | ์ํฐํ๋ผ์ด์ฆ | โ | ||||
macOS 14 | arm64 | Community | โ | ||||
macOS 13 | arm64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | |||
macOS 13 | arm64 | Community | โ | โ | |||
macOS 12 | arm64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | |||
macOS 12 | arm64 | Community | โ | โ | |||
macOS 11 | arm64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | |||
macOS 11 | arm64 | Community | โ | โ | |||
Amazon Linux 2023 | arm64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | |||
Amazon Linux 2023 | arm64 | Community | โ | โ | |||
Amazon Linux 2 | arm64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | โ | 4.4.4+ | |
Amazon Linux 2 | arm64 | Community | โ | โ | โ | 4.4.4+ | |
RHEL/CentOS/Rocky/Alma 9 | arm64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | โ | ||
RHEL/CentOS/Rocky/Alma 9 | arm64 | Community | โ | โ | โ | ||
RHEL/CentOS/Rocky/Alma 8 | arm64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | โ | โ | 4.4.4+ |
RHEL/CentOS/Rocky/Alma 8 | arm64 | Community | โ | โ | โ | โ | 4.4.4+ |
Ubuntu 24.04 | arm64 | ์ํฐํ๋ผ์ด์ฆ | โ | ||||
Ubuntu 24.04 | arm64 | Community | โ | ||||
Ubuntu 22.04 | arm64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | 6.0.4+ | ||
Ubuntu 22.04 | arm64 | Community | โ | โ | 6.0.4+ | ||
Ubuntu 20.04 | arm64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | โ | โ | โ |
Ubuntu 20.04 | arm64 | Community | โ | โ | โ | โ | โ |
Ubuntu 18.04 | arm64 | ์ํฐํ๋ผ์ด์ฆ | โ | โ | โ | ||
Ubuntu 18.04 | arm64 | Community | โ | โ | โ | ||
Ubuntu 16.04 | arm64 | ์ํฐํ๋ผ์ด์ฆ | โ | ||||
RHEL/Rocky/Alma 9 | ppc64le | ์ํฐํ๋ผ์ด์ฆ | โ | โ | |||
RHEL/Rocky/Alma 8 | ppc64le | ์ํฐํ๋ผ์ด์ฆ | โ | โ | โ | โ | โ |
RHEL/CentOS 7 | ppc64le | ์ํฐํ๋ผ์ด์ฆ | 6.0.7+ | โ | โ | ||
RHEL/Rocky/Alma 8 | s390x | ์ํฐํ๋ผ์ด์ฆ | โ | โ | โ | 5.0.9+ | |
RHEL/CentOS 7 | s390x | ์ํฐํ๋ผ์ด์ฆ | โ | โ | โ | ||
RHEL/CentOS 7 | s390x | Community | โ | โ |
[1] | (1, 2, 3, 4, 5, 6, 7, 8) Oracle Linux์์ MongoDB๋ Red Hat ํธํ ์ปค๋๋ง ์ง์ํฉ๋๋ค. |
[2] | MongoDB ๋ฒ์ 5.0 ์ด์์ SLES 12 ์๋น์ค ํฉ 5์ ๋ํด ํ ์คํธ๋ฉ๋๋ค. ์ด์ ๋ฒ์ ์ MongoDB๋ ์๋น์ค ํฉ ์์ด SLES 12์ ๋ํด ํ ์คํธ๋ฉ๋๋ค. |
๊ถ์ฅ ํ๋ซํผ
MongoDB๋ ๋ค์ํ ํ๋ซํผ์ ์ง์ํ์ง๋ง x86_64
์ํคํ
์ฒ์ ํ๋ก๋์
์์๋ ๋ค์ ์ด์ ์ฒด์ ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
Amazon Linux
Debian
RHEL [3]
SLES
Ubuntu LTS
Windows ์๋ฒ
์ต์์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ผ๋ ค๋ฉด ์ต์ ๋ฒ์ ์ ํ๋ซํผ์ ์คํํ์ธ์. ์ด์ ๋ฒ์ ์ ์คํํ๋ ๊ฒฝ์ฐ ํด๋น ์ ๊ณต์๊ฐ ํด๋น ๋ฒ์ ์ ์ง์ํ๋์ง ํ์ธํฉ๋๋ค.
[3] | RHEL ๋ฒ์ 8.0+์ฉ์ผ๋ก ์ถ์๋ MongoDB ์จํ๋ ๋ฏธ์ค ์ ํ์ ํด๋น ๋ฐฐํฌํ์ด ์์ ํ RHEL ํธํ์ฑ์ ์ ๊ณตํด์ผ ํ๋ ์๋ฌด๋ฅผ ์ถฉ์กฑํ๋ ๊ฒฝ์ฐ์ ํํด Rocky Linux ๋ฒ์ 8.0+ ๋ฐ AlmaLinux ๋ฒ์ 8.0+์ ํธํ๋ฉ๋๋ค. |
์ต์ ์คํ ์ด๋ธ ํจํค์ง ์ฌ์ฉ
์์ ์ ์ธ ์ต์ ๋ฆด๋ฆฌ์ค๊ฐ ์ค์น๋์ด ์๋์ง ํ์ธํฉ๋๋ค.
๋ชจ๋ MongoDB ๋ฆด๋ฆฌ์ค๋ MongoDB ๋ค์ด๋ก๋ ์ผํฐ ํ์ด์ง์์ ํ์ธํ ์ ์์ต๋๋ค. MongoDB ๋ค์ด๋ก๋ ์ผํฐ๋ ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ํตํด ์ค์นํ๋ ๊ฒฝ์ฐ์๋ ํ์ฌ์ ์์ ์ ์ธ ๋ฆด๋ฆฌ์ค๋ฅผ ํ์ธํ ์ ์๋ ์ข์ ์ฅ์์ ๋๋ค.
๋ค๋ฅธ MongoDB ์ ํ์ ๊ฒฝ์ฐ, MongoDB ๋ค์ด๋ก๋ ์ผํฐ ํ์ด์ง ๋๋ ํด๋น ์ค๋ช ์๋ฅผ ์ฐธ์กฐํ์ธ์.
MongoDB dbPath
dbPath
๋๋ ํ ๋ฆฌ์ ํ์ผ์ ๊ตฌ์ฑ๋ ์คํ ๋ฆฌ์ง ์์ง๊ณผ ์ผ์นํด์ผ ํฉ๋๋ค. mongod
dbPath
์ ์ง์ ๋ ๊ฒ์ด ์๋, ์คํ ๋ฆฌ์ง ์์ง์์ ๋ง๋ ๋ฐ์ดํฐ ํ์ผ์ด ํฌํจ๋์ด ์๋ ๊ฒฝ์ฐ --storageEngine
๊ฐ ์์๋์ง ์์ต๋๋ค.
mongod
๋ ์ง์ ๋ dbPath
์ ๋ํ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ๊ถํ์ด ์์ด์ผ ํฉ๋๋ค.
๋ฐ์ด๋ฌ์ค ๋ฐฑ์ (AV) ์ค์บ๋ ๋๋ ์๋ํฌ์ธํธ ํ์ง ๋ฐ ๋์(EDR) ์ค์บ๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ database storage path
๋ฐ database log path
๋ฅผ ๊ฒ์ฌ์์ ์ ์ธํ๋๋ก ์ค์บ๋๋ฅผ ๊ตฌ์ฑํ์ธ์.
database storage path
์ ๋ฐ์ดํฐ ํ์ผ์ด ์์ถ๋ฉ๋๋ค. ๋ํ ์ํธํ๋ ์คํ ๋ฆฌ์ง ์์ง์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ฐ์ดํฐ ํ์ผ๋ ์ํธํ๋ฉ๋๋ค. ์ด๋ฌํ ํ์ผ์ ์ค์บํ๋ ๋ฐ ๋๋ I/O ๋ฐ CPU ๋น์ฉ์ ๋ณด์์์ ์ด์ ์์ด ์ฑ๋ฅ์ ํฌ๊ฒ ์ ํ์ํฌ ์ ์์ต๋๋ค.
database storage path
๋ฐ database log path
์์ ๋๋ ํ ๋ฆฌ๋ฅผ ์ ์ธํ์ง ์์ผ๋ฉด ์ค์บ๋๊ฐ ์ค์ํ ํ์ผ์ ๊ฒฉ๋ฆฌํ๊ฑฐ๋ ์ญ์ ํ ์ ์์ต๋๋ค. ํ์ผ์ด ๋๋ฝ๋๊ฑฐ๋ ๊ฒฉ๋ฆฌ๋๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์์๋๊ณ MongoDB ์ธ์คํด์ค๊ฐ ์ถฉ๋ํ ์ ์์ต๋๋ค.
๋์์ฑ
wiredTiger
WiredTiger๋ ์ปฌ๋ ์ ์ ๋ฌธ์์ ๋ํด ์ฝ๊ธฐ ์ํ์์ ์ฐ๊ธฐ ์ํ์์ ๋์ ์ก์ธ์ค๋ฅผ ์ง์ํฉ๋๋ค. ํด๋ผ์ด์ธํธ๋ ์ฐ๊ธฐ ์์ ์ด ์งํ๋๋ ๋์ ๋ฌธ์๋ฅผ ์ฝ์ ์ ์์ผ๋ฉฐ, ์ฌ๋ฌ ์ค๋ ๋๊ฐ ๋์์ ์ปฌ๋ ์ ์ ์ฌ๋ฌ ๋ฌธ์๋ฅผ ์์ ํ ์ ์์ต๋๋ค.
ํ
๋ค์๋ ์ฐธ์กฐํ์ธ์.
์ถฉ๋ถํ RAM ๋ฐ CPU ํ ๋น์์๋ WiredTiger๊ฐ ์ฌ๋ฌ CPU ์ฝ์ด๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ๊ณผ ์์ ์ฒ๋ฆฌ๋์ ๊ฐ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
๋ฐ์ดํฐ ์ผ๊ด์ฑ
์ ๋๋ง
MongoDB๋ ์จ๋์คํฌ ์ ๋์ ๋ฏธ๋ฆฌ ์ฐ๊ธฐ ๋ก๊น
์ ์ฌ์ฉํฉ๋๋ค. ์ ๋๋ง์ ์ฌ์ฉํ๋ฉด MongoDB๊ฐ ์ถฉ๋ ๋๋ ๊ธฐํ ์ฌ๊ฐํ ์ค๋ฅ๋ก ์ธํด ์ข
๋ฃ๋ mongod
๊ฒฝ์ฐ ์ ๋์ ๊ธฐ๋ก๋์์ง๋ง ๋ฐ์ดํฐ ํ์ผ์ ๊ธฐ๋ก๋์ง ์์ ์ฐ๊ธฐ ์์
์ ์ ์ํ๊ฒ ๋ณต๊ตฌํ ์ ์์ต๋๋ค.
mongod
๊ฐ ์ถฉ๋ ํ ๋ฐ์ดํฐ ํ์ผ์ ๋ณต๊ตฌํ๊ณ ๋ฐ์ดํฐ ํ์ผ์ ์ ํจํ ์ํ๋ก ์ ์งํ ์ ์๋๋ก ์ ๋๋ง์ ํ์ฑํ๋ ์ํ๋ก ๋ก๋๋ค. ์์ธํ ๋ด์ฉ์ ์ ๋๋ง ์ ์ฐธ์กฐํ์ธ์.
WiredTiger ์คํ ๋ฆฌ์ง ์์ง ์ ์ฌ์ฉํ๋ ๋ณต์ ๋ณธ ์ธํธ ๋ฉค๋ฒ์ ๋ํด์๋ --nojournal
์ต์
๋๋ storage.journal.enabled: false
๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.
readConcern
์ฐ๊ธฐ์์ ์น์ธ์ ์์ฒญํ๋ ๊ฒฝ์ฐ ์ธ๊ณผ์ ์ผ๋ก ์ผ๊ด๋ ์ธ์ ์ ์ฌ์ฉํ์ฌ ์์ ์ ์ฐ๊ธฐ๋ฅผ ์ฝ์ ์ ์์ต๋๋ค.
์ฐ๊ธฐ ๊ณ ๋ ค
์ฐ๊ธฐ ๊ณ ๋ ค๋ ์ฐ๊ธฐ ์์ ์ ๋ํด MongoDB์์ ์์ฒญํ๋ ์น์ธ ์์ค์ ์ค๋ช ํฉ๋๋ค. ์ฐ๊ธฐ ๊ณ ๋ ค ์์ค์ ์ฐ๊ธฐ ์์ ์ด ์ผ๋ง๋ ๋นจ๋ฆฌ ๋ฐํ๋๋์ง์ ์ํฅ์ ์ค๋๋ค. ์ฐ๊ธฐ ์์ ์ ์ฐ๊ธฐ ์ฐ๋ ค๊ฐ ์ฝํ ๊ฒฝ์ฐ ๋น ๋ฅด๊ฒ ๋ฐํ๋ฉ๋๋ค. ๋์ฑ ๊ฐํ ์ฐ๊ธฐ ๊ณ ๋ ค๋ฅผ ์ฌ์ฉํ๋ฉด ํด๋ผ์ด์ธํธ๋ ์ฐ๊ธฐ ์์ ์ ๋ณด๋ธ ํ MongoDB๊ฐ ์์ฒญ๋ ์ฐ๊ธฐ ๊ณ ๋ ค ์์ค์์ ์ฐ๊ธฐ ์์ ์ ํ์ธํ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํฉ๋๋ค. ์ฐ๊ธฐ ๊ณ ๋ ค๊ฐ ์ถฉ๋ถํ์ง ์์ ๊ฒฝ์ฐ ํด๋ผ์ด์ธํธ์๋ ์ฐ๊ธฐ ๊ณ ๋ ค๊ฐ ์ฑ๊ณตํ ๊ฒ์ผ๋ก ํ์๋ ์ ์์ง๋ง ์๋ฒ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ ์ง์๋์ง ์์ ์ ์์ต๋๋ค.
๋ฐฐํฌ์ ์ ํฉํ ์ฐ๊ธฐ ๊ณ ๋ ค ์์ค์ ์ ํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ฐ๊ธฐ ๊ณ ๋ ค ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Networking
์ ๋ขฐํ ์ ์๋ ๋คํธ์ํน ํ๊ฒฝ ์ฌ์ฉ
์ ์ ์๋ ๋ชจ๋ ์ปดํจํฐ, ์์คํ , ๋คํธ์ํฌ์ ์ก์ธ์ค๋ฅผ ์ฐจ๋จํ๋ ๋คํธ์ํฌ ๊ท์น์ ์ฌ์ฉํ์ฌ ํญ์ ์ ๋ขฐํ ์ ์๋ ํ๊ฒฝ์์ MongoDB๋ฅผ ์คํํ์ธ์. ๋คํธ์ํฌ์ ์์กดํ๋ ๋ชจ๋ ๋ฏผ๊ฐํ ์์คํ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก MongoDB deployment๋ ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ, ๋ชจ๋ํฐ๋ง ์๋น์ค ๋ฐ ๊ธฐํ MongoDB ๊ตฌ์ฑ ์์์ ๊ฐ์ด ์ก์ธ์ค๊ฐ ํ์ํ ํน์ ์์คํ ์์๋ง ์ก์ธ์คํ ์ ์์ด์ผ ํฉ๋๋ค.
์ค์
๊ธฐ๋ณธ์ ์ผ๋ก ๊ถํ ๋ถ์ฌ๋ ํ์ฑํ๋์ด ์์ง ์์ผ๋ฉฐ mongod
๋ ์ ๋ขฐํ ์ ์๋ ํ๊ฒฝ์ ๊ฐ์ ํฉ๋๋ค. ํ์์ ๋ฐ๋ผ authorization
๋ชจ๋๋ฅผ ํ์ฑํํฉ๋๋ค. MongoDB์์ ์ง์๋๋ ์ธ์ฆ ๋ฉ์ปค๋์ฆ ๋ฐ MongoDB์ ๊ถํ ๋ถ์ฌ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์์ฒด ๊ด๋ฆฌ ๋ฐฐํฌ์ ๋ํ ์ธ์ฆ ๋ฐ ์์ฒด ๊ด๋ฆฌ ๋ฐฐํฌ์ ์ญํ ๊ธฐ๋ฐ ์ก์ธ์ค ์ ์ด๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ณด์์ ๋ํ ์ถ๊ฐ ์ ๋ณด ๋ฐ ๊ณ ๋ ค ์ฌํญ์ ๋ณด์ ์น์ ์ ๋ฌธ์, ํนํ ๋ค์์ ์ฐธ์กฐํ์ธ์.
Windows ์ฌ์ฉ์์ ๊ฒฝ์ฐ Windows์์ MongoDB๋ฅผ ๋ฐฐํฌํ ๋ TCP ๊ตฌ์ฑ์ ๊ดํ Windows Server ํ ํฌ๋ท ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
HTTP ์ธํฐํ์ด์ค ๋นํ์ฑํ
HTTP ์ธํฐํ์ด์ค๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋นํ์ฑํ๋์ด ์์ต๋๋ค. ํ๋ก๋์ ํ๊ฒฝ์์๋ HTTP ์ธํฐํ์ด์ค๋ฅผ ํ์ฑํํ์ง ๋ง์ธ์.
์ฐ๊ฒฐ ํ ํฌ๊ธฐ ๊ด๋ฆฌ
์ฌ์ฉ ์ฌ๋ก์ ๋ง๊ฒ ์ฐ๊ฒฐ ํ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ์ฌ mongod
๋๋ mongos
์ธ์คํด์ค์ ์ฐ๊ฒฐ ๋ฆฌ์์ค์ ๊ณผ๋ถํ๊ฐ ๊ฑธ๋ฆฌ์ง ์๋๋ก ํ์ธ์. ํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ผ๋ฐ์ ์ธ ์์ฒญ ์๋ฅผ ๊ธฐ์ค์ผ๋ก 110~115%์์ ์์ํ์ฌ ํ์์ ๋ฐ๋ผ ์ฐ๊ฒฐ ํ ํฌ๊ธฐ๋ฅผ ์์ ํฉ๋๋ค. ์ฐ๊ฒฐ ํ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๋ ค๋ฉด ์ฐ๊ฒฐ ํ ์ต์
์ ์ฐธ์กฐํ์ธ์.
connPoolStats
๋ช
๋ น์ ์ค๋ฉ๋ ํด๋ฌ์คํฐ ๋ด mongos
๋ฐ mongod
์ธ์คํด์ค์ ๋ํ ํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ ค ์๋ ์ฐ๊ฒฐ ์์ ๊ดํ ์ ๋ณด๋ฅผ ๋ฐํํฉ๋๋ค.
์ถฉ๋ถํ RAM ๋ฐ CPU ํ ๋น๋ ์ฐธ์กฐํ์ธ์.
ํ๋์จ์ด ๊ณ ๋ ค ์ฌํญ
MongoDB๋ ์์ฉ ํ๋์จ์ด๋ฅผ ์ผ๋์ ๋๊ณ ํน๋ณํ ์ค๊ณ๋์์ผ๋ฉฐ, ํ๋์จ์ด ์๊ตฌ ์ฌํญ์ด๋ ์ ํ ์ฌํญ์ด ๊ฑฐ์ ์์ต๋๋ค. MongoDB์ ํต์ฌ ๊ตฌ์ฑ ์์๋ ์ฃผ๋ก x86/x86_64 ํ๋ก์ธ์์ ๊ฐ์ ๋ฆฌํ ์๋์ ํ๋์จ์ด์์ ์คํ๋ฉ๋๋ค. ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(์: ๋๋ผ์ด๋ฒ)๋ ๋น ๋๋ ๋ฆฌํ ์๋์ ์์คํ ์์ ์คํ๋ ์ ์์ต๋๋ค.
์ถฉ๋ถํ RAM ๋ฐ CPU ํ ๋น
์ต์ํ ๊ฐ mongod
๋๋ mongos
์ธ์คํด์ค๊ฐ ์ค์ ์ฝ์ด 2๊ฐ ๋๋ ๋ฉํฐ ์ฝ์ด์ธ ๋ฌผ๋ฆฌ์ CPU 1๊ฐ์ ์ก์ธ์คํ ์ ์์ด์ผ ํฉ๋๋ค.
wiredTiger
WiredTiger ์คํ ๋ฆฌ์ง ์์ง์ ๋ฉํฐ์ค๋ ๋๋ก, ์ถ๊ฐ CPU ์ฝ์ด๋ฅผ ํ์ฉํ ์ ์์ต๋๋ค. ํนํ ํ์ฑ ์ค๋ ๋์ ์ด ๊ฐ์(์ ๋์ ์์ )๋ ์ฌ์ฉ ๊ฐ๋ฅํ CPU ์์ ๊ด๋ จ์ด ์์ผ๋ฉฐ ์ฑ๋ฅ์ ์ํฅ์ ์ค ์ ์์ต๋๋ค.
๋์ ํ์ฑ ์์ ์๊ฐ CPU ์๋งํผ ์ฆ๊ฐํ๋ฉด ์ฒ๋ฆฌ๋์ด ์ฆ๊ฐํฉ๋๋ค.
๋์ ํ์ฑ ์์ ์๊ฐ CPU ์๋ฅผ ์ผ๋ถ ์๊ณ๊ฐ๋งํผ ์ด๊ณผํ๋ฉด ์ฒ๋ฆฌ๋์ด ๊ฐ์ํฉ๋๋ค.
์๊ณ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐ๋ผ ๋ค๋ฆ
๋๋ค. ์ฒ๋ฆฌ๋์ ์คํํ๊ณ ์ธก์ ํ์ฌ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ์ฅ ์ ํฉํ ๋์ ํ์ฑ ์์
์๋ฅผ ๊ฒฐ์ ํ ์ ์์ต๋๋ค. mongostat
์ ์ถ๋ ฅ์ (ar|aw
) ์ด์ ํ์ฑ ์ฝ๊ธฐ/์ฐ๊ธฐ ์์ ๋ํ ํต๊ณ๋ฅผ ์ ๊ณตํฉ๋๋ค.
MongoDB๋ WiredTiger๋ฅผ ํตํด ๋ด๋ถ ์บ์์ ํ์ผ ์์คํ ์บ์ ๋ชจ๋๋ฅผ ํ์ฉํฉ๋๋ค.
๊ธฐ๋ณธ WiredTiger ๋ด๋ถ ์บ์ ํฌ๊ธฐ๋ ๋ค์ ์ค ๋ ํฐ ๊ฐ์ ๋๋ค.
(RAM - 1GB)์ 50%
256 MB.
์๋ฅผ ๋ค์ด ์ด 4 GB RAM์ด ์๋ ์์คํ
์์ WiredTiger ์บ์๋ 1.5 GB RAM(0.5 * (4 GB - 1 GB) =
1.5 GB
)์ ์ฌ์ฉํฉ๋๋ค. ๋ฐ๋๋ก, ์ด RAM์ด 1.25 GB์ธ ์์คํ
์์๋ WiredTiger๋ WiredTiger ์บ์์ 256 MB๋ฅผ ํ ๋นํ๋๋ฐ, ์ด๋ ์ ์ฒด RAM์์ 1 GB(0.5 * (1.25 GB - 1 GB) = 128 MB < 256 MB
)๋ฅผ ๋บ ๊ฐ์ ์ ๋ฐ ์ด์์ด๊ธฐ ๋๋ฌธ์
๋๋ค.
์ฐธ๊ณ
์ปจํ ์ด๋์์ ์คํํ ๋ ๋ฑ์ ์ผ๋ถ ์ธ์คํด์ค์์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฉ๋ชจ๋ฆฌ ์ ํ์ด ์ด ์์คํ ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค ๋ฎ์ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ธ์คํด์ค์์๋ ์ด ์์คํ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋๋ผ ์ด ๋ฉ๋ชจ๋ฆฌ ์ ํ์ด ์ฌ์ฉ ๊ฐ๋ฅํ ์ต๋ RAM์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
๋ฉ๋ชจ๋ฆฌ ์ ํ์ ๋ณด๋ ค๋ฉด hostInfo.system.memLimitMB
์ฐธ์กฐํ์ธ์.
๊ธฐ๋ณธ์ ์ผ๋ก WiredTiger๋ ๋ชจ๋ ์ปฌ๋ ์ ์ Snappy ๋ธ๋ก ์์ถ์ ์ฌ์ฉํ๊ณ ๋ชจ๋ ์ธ๋ฑ์ค์ ์ ๋์ฌ ์์ถ์ ์ฌ์ฉํฉ๋๋ค. ์์ถ ๊ธฐ๋ณธ๊ฐ์ ์ ์ญ ์์ค์์ ๊ตฌ์ฑํ ์ ์์ผ๋ฉฐ ์ปฌ๋ ์ ๋ฐ ์ธ๋ฑ์ค ์์ฑ ์ค์ ์ปฌ๋ ์ ๋ฐ ์ธ๋ฑ์ค๋ณ๋ก ์ค์ ํ ์๋ ์์ต๋๋ค.
WiredTiger ๋ด๋ถ ์บ์์ ์จ๋์คํฌ ํ์์ ๋ฐ์ดํฐ์๋ ์๋ก ๋ค๋ฅธ ํํ์ด ์ฌ์ฉ๋ฉ๋๋ค.
ํ์ผ ์์คํ ์บ์์ ๋ฐ์ดํฐ๋ ์จ๋์คํฌ ํ์๊ณผ ๋์ผํ๋ฉฐ, ๋ฐ์ดํฐ ํ์ผ์ ๋ํ ๋ชจ๋ ์์ถ์ ์ด์ ์ ๋๋ฆด ์ ์์ต๋๋ค. ํ์ผ์์คํ ์บ์๋ ์ด์ ์ฒด์ ์์ ๋์คํฌ I/O๋ฅผ ์ค์ด๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค.
WiredTiger ๋ด๋ถ ์บ์์ ๋ก๋๋ ์ธ๋ฑ์ค๋ ์จ๋์คํฌ ํ์๊ณผ๋ ๋ค๋ฅธ ๋ฐ์ดํฐ ํํ์ ๊ฐ์ง๋ง, ์ธ๋ฑ์ค ์ ๋์ฌ ์์ถ์ ํ์ฉํ์ฌ RAM ์ฌ์ฉ๋์ ์ค์ผ ์ ์์ต๋๋ค. ์ธ๋ฑ์ค ์ ๋์ฌ ์์ถ์ ์ธ๋ฑ์ฑ๋ ํ๋์์ ๊ณตํต ์ ๋์ฌ๋ฅผ ์ค๋ณต ์ ๊ฑฐํฉ๋๋ค.
WiredTiger ๋ด๋ถ ์บ์์ ์ปฌ๋ ์ ๋ฐ์ดํฐ๋ ์์ถ๋์ง ์์ผ๋ฉฐ ์จ๋์คํฌ ํ์๊ณผ ๋ค๋ฅธ ํํ์ ์ฌ์ฉํฉ๋๋ค. ์ฐจ๋จ ์์ถ์ ์๋นํ ์จ๋์คํฌ ์คํ ๋ฆฌ์ง ์ ๊ฐ์ ์ ๊ณตํ ์ ์์ง๋ง ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ๋ ค๋ฉด ์์ถ์ ํ์ด์ผ ํฉ๋๋ค.
MongoDB๋ ํ์ผ ์์คํ ์บ์๋ฅผ ํตํด ์๋์ผ๋ก WiredTiger ์บ์๋ ๋ค๋ฅธ ํ๋ก์ธ์ค์์ ์ฌ์ฉ๋์ง ์๋ ๋ชจ๋ ์ฌ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์์ด์ด๋ํ์ด๊ฑฐ ๋ด๋ถ ์บ์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๋ ค๋ฉด storage.wiredTiger.engineConfig.cacheSizeGB
๋ฐ --wiredTigerCacheSizeGB
๋ฅผ ์ฐธ์กฐํ์ธ์. WiredTiger ๋ด๋ถ ์บ์ ํฌ๊ธฐ๋ฅผ ๊ธฐ๋ณธ๊ฐ ์ด์์ผ๋ก ๋๋ฆฌ์ง ๋ง์ธ์.
์ฐธ๊ณ
storage.wiredTiger.engineConfig.cacheSizeGB
๋ WiredTiger ๋ด๋ถ ์บ์์ ํฌ๊ธฐ๋ฅผ ์ ํํฉ๋๋ค. ์ด์ ์ฒด์ ๋ ์ฌ์ฉ ๊ฐ๋ฅํ ์ฌ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ์ผ ์์คํ
์บ์์ ์ฌ์ฉํ์ฌ ์์ถ๋ MongoDB ๋ฐ์ดํฐ ํ์ผ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์งํ ์ ์์ต๋๋ค. ๋ํ ์ด์ ์ฒด์ ๋ ์ฌ์ฉ ๊ฐ๋ฅํ RAM์ ์ฌ์ฉํ์ฌ ํ์ผ ์์คํ
์ฐจ๋จ๊ณผ ํ์ผ ์์คํ
์บ์๋ฅผ ๋ฒํผ๋งํฉ๋๋ค.
์ถ๊ฐ์ ์ธ RAM ์๋น๋ฅผ ์์ฉํ๋ ค๋ฉด WiredTiger ๋ด๋ถ ์บ์ ํฌ๊ธฐ๋ฅผ ์ค์ฌ์ผ ํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ WiredTiger ๋ด๋ถ ์บ์ ํฌ๊ธฐ ๊ฐ์ ๋จธ์ ๋น ๋จ์ผ mongod
์ธ์คํด์ค๊ฐ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๋จ์ผ ๋จธ์ ์ ์ฌ๋ฌ MongoDB ์ธ์คํด์ค๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ ๋ค๋ฅธ mongod
์ธ์คํด์ค๋ฅผ ์์ฉํ ์ ์๋๋ก ์ค์ ์ ์ค์ฌ์ผ ํฉ๋๋ค.
์์คํ
์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ RAM์ ์ก์ธ์คํ ์ ์๋ ์ปจํ
์ด๋์์ mongod
๋ฅผ ์คํํ๋ ๊ฒฝ์ฐ(์๋ฅผ ๋ค์ด, lxc
, cgroups
, Docker ๋ฑ) storage.wiredTiger.engineConfig.cacheSizeGB
๋ฅผ ๋ฐ๋์ ์ปจํ
์ด๋์์ ์ฌ์ฉ ๊ฐ๋ฅํ RAM์ ์๋ณด๋ค ์ ์ ๊ฐ์ผ๋ก ์ค์ ํด์ผ ํฉ๋๋ค. ์ ํํ ์์ ์ปจํ
์ด๋์์ ์คํ ์ค์ธ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. memLimitMB
๋ฅผ ์ฐธ์กฐํ์ธ์.
์บ์ ๋ฐ ํด๊ฑฐ์จ์ ๋ํ ํต๊ณ๋ฅผ ๋ณด๋ ค๋ฉด serverStatus
๋ช
๋ น์์ ๋ฐํ๋ wiredTiger.cache
ํ๋๋ฅผ ์ฐธ์กฐํ์ธ์.
์์ถ ๋ฐ ์ํธํ
์ํธํ๋ฅผ ์ฌ์ฉํ ๋ AES-NI ์ง์นจ ์ธํธ ํ์ฅ์ด ์ฅ์ฐฉ๋ CPU๋ ์๋นํ ์ฑ๋ฅ ์ด์ ์ ๋ณด์ฌ์ค๋๋ค. ์ํธํ๋ ์คํ ๋ฆฌ์ง ์์ง๊ณผ ํจ๊ป MongoDB Enterprise๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ๋ ๋์ ์ฑ๋ฅ์ ์ํด AES-NI๋ฅผ ์ง์ํ๋ CPU๋ฅผ ์ ํํ์ธ์.
์๋ฆฌ๋ ์คํ ์ดํธ ๋์คํฌ(SSD) ์ฌ์ฉ
MongoDB๋ SATA SSD(์๋ฆฌ๋ ์คํ ์ดํธ ๋์คํฌ)๋ฅผ ์ฌ์ฉํด ๊ฒฐ๊ณผ๊ฐ ์ข๊ณ ๊ฐ๊ฒฉ ๋๋น ์ฑ๋ฅ๋น๋ ์ข์ต๋๋ค.
์ฌ์ฉ ๊ฐ๋ฅํ๊ณ ๊ฒฝ์ ์ ์ธ ๊ฒฝ์ฐ SSD๋ฅผ ์ฌ์ฉํ์ธ์.
๋ ๋น์ผ ์คํผ๋ ๋๋ผ์ด๋ธ์ ๋๋ค I/O ์ฑ๋ฅ ํฅ์์ด ๊ทธ๋ค์ง ํ์ํ์ง ์์ ๋งํผ(2๋ฐฐ ์ ๋์ ๋ถ๊ณผ) ์์ฉ(SATA) ์คํผ๋ ๋๋ผ์ด๋ธ๊ฐ ๋์ฑ ์ข์ ์ ํ์ผ ์ ์์ต๋๋ค. SSD๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ RAM์ ๋๋ฆฌ๋ฉด I/O ์ฒ๋ฆฌ๋์ ๋๋ฆฌ๋ ๋ฐ ๋์ฑ ํจ๊ณผ์ ์ผ ์ ์์ต๋๋ค.
MongoDB ๋ฐ NUMA ํ๋์จ์ด
NUMA(Non-Uniform Memory Access)๊ฐ ์๋ ์์คํ ์์ MongoDB๋ฅผ ์คํํ๋ฉด ์ผ์ ๊ธฐ๊ฐ ๋์ ์ฑ๋ฅ์ด ์ ํ๋๊ณ ์์คํ ํ๋ก์ธ์ค ์ฌ์ฉ๋์ด ๋ง์์ง๋ ๋ฑ ์ฌ๋ฌ ์ด์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
NUMA ํ๋์จ์ด์์ MongoDB ์๋ฒ์ ํด๋ผ์ด์ธํธ๋ฅผ ์คํํ๋ ๊ฒฝ์ฐ, ํธ์คํธ๊ฐ ๋นNUMA ๋ฐฉ์์ผ๋ก ์๋ํ๋๋ก ๋ฉ๋ชจ๋ฆฌ ์ธํฐ๋ฆฌ๋ธ ์ ์ฑ ์ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค. MongoDB๋ Linux(๋ฒ์ 2.0 ์ดํ) ๋ฐ Windows(๋ฒ์ 2.6 ์ดํ) ๋จธ์ ์ ๋ฐฐํฌํ ๋ ์์ ์ NUMA ์ค์ ์ ํ์ธํฉ๋๋ค. NUMA ๊ตฌ์ฑ์ผ๋ก ์ธํด ์ฑ๋ฅ์ด ์ ํ๋ ์ ์๋ ๊ฒฝ์ฐ, MongoDB๋ ๊ฒฝ๊ณ ๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
ํ
๋ค์๋ ์ฐธ์กฐํ์ธ์.
MySQL '๋น์ ์์ ์ธ ์ค์(swap)' ๋ฌธ์ ์ NUMA์ ์ํฅ ๊ฒ์๋ฌผ์์ NUMA๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฏธ์น๋ ์ํฅ์ ๋ํด ์ค๋ช ํฉ๋๋ค. ์ด ๊ฒ์๋ฌผ์์๋ NUMA์ ๊ทธ ๋ชฉํ๋ฅผ ์๊ฐํ๊ณ ์ด๋ฌํ ๋ชฉํ๊ฐ ํ๋ก๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ป๊ฒ ํธํ๋์ง ์๋์ง ์ค๋ช ํฉ๋๋ค. ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์์๋ NUMA๊ฐ MySQL์ ๋ฏธ์น๋ ์ํฅ์ ๋ค๋ฃจ๊ณ ์์ง๋ง MongoDB์ ๋ํ ๋ฌธ์ ๋ ๋น์ทํฉ๋๋ค.
Windows์์ NUMA ๊ตฌ์ฑ
Windows์์๋ ์ปดํจํฐ์ BIOS๋ฅผ ํตํด ๋ฉ๋ชจ๋ฆฌ ์ธํฐ๋ฆฌ๋น์ ํ์ฑํํด์ผ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์์คํ ์ค๋ช ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Linux์์ NUMA ๊ตฌ์ฑ
Linux์์๋ ๊ตฌ์ญ ํ์ ๊ธฐ๋ฅ์ ๋นํ์ฑํํ๊ณ mongod
๋ฐ mongos
์ธ์คํด์ค๊ฐ ์ผ๋ฐ์ ์ผ๋ก ํ๋ซํผ์ init ์์คํ
์ ํตํด ๊ตฌ์ฑ๋๋ numactl
์ ์ํด ์์๋๋๋ก ํด์ผ ํฉ๋๋ค. ์ด ๋ ๊ฐ์ง ์์
์ ๋ชจ๋ ์ํํด์ผ MongoDB์ ํจ๊ป ์ฌ์ฉํ ์ ์๋๋ก NUMA๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ๋นํ์ฑํํ ์ ์์ต๋๋ค.
๋ค์ ๋ช ๋ น ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ญ ํ์ ๊ธฐ๋ฅ์ ๋นํ์ฑํํฉ๋๋ค:
echo 0 | sudo tee /proc/sys/vm/zone_reclaim_mode sudo sysctl -w vm.zone_reclaim_mode=0 mongod
๋ฐmongos
๊ฐnumactl
๋ก ์์๋๋์ง ํ์ธํฉ๋๋ค. ์ด๋ ์ผ๋ฐ์ ์ผ๋ก ํ๋ซํผ์ init ์์คํ ์ ํตํด ๊ตฌ์ฑ๋ฉ๋๋ค. ๋ค์ ๋ช ๋ น์ ์คํํ์ฌ ํ๋ซํผ์์ ์ฌ์ฉ ์ค์ธ init ์์คํ ์ ํ์ธํฉ๋๋ค:ps --no-headers -o comm 1 "
systemd
"์ธ ๊ฒฝ์ฐ ํ๋ซํผ์์ systemd ์ด๊ธฐํ ์์คํ ์ ์ฌ์ฉํ๋ฉฐ, ์๋ systemd ํญ์ ๋จ๊ณ์ ๋ฐ๋ผ MongoDB ์๋น์ค ํ์ผ์ ํธ์งํด์ผ ํฉ๋๋ค."
init
"์ธ ๊ฒฝ์ฐ ํ๋ซํผ์์ SysV ์ด๊ธฐํ ์์คํ ์ ์ฌ์ฉํ๋ฏ๋ก ์ด ๋จ๊ณ๋ฅผ ์ํํ ํ์๊ฐ ์์ต๋๋ค. SysV ์ด๊ธฐํ๋ฅผ ์ํ ๊ธฐ๋ณธ MongoDB init ์คํฌ๋ฆฝํธ์๋ ๊ธฐ๋ณธ์ ์ผ๋กnumactl
์ ํตํด MongoDB ์ธ์คํด์ค๋ฅผ ์์ํ๋ ๋ฐ ํ์ํ ๋จ๊ณ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.init ์คํฌ๋ฆฝํธ๋ฅผ ์ง์ ๊ด๋ฆฌํ๋ ๊ฒฝ์ฐ(์: ์ด๋ฌํ init ์์คํ ์ค ํ๋๋ฅผ ์ฌ์ฉํ๊ณ ์์ง ์์ ๊ฒฝ์ฐ), ์๋์ init ์คํฌ๋ฆฝํธ ์ฌ์ฉ์ ์ง์ ํญ์ ์๋ ๋จ๊ณ๋ฅผ ๋ฐ๋์ ์ค์ํ์ฌ ์ฌ์ฉ์ ์ ์ init ์คํฌ๋ฆฝํธ๋ฅผ ํธ์งํด์ผ ํฉ๋๋ค.
๋ชจ๋ config ์๋ฒ,
mongos
์ธ์คํด์ค ๋ฐ ํด๋ผ์ด์ธํธ๋ฅผ ํฌํจํ์ฌ ๊ฐmongod
์ธ์คํด์ค๋ฅผ ์์ํ๋ ค๋ฉดnumactl
์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ๊ฐ๊ฐ์ ๋ํ ๊ธฐ๋ณธ systemd ์๋น์ค ํ์ผ์ ํธ์งํฉ๋๋ค.๊ธฐ๋ณธ MongoDB ์๋น์ค ํ์ผ์ ๋ณต์ฌํฉ๋๋ค.
sudo cp /lib/systemd/system/mongod.service /etc/systemd/system/ /etc/systemd/system/mongod.service
ํ์ผ์ ํธ์งํ๊ณExecStart
๋ฌธ์ ์ ๋ฐ์ดํธํ์ฌ ๋ค์์ผ๋ก ์์ํฉ๋๋ค./usr/bin/numactl --interleave=all ์์
๊ธฐ์กด
ExecStart
๋ฌธ์ด ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ.ExecStart=/usr/bin/mongod --config /etc/mongod.conf ํด๋น ๋ฌธ์ ์ ๋ฐ์ดํธํ์ฌ ๋ค์์ ์ฝ๋๋ก ํฉ๋๋ค.
ExecStart=/usr/bin/numactl --interleave=all /usr/bin/mongod --config /etc/mongod.conf systemd
์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํฉ๋๋ค.sudo systemctl daemon-reload ์คํ ์ค์ธ
mongod
์ธ์คํด์ค๋ฅผ ๋ค์ ์์ํฉ๋๋ค.sudo systemctl stop mongod sudo systemctl start mongod ํด๋นํ๋ ๊ฒฝ์ฐ ๋ชจ๋
mongos
์ธ์คํด์ค์ ๋ํด ์ด ๋จ๊ณ๋ฅผ ๋ฐ๋ณตํฉ๋๋ค.
๋ชจ๋ config ์๋ฒ,
mongos
์ธ์คํด์ค ๋ฐ ํด๋ผ์ด์ธํธ๋ฅผ ํฌํจํ์ฌ ๊ฐmongod
์ธ์คํด์ค๋ฅผ ์์ํ๋ ค๋ฉดnumactl
์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.์์ง ์ค์น๋์ง ์์ ๊ฒฝ์ฐ ํ๋ซํผ์ ๋ง๊ฒ
numactl
์(๋ฅผ) ์ค์นํฉ๋๋ค.numactl
ํจํค์ง ์ค์น์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ด์ ์ฒด์ ์ค๋ช ์๋ฅผ ์ฐธ์กฐํ์ธ์.๊ฐ ์ฌ์ฉ์ ์ ์ ์ด๊ธฐํ ์คํฌ๋ฆฝํธ๊ฐ
numactl
๋ฅผ ํตํด ๊ฐ MongoDB ์ธ์คํด์ค๋ฅผ ์์ํ๋๋ก ๊ตฌ์ฑํฉ๋๋ค.numactl --interleave=all <path> <options> ์ฌ๊ธฐ์
<path>
์(๋) ์์ํ๋ ํ๋ก๊ทธ๋จ์ ๊ฒฝ๋ก์ด๊ณ<options>
์(๋) ํด๋น ํ๋ก๊ทธ๋จ์ ์ ๋ฌํ ์ ํ์ ์ธ์์ ๋๋ค.์์
numactl --interleave=all /usr/local/bin/mongod -f /etc/mongod.conf
์์ธํ ๋ด์ฉ์ /proc/sys/vm/* ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
๋์คํฌ ๋ฐ ์คํ ๋ฆฌ์ง ์์คํ
Swap
์ค์์์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๋ ๊ฒ์ ํญ์ RAM์ ๋ฐ์ดํฐ์ ์ก์ธ์คํ๋ ๊ฒ๋ณด๋ค ๋๋ฆฌ๊ธฐ ๋๋ฌธ์ ์ค์์ ํผํ๊ฑฐ๋ ์ต์ํ์ผ๋ก ์ ์งํ ์ ์๋ ๊ฒฝ์ฐ MongoDB์ ์ฑ๋ฅ์ด ๊ฐ์ฅ ์ฐ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ MongoDB๋ฅผ ํธ์คํ
ํ๋ ์์คํ
์ RAM์ด ๋ถ์กฑํ ๊ฒฝ์ฐ ์ค์์ ์ํํ๋ฉด Linux OOM ํฌ๋ฌ๊ฐ mongod
ํ๋ก์ธ์ค๋ฅผ ์ข
๋ฃํ์ง ๋ชปํ ์ ์์ต๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ๋ค์ ์ค์ ์ ๋ต ์ค ํ๋๋ฅผ ์ ํํด์ผ ํฉ๋๋ค:
์์คํ ์ ์ค์ ๊ณต๊ฐ์ ํ ๋นํ๊ณ ๋ฉ๋ชจ๋ฆฌ ๋ถํ๊ฐ ๋์ ๊ฒฝ์ฐ์๋ง ์ค์ํ์ ํ์ฉํ๋๋ก ์ปค๋์ ๊ตฌ์ฑํฉ๋๋ค.
์์คํ ์ ์ค์ ๊ณต๊ฐ์ ํ ๋นํ์ง ๋ง๊ณ ์ค์์ ์์ ํ ๋นํ์ฑํํ๋๋ก ์ปค๋์ ๊ตฌ์ฑํ์ธ์.
์ด ๊ฐ์ด๋๋ผ์ธ์ ๋ฐ๋ผ Linux ์์คํ ์์ ์ค์์ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ๊ณผ ๊ด๋ จํ ์ ๋ณด๋ฅผ ์์๋ณด๋ ค๋ฉด vm.swappiness ์ค์ ์ ์ฐธ์กฐํ์ธ์.
์ฐธ๊ณ
์น ์๋ฒ์ ๊ฐ์ ๋ค๋ฅธ ์ํํธ์จ์ด๋ฅผ ์คํํ๋ ์์คํ ์์ MongoDB ์ธ์คํด์ค๋ฅผ ํธ์คํ ํ๋ ๊ฒฝ์ฐ, ์ฒซ ๋ฒ์งธ ์ค์ ์ ๋ต์ ์ ํํด์ผ ํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ์ค์์ ๋นํ์ฑํํ์ง ๋ง์ธ์. ๊ฐ๋ฅํ๋ค๋ฉด MongoDB๋ฅผ ์์ฒด ์ ์ฉ ์์คํ ์์ ์คํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
RAID
์คํ ๋ฆฌ์ง ๊ณ์ธต์ ์ฑ๋ฅ์ ์ต์ ํํ๋ ค๋ฉด RAID-10์ผ๋ก ์ง์๋๋ ๋์คํฌ๋ฅผ ์ฌ์ฉํ์ธ์. RAID-5 ๋ฐ RAID-6์ ์ผ๋ฐ์ ์ผ๋ก MongoDB deployment๋ฅผ ์ง์ํ๊ธฐ์ ์ถฉ๋ถํ ์ฑ๋ฅ์ ์ ๊ณตํ์ง ์์ต๋๋ค.
์๊ฒฉ ํ์ผ ์์คํ (NFS)
์๊ฒฉ ํ์ผ ์์คํ ์ด ISO/IEC 9945-1:1996(POSIX.1)์ ์ค์ํ๋ ๊ฒฝ์ฐ, WiredTiger ์คํ ๋ฆฌ์ง ์์ง์ ํตํด WiredTiger ๊ฐ์ฒด๋ฅผ ์๊ฒฉ ํ์ผ ์์คํ ์ ์ ์ฅํ ์ ์์ต๋๋ค. ์๊ฒฉ ํ์ผ ์์คํ ์ ๋ก์ปฌ ํ์ผ ์์คํ ๋ณด๋ค ์๋๊ฐ ๋๋ฆฐ ๊ฒฝ์ฐ๊ฐ ๋ง์ผ๋ฏ๋ก, ์๊ฒฉ ํ์ผ ์์คํ ์ ์คํ ๋ฆฌ์ง๋ก ์ฌ์ฉํ๋ฉด ์ฑ๋ฅ์ด ์ ํ๋ ์ ์์ต๋๋ค.
NFS๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ ๊ฒฝ์ฐ /etc/fstab
ํ์ผ์ ๋ค์ NFS ์ต์
์ ์ถ๊ฐํฉ๋๋ค.
bg
hard
nolock
noatime
nointr
์ปค๋ ๋ฒ์ ์ ๋ฐ๋ผ ์ด๋ฌํ ๊ฐ ์ค ์ผ๋ถ๊ฐ ์ด๋ฏธ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ค์ ๋์์ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ํด๋น ํ๋ซํผ์ ์ค๋ช ์๋ฅผ ์ฐธ์กฐํ์ธ์.
๊ตฌ์ฑ ์์๋ฅผ ๋ค๋ฅธ ์ ์ฅ ์ฅ์น์ ๋ถ๋ฆฌ
์ฑ๋ฅ์ ํฅ์์ํค๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ก์ธ์ค ๋ฐ ์ฐ๊ธฐ ํจํด์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ, ์ ๋ ๋ฐ ๋ก๊ทธ๋ฅผ ์๋ก ๋ค๋ฅธ ์ ์ฅ ์ฅ์น์ ๋ถ๋ฆฌํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ปดํฌ๋ํธ๋ฅผ ๋ณ๋์ ํ์ผ ์์คํ ์ผ๋ก ๋ง์ดํธํ๊ณ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ ์ปดํฌ๋ํธ๋ฅผ ์ ์ฅ๋ ์ฅ์น์ ๋งคํํฉ๋๋ค.
WiredTiger ์คํ ๋ฆฌ์ง ์์ง์ ๊ฒฝ์ฐ ์ธ๋ฑ์ค๋ฅผ ๋ค๋ฅธ ์คํ ๋ฆฌ์ง ์ฅ์น์ ์ ์ฅํ ์๋ ์์ต๋๋ค. storage.wiredTiger.engineConfig.directoryForIndexes
๋ฅผ ์ฐธ์กฐํ์ธ์.
์ฐธ๊ณ
๋ค๋ฅธ ์ ์ฅ ์ฅ์น๋ฅผ ์ฌ์ฉํ๋ฉด ํ์ผ์ด ์๋ก ๋ค๋ฅธ ๋๋ฐ์ด์ค์ ๋ณผ๋ฅจ์ ์๊ธฐ ๋๋ฌธ์ ์ค๋ ์ท ์คํ์ผ์ ๋ฐ์ดํฐ ๋ฐฑ์ ์ ์์ฑํ๋ ๋ฐ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
์ผ์ ์์ฝ
๊ฐ์ ๋๋ ํด๋ผ์ฐ๋ ํธ์คํ ์ฅ์น์ ๋ํ ์ค์ผ์ค๋ง
ํ์ดํผ๋ฐ์ด์ ๋ฅผ ํตํด ๊ฐ์ ๋จธ์ ์ธ์คํด์ค์ ์ฐ๊ฒฐ๋๊ฑฐ๋ ํด๋ผ์ฐ๋ ํธ์คํ
์ ๊ณต์์ ์ํด ํธ์คํ
๋๋ ๋ก์ปฌ ๋ธ๋ก ์ฅ์น์ ๊ฒฝ์ฐ ๊ฒ์คํธ ์ด์ ์ฒด์ ๋ ์ต์์ ์ฑ๋ฅ์ ์ํด cfq ์ค์ผ์ค๋ฌ๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. cfq
์ค์ผ์ค๋ฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์ด์ ์ฒด์ ์์ I/O ์ค์ผ์ค๋ง์ ๊ธฐ๋ณธ ํ์ดํผ๋ฐ์ด์ ๋ก ์ฐ๊ธฐํ ์ ์์ต๋๋ค.
์ฐธ๊ณ
๋ ์ค์ผ์ค๋ฌ๋ ๋ค์ ์กฐ๊ฑด์ด ๋ชจ๋ ์ถฉ์กฑ๋๋ ๊ฒฝ์ฐ ์์ฝ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํ์ดํผ๋ฐ์ด์ ๋ VMware์ ๋๋ค.
๋ณต์ ๋ณธ ์ธํธ ํ ํด๋ก์ง ๋๋ ์ค๋ฉ๋ ํด๋ฌ์คํฐ๊ฐ ์ฌ์ฉ๋ฉ๋๋ค.
๊ฐ์ ๋จธ์ ์ ๋์ผํ ๊ฐ์ ํธ์คํธ์ ๋ฐฐ์น๋ฉ๋๋ค.
DB ๊ฒฝ๋ก๊ฐ ํฌํจ๋ ๊ธฐ๋ณธ ์คํ ๋ฆฌ์ง๋ ์ผ๋ฐ์ ์ธ LUN ๋ธ๋ก ์ ์ฅ์์ ๋๋ค.
๋ฌผ๋ฆฌ์ ์๋ฒ์ ๋ํ ์ค์ผ์ค๋ง
๋ฌผ๋ฆฌ์ ์๋ฒ์ ๊ฒฝ์ฐ ์ด์ ์ฒด์ ์์ ๋ง๊ฐ์ผ ์ค์ผ์ค๋ฌ๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๋ง๊ฐ์ผ ์ค์ผ์ค๋ฌ๋ ์์ฒญ๋น ์ต๋ ์ง์ฐ ์๊ฐ์ ์ ํํ๊ณ ๋์คํฌ ์ง์ฝ์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ์ฅ ์ ํฉํ ๋์คํฌ ์ฒ๋ฆฌ๋์ ์ ์งํฉ๋๋ค.
์ํคํ ์ฒ
๋ณต์ ๋ณธ ์ธํธ
๋ณต์ ๋ณธ ์ธํธ ๋ฐฐํฌ์ ๋ํ ์ํคํ ์ฒ ๊ณ ๋ ค ์ฌํญ์ ๋ํ ๊ฐ์๋ ๋ณต์ ๋ณธ ์ธํธ ์ํคํ ์ฒ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
์ค๋ฉ๋ ํด๋ฌ์คํฐ
ํ๋ก๋์ ๋ฐฐํฌ์ ๊ถ์ฅ๋๋ ์ค๋ฉ๋ ํด๋ฌ์คํฐ ์ํคํ ์ฒ์ ๋ํ ๊ฐ์๋ ์ค๋ฉ๋ ํด๋ฌ์คํฐ ํ๋ก๋์ ์ํคํ ์ฒ๋ฅผ ์ฐธ์กฐํ์ธ์.
์์ถ
WiredTiger๋ ๋ค์ ์์ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ปฌ๋ ์ ๋ฐ์ดํฐ๋ฅผ ์์ถํ ์ ์์ต๋๋ค.
- ์ค๋ดํผ
zlib
๋๋zstd
๋ณด๋ค ๋ฎ์ ์์ถ๋ฅ ์ ์ ๊ณตํ์ง๋ง ๋ ์ค ์ด๋ ๊ฒ๋ณด๋ค๋ CPU ๋น์ฉ์ด ๋ฎ์ต๋๋ค.
- zlib
snappy
๋ณด๋ค ๋ ๋์ ์์ถ๋ฅ ์ ์ ๊ณตํ์ง๋งsnappy
๋ฐzstd
๋ณด๋ค CPU ๋น์ฉ์ด ๋ ๋์ต๋๋ค.
- zstd (MongoDB 4.2๋ถํฐ ์ฌ์ฉ ๊ฐ๋ฅ)
snappy
๋ฐzlib
๋ณด๋ค ๋ ๋์ ์์ถ๋ฅ ์ ์ ๊ณตํ๊ณzlib
๋ณด๋ค ๋ ๋ฎ์ CPU ๋น์ฉ์ ์ ๊ณตํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก WiredTiger๋ ์ค๋ดํผ ์์ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์์ถ ์ค์ ์ ๋ณ๊ฒฝํ๋ ค๋ฉด storage.wiredTiger.collectionConfig.blockCompressor
๋ฅผ ์ฐธ์กฐํ์ธ์.
WiredTiger๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ์ธ๋ฑ์ค์ ์ ๋์ฌ ์์ถ์ ์ฌ์ฉํฉ๋๋ค.
์๊ณ ๋๊ธฐํ
MongoDB ๊ตฌ์ฑ ์์๋ ์๊ฐ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ ์์ ์ ์ง์ํ๊ธฐ ์ํด ๋ก์ง์ปฌ ์๊ณ๋ฅผ ์ ์งํฉ๋๋ค. NTP๋ฅผ ์ฌ์ฉํ์ฌ ํธ์คํธ ์์คํ ํด๋ญ์ ๋๊ธฐํํ๋ฉด ๊ตฌ์ฑ ์์ ๊ฐ์ ํด๋ญ ๋๋ฆฌํํธ ์ํ์ด ์ํ๋ฉ๋๋ค. ๊ตฌ์ฑ์์ ๊ฐ์ ํด๋ญ ๋๋ฆฌํํธ๋ ๋ค์๊ณผ ๊ฐ์ ์๊ฐ ์ข ์ ์์ ์ ๋ถ์ ํํ๊ฑฐ๋ ๋น์ ์์ ์ธ ๋์ ๊ฐ๋ฅ์ฑ์ ๋์ ๋๋ค.
ํน์ MongoDB ๊ตฌ์ฑ ์์์ ๊ธฐ๋ณธ ์์คํ ์๊ณ๊ฐ ๋์ผํ ๋ฐฐํฌ์ ๋ค๋ฅธ ๊ตฌ์ฑ ์์์ 1๋ ์ด์ ์ฐจ์ด๊ฐ ๋๋ฉด, ํด๋น ๊ตฌ์ฑ ์์ ๊ฐ์ ํต์ ์ด ๋ถ์์ ํด์ง๊ฑฐ๋ ์์ ํ ์ค๋จ๋ ์ ์์ต๋๋ค.
maxAcceptableLogicalClockDriftSecs
๋งค๊ฐ๋ณ์๋ ๊ตฌ์ฑ ์์ ๊ฐ์ ํ์ฉ๋๋ ํด๋ญ ๋๋ฆฌํํธ์ ์์ ์ ์ดํฉ๋๋ค.maxAcceptableLogicalClockDriftSecs
์ ๊ฐ์ด ๋ ๋ฎ์ ํด๋ฌ์คํฐ๋ ํด๋ญ ๋๋ฆฌํํธ์ ๋ํ ํ์ฉ์น๊ฐ ๋ ๋ฎ์ต๋๋ค.์์คํ ํด๋ญ์ด ๋ค๋ฅธ ๋ ํด๋ฌ์คํฐ ๋ ธ๋๋ ํ์ฌ ํด๋ฌ์คํฐ ๋๋ ์์คํ ์๊ฐ์ ๋ฐํํ๋ ์ฐ์ฐ์ ๋ํด
Date()
,NOW
,CLUSTER_TIME
์ฒ๋ผ ๋ค๋ฅธ ๊ฐ์ ๋ฐํํ ์ ์์ต๋๋ค.MongoDB ๊ตฌ์ฑ ์์ ๊ฐ์ ํด๋ญ ๋๋ฆฌํํธ๊ฐ ์๋ ํด๋ฌ์คํฐ์์๋ ์๊ฐ ์ ์ง์ ์์กดํ๋ ๊ธฐ๋ฅ์ด ์ผ๊ด๋์ง ์๊ฑฐ๋ ์์ธกํ ์ ์๋ ๋์์ ๊ฐ์ง ์ ์์ต๋๋ค.
Wired Tiger ์คํ ๋ฆฌ์ง ์์ง์ ์ฌ์ฉํ์ฌ 3.4.6
๋๋ ๋ฏธ๋ง์ผ๋ก MongoDB๋ฅผ ์คํํ๋ ๋ฐฐํฌ์๋ NTP 3.2.17
๋๊ธฐํ๊ฐ ํ์ํ๋ฉฐ, ์ฌ๊ธฐ์ ํด๋ญ ๋๋ฆฌํํธ๋ก ์ธํด ์ฒดํฌํฌ์ธํธ ์ค๋จ์ด ๋ฐ์ํ ์ ์์ต๋๋ค. . ์ด ๋ฌธ์ ๋ MongoDB 3 ์์ ์์ ๋์์ต๋๋ค.4.6+ ๋ณ๊ฒฝ ๋ก๊ทธ ๋ฐ MongoDB 3.2.17+ ๋ฆด๋ฆฌ์ค ๋
ธํธ์ด๋ฉฐ, MongoDB 3 ์ ๋ชจ๋ ๋ฆด๋ฆฌ์ค์์ ํด๊ฒฐ๋์์ต๋๋ค.6, 4.0, 4.2 ์ด์ ๋ฆด๋ฆฌ์ค.
ํ๋ซํผ๋ณ ๊ณ ๋ ค ์ฌํญ
Linux์ MongoDB
์ปค๋ ๋ฐ ํ์ผ ์์คํ
Linux ํ๋ก๋์ ํ๊ฒฝ์์ MongoDB๋ฅผ ์คํํ๋ ๊ฒฝ์ฐ, Linux ์ปค๋ ๋ฒ์ 2.6.36 ์ด์์ ์ฌ์ฉํด์ผ ํ๋ฉฐ, ํ์ผ์์คํ ์ XFS ๋๋ EXT4์ฌ์ผ ํฉ๋๋ค. ๊ฐ๋ฅํ๋ฉด ์ผ๋ฐ์ ์ผ๋ก MongoDB์์ ๋ ๋์ ์ฑ๋ฅ์ ๋ฐํํ๋XFS๋ฅผ ์ฌ์ฉํ์ธ์.
WiredTiger ์คํ ๋ฆฌ์ง ์์ง๊ณผ ํจ๊ป EXT4๋ฅผ ์ฌ์ฉํ ๋ ๋ฐ์ํ ์ ์๋ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๋ ค๋ฉด ๋ฐ์ดํฐ ๋ณด์ ๋ ธ๋์ XFS๋ฅผ ์ฌ์ฉํ ๊ฒ์ ์ ๊ทน ๊ถ์ฅํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก XFS ํ์ผ ์์คํ ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ Linux ์ปค๋ ๋ฒ์
2.6.25
์ด์์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.EXT4 ํ์ผ ์์คํ ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ Linux ์ปค๋ ๋ฒ์
2.6.28
์ด์์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.Red Hat Enterprise Linux ๋ฐ CentOS์์๋ Linux ์ปค๋์
2.6.18-194
๋ฒ์ ์ด์์ ์ฌ์ฉํ์ธ์.
์์คํ C ๋ผ์ด๋ธ๋ฌ๋ฆฌ
MongoDB๋ Linux์์ GNU C ๋ผ์ด๋ธ๋ฌ๋ฆฌ(glibc)๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๊ฐ Linux ๋ฐฐํฌํ์ ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์ฒด ๊ฒ์ฆ ๋ฒ์ ์ ์ ๊ณตํฉ๋๋ค. ์ต์์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ผ๋ ค๋ฉด ์ด ์์คํ ์ ๊ณต ๋ฒ์ ์์ ์ฌ์ฉํ ์ ์๋ ์ต์ ์ ๋ฐ์ดํธ๋ฅผ ์ฌ์ฉํ์ธ์. ์์คํ ์ ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ์ฌ์ฉํ์ฌ ์ต์ ๋ฒ์ ์ด ์ค์น๋์ด ์๋์ง ํ์ธํ ์ ์์ต๋๋ค. ์์:
RHEL/CentOS์์ ๋ค์ ๋ช ๋ น์ ์์คํ ์์ ์ ๊ณตํ๋ GNU C ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค:
sudo yum update glibc Ubuntu/Debian์์ ๋ค์ ๋ช ๋ น์ ์์คํ ์์ ์ ๊ณตํ๋ GNU C ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
sudo apt-get install libc6
fsync()
๋๋ ํ ๋ฆฌ์์
์ค์
MongoDB๋ ๋๋ ํ ๋ฆฌ์์ fsync()
๋ฅผ ์ง์ํ๋ ํ์ผ ์์คํ
์ด ํ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, HGFS ๋ฐ Virtual Box์ ๊ณต์ ํด๋๋ ์ด ์์
์ ์ง์ํ์ง ์์ต๋๋ค.
vm.swappiness
์ 1
๋๋ ๋ก ์ค์ <a class=\" \" href=\" \" title=\" \"><svg xmlns=\" \" width=\" \" height=\" \" fill=\" \" viewbox=\" \" class=\" \" role=\" \" aria-label=\" \"><path fill=\" \" d=\" \"> <path fill=\" \" d=\" \"> 0
'Swappiness'๋ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์์ ๋์์ ์ํฅ์ ๋ฏธ์น๋ Linux ์ปค๋ ์ค์ ์
๋๋ค. vm.swappiness
์ค์ ๋ฒ์๋ 0
์์ 100
๊น์ง์ด๋ฉฐ, ๊ฐ์ด ํด์๋ก RAM์์ ํ์ด์ง๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ๋ณด๋ค ๋ฉ๋ชจ๋ฆฌ ํ์ด์ง๋ฅผ ๋์คํฌ๋ก ์ค์ํ๋ ๊ฒ์ ๋ ๊ฐ๋ ฅํ๊ฒ ์ ํธํฉ๋๋ค.
0
์ผ๋ก ์ค์ ํ๋ฉด ์ค์ํ์ด ์์ ํ ๋นํ์ฑํ๋ฉ๋๋ค [4].1
์ค์ ์ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก๋ง ์ปค๋ ๊ต์ฒด๋ฅผ ํ์ฉํฉ๋๋ค.60
์ค์ ์ ์ปค๋์ด ๋์คํฌ๋ก ์์ฃผ ๊ต์ฒดํ๋๋ก ์ง์ํ๋ฉฐ, ์ด๋ ๋ง์ Linux ๋ฐฐํฌํ์ ๊ธฐ๋ณธ๊ฐ์ ๋๋ค.100
์ผ๋ก ์ค์ ํ๋ฉด ์ปค๋์ด ๋์คํฌ์ ์ ๊ทน์ ์ผ๋ก ์ค์ํ๋๋ก ์ง์ํฉ๋๋ค.
MongoDB๋ ์ค์ํ์ ํผํ๊ฑฐ๋ ์ต์ํ์ผ๋ก ์ ์งํ ์ ์๋ ๊ฒฝ์ฐ ๊ฐ์ฅ ์ฐ์ํ ์ฑ๋ฅ์ ๋ฐํํฉ๋๋ค. ๋ฐ๋ผ์ ์ ํ๋ฆฌ์ผ์ด์
์๊ตฌ ์ฌํญ ๋ฐ ํด๋ฌ์คํฐ ๊ตฌ์ฑ์ ๋ฐ๋ผ vm.swappiness
๋ฅผ 1
๋๋ 0
์ผ๋ก ์ค์ ํด์ผ ํฉ๋๋ค.
์ฐธ๊ณ
๋๋ถ๋ถ์ ์์คํ
๋ฐ ์ฌ์ฉ์ ํ๋ก์ธ์ค๋ cgroup ๋ด์์ ์คํ๋๋ฉฐ, ๊ธฐ๋ณธ์ ์ผ๋ก vm.swappiness
์ 60
๋ก ์ค์ ํฉ๋๋ค. RHEL /CentOS๋ฅผ ์คํ ์ค์ธ ๊ฒฝ์ฐ ์ง์ ๋ vm.swappiness
๊ฐ์ด ๋ชจ๋ cgroup ๊ธฐ๋ณธ๊ฐ์ ์ฌ์ ์ํ๋๋ก vm.force_cgroup_v2_swappiness
์ 1
๋ก ์ค์ ํฉ๋๋ค.
[4] | 3.5 ์ด์ ์ Linux ์ปค๋ ๋ฒ์ ๋๋ 2.6.32-303 ์ด์ ์ RHEL/CentOS ์ปค๋ ๋ฒ์ ์ ๊ฒฝ์ฐ 0 ์ vm.swappiness ๋ก ์ค์ ํ๋ฉด ํน์ ๊ธด๊ธ ์ํฉ์์ ์ปค๋์ ๊ต์ฒดํ ์ ์์ต๋๋ค. |
์ฐธ๊ณ
MongoDB ์ธ์คํด์ค๊ฐ ์น ์๋ฒ์ ๊ฐ์ ๋ค๋ฅธ ์ํํธ์จ์ด๋ ์คํํ๋ ์์คํ
์์ ํธ์คํ
๋๋ ๊ฒฝ์ฐ ์ธ์คํด์ค๋ฅผ vm.swappiness
1
๋ก ์ค์ ํด์ผ ํฉ๋๋ค. ๊ฐ๋ฅํ๋ค๋ฉด MongoDB๋ฅผ ์์ฒด ์ ์ฉ ์์คํ
์์ ์คํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์์คํ ์ ํ์ฌ swappiness ์ค์ ์ ํ์ธํ๋ ค๋ฉด ๋ค์์ ์คํํ์ธ์.
cat /proc/sys/vm/swappiness ์์คํ ์์ ์ค์์ ๋ณ๊ฒฝํ๋ ค๋ฉด ๋ค์์ ์ํํฉ๋๋ค.
/etc/sysctl.conf
ํ์ผ์ ํธ์งํ๊ณ ๋ค์ ์ค์ ์ถ๊ฐํฉ๋๋ค:vm.swappiness = 1 ๋ค์ ๋ช ๋ น์ ์คํํ์ฌ ์ค์ ์ ์ ์ฉํฉ๋๋ค.
sudo sysctl -p
์ฐธ๊ณ
RHEL/CentOS๋ฅผ ์คํ ์ค์ด๊ณ tuned
์ฑ๋ฅ ํ๋กํ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ vm.swappiness
์ 1
๋๋ 0
์ผ๋ก ์ค์ ํ๋๋ก ์ ํํ ํ๋กํ๋ ํธ์งํด์ผ ํฉ๋๋ค.
๊ถ์ฅ ๊ตฌ์ฑ
๋ชจ๋ MongoDB deployments์ ๊ฒฝ์ฐ:
๋คํธ์ํฌ ์๊ฐ ํ๋กํ ์ฝ(NTP)์ ์ฌ์ฉํ์ฌ ํธ์คํธ ๊ฐ์ ์๊ฐ์ ๋๊ธฐํํ ์ ์์ต๋๋ค. ์ด๋ ์ค๋ฉ๋ ํด๋ฌ์คํฐ์์ ํนํ ์ค์ํฉ๋๋ค.
WiredTiger ์คํ ๋ฆฌ์ง ์์ง์ ๊ฒฝ์ฐ ๋ค์ ๊ถ์ฅ ์ฌํญ์ ๊ณ ๋ คํ์ธ์.
๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ผ์ด ๋ค์ด ์๋ ์คํ ๋ฆฌ์ง ๋ณผ๋ฅจ์
atime
๋ฅผ ๋๋๋ค.ulimit ์ฐธ๊ณ ์ ๊ถ์ฅ ์ฌํญ์ ๋ฐ๋ผ ํ๋ซํผ์
ulimit
์ค์ ์ ์กฐ์ ํฉ๋๋ค.ulimit
๊ฐ์ด ๋ฎ์ผ๋ฉด ์ฌ์ฉ๋์ด ๋ง์ ๋ MongoDB์ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น๊ณ MongoDB ํ๋ก์ธ์ค์ ๋ํ ์ฐ๊ฒฐ ์คํจ ๋ฐ ์๋น์ค ์์ค๋ก ์ด์ด์ง ์ ์์ต๋๋ค.์ฐธ๊ณ
์ด๋ ค ์๋ ํ์ผ ์์
ulimit
๊ฐ์ด64000
๋ฏธ๋ง์ธ ๊ฒฝ์ฐ MongoDB๊ฐ ์์ ๊ฒฝ๊ณ ๋ฅผ ์์ฑํฉ๋๋ค.Transparent Huge Pages๋ฅผ ๋นํ์ฑํํฉ๋๋ค. MongoDB๋ ์ผ๋ฐ(4096๋ฐ์ดํธ) ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ์ด์ง์์ ๋ ๋์ ์ฑ๋ฅ์ ๋ฐํํฉ๋๋ค. Transparent Huge Pages ์ค์ ์ ์ฐธ์กฐํ์ธ์.
BIOS์์ NUMA๋ฅผ ๋นํ์ฑํํฉ๋๋ค. ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ NUMA ํ๋์จ์ด์ MongoDB๋ฅผ ์ฐธ์กฐํ์ธ์.
๊ธฐ๋ณธ MongoDB ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก ๋๋ ํฌํธ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ MongoDB์ฉ SELinux๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
์ฐธ์กฐ: ํ์ํ ๊ตฌ์ฑ ์MongoDB์ฉ SELinux ๊ตฌ์ฑ ๋ฐ MongoDB Enterprise ์ฉ SELinux ๊ตฌ์ฑ์ ์ฐธ์กฐํ์ธ์.
์ฐธ๊ณ
SELinux๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์๋ฒ ์ธก JavaScript๋ฅผ ํ์๋ก ํ๋ ๋ชจ๋ MongoDB ์์ ์ ์ธ๊ทธํดํธ ์ค๋ฅ๋ฅผ ๋ฐ์์ํต๋๋ค. JavaScript์ ์๋ฒ ์ธก ์คํ ๋นํ์ฑํ์์๋ ์๋ฒ ์ธก JavaScript์ ์คํ์ ๋นํ์ฑํํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
WiredTiger ์คํ ๋ฆฌ์ง ์์ง์ ๊ฒฝ์ฐ:
์ ์ฅ ๋ฏธ๋์ด์ ์ข ๋ฅ(์คํผ๋ ๋์คํฌ, SSD ๋ฑ)์ ๊ด๊ณ์์ด 8์์ 32 ์ฌ์ด์ readahead๋ฅผ ์ค์ ํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ฝ๊ธฐ ํค๋๊ฐ ๋์ ์๋ก ์์ฐจ์ I/O ์์ ์ ์ ๋ฆฌํฉ๋๋ค. MongoDB ๋์คํฌ ์ก์ธ์ค ํจํด์ ์ผ๋ฐ์ ์ผ๋ก ๋ฌด์์์ด๊ธฐ ๋๋ฌธ์ ๋ ๋์ ์ฝ๊ธฐ ํค๋ ์ค์ ์ ์ฌ์ฉํ๋ฉด ์ด์ ์ด ์ ํ์ ์ด๊ฑฐ๋ ์ฑ๋ฅ์ด ์ ํ๋ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ํ ์คํธ ๊ฒฐ๊ณผ ๋ ๋์ ์ฝ๊ธฐ ํค๋ ๊ฐ์์ ์ธก์ ๊ฐ๋ฅํ๊ณ ๋ฐ๋ณต ๊ฐ๋ฅํ๋ฉฐ ์ ๋ขฐํ ์ ์๋ ์ด์ ์ ์ป์ ์ ์๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ผ๋ฉด, ์ต์ ์ MongoDB ์ฑ๋ฅ์ ์ํด ์ฝ๊ธฐ ํค๋๋ฅผ 8~32 ์ฌ์ด๋ก ์ค์ ํ์ธ์. MongoDB ์์ ๋ถ๋ฌธ ์ง์ํ์ด ๋์ฒด ์ฝ๊ธฐ ํค๋ ๊ตฌ์ฑ์ ๋ํ ์กฐ์ธ๊ณผ ์ง์นจ์ ์ ๊ณตํด ๋๋ฆด ์ ์์ต๋๋ค.
MongoDB ๋ฐ TLS/SSL ๋ผ์ด๋ธ๋ฌ๋ฆฌ
Linux ํ๋ซํผ์์๋ MongoDB ๋ก๊ทธ์์ ๋ค์ ๋ช ๋ น๋ฌธ ์ค ํ๋๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
<path to TLS/SSL libs>/libssl.so.<version>: no version information available (required by /usr/bin/mongod) <path to TLS/SSL libs>/libcrypto.so.<version>: no version information available (required by /usr/bin/mongod)
์ด๋ฌํ ๊ฒฝ๊ณ ๋ ์์คํ
์ TLS/SSL ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ mongod
๊ฐ ์ปดํ์ผ๋ TLS/SSL ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ค๋ฅด๋ค๋ ๊ฒ์ ๋ํ๋
๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ด๋ฌํ ๋ฉ์์ง์๋ ๊ฐ์
์ด ํ์ํ์ง ์์ง๋ง ๋ค์ ์์
์ ์ฌ์ฉํ์ฌ mongod
๊ฐ ์์ํ๋ ๊ธฐํธ ๋ฒ์ ์ ํ์ธํ ์ ์์ต๋๋ค:
objdump -T <path to mongod>/mongod | grep " SSL_" objdump -T <path to mongod>/mongod | grep " CRYPTO_"
์ด๋ฌํ ์์ ์ ๋ค์ ์ค ์ค ํ๋์ ์ ์ฌํ ์ถ๋ ฅ์ ๋ฐํํฉ๋๋ค.
0000000000000000 DF *UND* 0000000000000000 libssl.so.10 SSL_write 0000000000000000 DF *UND* 0000000000000000 OPENSSL_1.0.0 SSL_write
์ด ์ถ๋ ฅ์ ๋ง์ง๋ง ๋ ๋ฌธ์์ด์ ๊ธฐํธ ๋ฒ์ ๊ณผ ๊ธฐํธ ์ด๋ฆ์ ๋๋ค. ์ด ๊ฐ์ ๋ค์ ์์ ์์ ๋ฐํ๋ ๊ฐ๊ณผ ๋น๊ตํ์ฌ ๊ธฐํธ ๋ฒ์ ๋ถ์ผ์น๋ฅผ ๊ฒ์ํฉ๋๋ค.
objdump -T <path to TLS/SSL libs>/libssl.so.1* objdump -T <path to TLS/SSL libs>/libcrypto.so.1*
์ด ์ ์ฐจ๋ ์ ํํ์ง๋ ์์ ํ์ง๋ ์์ต๋๋ค. libcrypto
๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ mongod
๊ฐ ์ฌ์ฉํ๋ ๊ธฐํธ ์ค ์๋น์๋ CRYPTO_
๋ก ์์ํ์ง ์์ต๋๋ค.
Windows์ MongoDB
WiredTiger ์คํ ๋ฆฌ์ง ์์ง์ ์ฌ์ฉํ๋ MongoDB ์ธ์คํด์ค์ ๊ฒฝ์ฐ, Windows์ ์ฑ๋ฅ์ Linux์ ์ฑ๋ฅ๊ณผ ๋น์ทํฉ๋๋ค.
๊ฐ์ ํ๊ฒฝ์์์ MongoDB
์ด ์น์ ์์๋ ๋ณด๋ค ์ผ๋ฐ์ ์ธ ๊ฐ์ ํ๊ฒฝ์์ MongoDB๋ฅผ ์คํํ ๋ ๊ณ ๋ คํด์ผ ํ ์ฌํญ์ ๋ํด ์ค๋ช ํฉ๋๋ค.
๋ชจ๋ ํ๋ซํผ์์ ์์ฝ์ ๊ณ ๋ คํ์ธ์.
AWS EC2
๊ณ ๋ คํด์ผ ํ ๋ ๊ฐ์ง ์ฑ๋ฅ ๊ตฌ์ฑ์ด ์์ต๋๋ค.
์ฑ๋ฅ ํ ์คํธ ๋๋ ๋ฒค์น๋งํน์ ์ํ ์ฌํ ๊ฐ๋ฅํ ์ฑ๋ฅ, ๊ทธ๋ฆฌ๊ณ
์์ ์ต๋ ์ฑ๋ฅ
๋ ๊ตฌ์ฑ ๋ชจ๋์ ๋ํด EC2์์ ์ฑ๋ฅ์ ์กฐ์ ํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ํด์ผ ํฉ๋๋ค:
์ธ์คํด์ค์ ๋ํด AWS ํฅ์๋ ๋คํธ์ํน์ ํ์ฑํํฉ๋๋ค. ๋ชจ๋ ์ธ์คํด์ค ์ ํ์ด ํฅ์๋ ๋คํธ์ํน์ ์ง์ํ๋ ๊ฒ์ ์๋๋๋ค.
ํฅ์๋ ๋คํธ์ํน์ ๋ํด ์์ธํ ์์๋ณด๋ ค๋ฉด AWS ์ค๋ช ์๋ฅผ ์ฐธ์กฐํ์ธ์.
EC2์์ ์ฌํ ๊ฐ๋ฅํ ์ฑ๋ฅ์ ๋ ๊ด์ฌ์ด ์๋ ๊ฒฝ์ฐ๋ผ๋ฉด ์ด ๋ํ ๊ณ ๋ คํด์ผ ํฉ๋๋ค:
์ ๋๊ณผ ๋ฐ์ดํฐ๋ฅผ ์ํ ๋ณ๋์ ์ฅ์น๋ก ์คํ ๋ฆฌ์ง์ ํ๋ก๋น์ ๋๋ IOPS๋ฅผ ์ฌ์ฉํ์ธ์. ๋๋ถ๋ถ์ ์ธ์คํด์ค ์ ํ์์ ์ฌ์ฉํ ์ ์๋ ์์(SSD) ์คํ ๋ฆฌ์ง๋ ์ฑ๋ฅ์ด ์์๊ฐ๊ฐ ๋ณํ๋ฏ๋ก ์ฌ์ฉํ์ง ๋ง์ญ์์ค. (
i
์๋ฆฌ์ฆ๋ ์ฃผ๋ชฉํ ๋งํ ์์ธ์ด์ง๋ง ๋งค์ฐ ๋น์๋๋ค.)DVFS ๋ฐ CPU ์ ์ ๋ชจ๋๋ฅผ ๋นํ์ฑํํฉ๋๋ค.
ํ์ดํผ์ค๋ ๋ฉ์ ๋นํ์ฑํํฉ๋๋ค.
๋ฉ๋ชจ๋ฆฌ ์ง์ญ์ฑ์ ๋จ์ผ ์์ผ์ ๋ฐ์ธ๋ฉํ๋ ค๋ฉด
numactl
๋ฅผ ์ฌ์ฉํฉ๋๋ค.
Azure
ํ๋ฆฌ๋ฏธ์ ์คํ ๋ฆฌ์ง๋ฅผ ์ฌ์ฉํฉ๋๋ค. Microsoft Azure๋ ํ์ค ์คํ ๋ฆฌ์ง์ ํ๋ฆฌ๋ฏธ์ ์คํ ๋ฆฌ์ง๋ผ๋ ๋ ๊ฐ์ง ์ผ๋ฐ์ ์ธ ์ ํ์ ์คํ ๋ฆฌ์ง๋ฅผ ์ ๊ณตํฉ๋๋ค. Azure์ MongoDB๋ ํ์ค ์คํ ๋ฆฌ์ง๋ณด๋ค ํ๋ฆฌ๋ฏธ์ ์คํ ๋ฆฌ์ง๋ฅผ ์ฌ์ฉํ ๋ ๋ ๋์ ์ฑ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
Azure ๋ก๋ ๋ฐธ๋ฐ์์ TCP ์ ํด ์๊ฐ ์ ํ์ ๊ธฐ๋ณธ์ ์ผ๋ก 240์ด์
๋๋ค. ์ด๋ก ์ธํด Azure ์์คํ
์ TCP ์ฐ๊ฒฐ ์ ์ง๊ฐ ์ด ๊ฐ๋ณด๋ค ํฐ ๊ฒฝ์ฐ ์๋์ผ๋ก ์ฐ๊ฒฐ์ด ์ ๊ฑฐ๋ ์ ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ๊ฐ์ ํ๋ ค๋ฉด tcp_keepalive_time
์ 120์ผ๋ก ์ค์ ํด์ผ ํฉ๋๋ค.
์ฐธ๊ณ
Linux์์ ํต์ผ๋ผ์ด๋ธ ์ค์ ์ ํ์ธํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น ์ค ํ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค:
sysctl net.ipv4.tcp_keepalive_time ๋๋:
cat /proc/sys/net/ipv4/tcp_keepalive_time ๊ฐ์ ์ด ๋จ์๋ก ์ธก์ ๋ฉ๋๋ค.
์ฐธ๊ณ
์ค์ ์ด๋ฆ์
ipv4
๊ฐ ํฌํจ๋์ด ์์ง๋ง,tcp_keepalive_time
๊ฐ์ IPv4์ IPv6 ๋ชจ๋์ ์ ์ฉ๋ฉ๋๋ค.tcp_keepalive_time
๊ฐ์ ๋ณ๊ฒฝํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ <value>๋ฅผ ์ด ๋จ์๋ก ์ ๋ ฅํ๋ฉด ๋ฉ๋๋คsudo sysctl -w net.ipv4.tcp_keepalive_time=<value> ๋๋:
echo <value> | sudo tee /proc/sys/net/ipv4/tcp_keepalive_time ์ด๋ฌํ ์ฐ์ฐ์ ์์คํ ์ฌ๋ถํ ์ ์ง์๋์ง ์์ต๋๋ค. ์ค์ ์ ์ ์งํ๋ ค๋ฉด ๋ค์ ์ค์
/etc/sysctl.conf
์ ์ถ๊ฐํ๊ณ <value>๋ฅผ ์ด ๋จ์๋ก ์ ๋ ฅํ ํ ๋จธ์ ์ ์ฌ๋ถํ ํ์ธ์.net.ipv4.tcp_keepalive_time = <value> 300
์ด(5๋ถ)๋ณด๋ค ํฐ ํต์ผ๋ผ์ด๋ธ ๊ฐ์mongod
๋ฐmongos
์์ผ์์ ์ฌ์ ์๋๊ณ300
์ด๋ก ์ค์ ๋ฉ๋๋ค.
Windows์์ ํต์ผ๋ผ์ด๋ธ ์ค์ ์ ํ์ธํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ ์คํํฉ๋๋ค:
reg query HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v KeepAliveTime ๋ ์ง์คํธ๋ฆฌ ๊ฐ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์กด์ฌํ์ง ์์ต๋๋ค. ๊ฐ์ด ์๋ ๊ฒฝ์ฐ ์ฌ์ฉ๋๋ ์์คํ ๊ธฐ๋ณธ๊ฐ์
7200000
๋ฐ๋ฆฌ์ด ๋๋ 16์ง์๋ก0x6ddd00
์ ๋๋ค.KeepAliveTime
๊ฐ์ ๋ณ๊ฒฝํ๋ ค๋ฉด ๊ด๋ฆฌ์ Command Prompt์์ ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํฉ๋๋ค. ์ฌ๊ธฐ์<value>
๋ 16์ง์๋ก ํ์๋ฉ๋๋ค (์:120000
๋0x1d4c0
์ ๋๋ค):reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\ /t REG_DWORD /v KeepAliveTime /d <value> Windows ์ฌ์ฉ์๊ฐ Windows ์์คํ ์์ MongoDB ๋ฐฐํฌ๋ฅผ ์ํ ํต์ผ๋ผ์ด๋ธ ์ค์ ์ ๋ํ ์์ธํ ์์๋ณด๋ ค๋ฉด KeepAliveTime์ ๋ํ Windows Server ํ ํฌ๋ท ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์. 600000 ๋ฐ๋ฆฌ์ด(10 ๋ถ)๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ ํต์ผ๋ผ์ด๋ธ ๊ฐ์
mongod
๋ฐmongos
์์ ๋ฌด์๋ฉ๋๋ค.
VMware
MongoDB๋ VMware์ ํธํ๋ฉ๋๋ค.
VMware๋ ๋ฌผ๋ฆฌ์ ๋จธ์ ์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค ๋ ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ์ ๋จธ์ ์ ํ ๋นํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ์ค๋ฒ์ปค๋ฐ์ ์ง์ํฉ๋๋ค. ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ค๋ฒ์ปค๋ฐ๋๋ฉด ํ์ดํผ๋ฐ์ด์ ๋ ๊ฐ์ ๋จธ์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌํ ๋นํฉ๋๋ค. VMware์ ๋ฒ๋ฃฌ ๋๋ผ์ด๋ฒ(vmmemctl
)๊ฐ ๊ฐ์ฅ ๊ฐ์น๊ฐ ๋ฎ์ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋๋ ํ์ด์ง๋ฅผ ํ์ํฉ๋๋ค.
๋ฒ๋ฃฌ ๋๋ผ์ด๋ฒ๋ ๊ฒ์คํธ ์ด์ ์ฒด์ ๋ด์ ์์ฃผํฉ๋๋ค. ํน์ ๊ตฌ์ฑ์์ ๋ฒ๋ฃฌ ๋๋ผ์ด๋ฒ๊ฐ ํ์ฅ๋๋ฉด MongoDB์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ๋ฐฉํดํ๊ณ MongoDB์ ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค.
๋ฒ๋ฃฌ ๋๋ผ์ด๋ฒ ๋ฐ ๋ฉ๋ชจ๋ฆฌ ์ค๋ฒ ์ปค๋ฐ ๊ธฐ๋ฅ์ผ๋ก ์ธํด ์ฑ๋ฅ์ด ์ ํ๋๋ ๊ฒ์ ๋ฐฉ์งํ๋ ค๋ฉด MongoDB๋ฅผ ์คํํ๋ ๊ฐ์ ๋จธ์ ์ ์ ์ฒด ๋ฉ๋ชจ๋ฆฌ ์์ ๋น์ถํด ๋์ธ์. ๊ฐ์ ๋จธ์ ์ ์ ์ ํ ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋น์ถํด ๋๋ฉด ํ์ดํผ๋ฐ์ด์ ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ ๋ ๋ก์ปฌ ์ด์ ์ฒด์ ์์ ๋ฒ๋ฃฌ์ด ํฝ์ฐฝํ๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
๋ฒ๋ฃฌ ๋๋ผ์ด๋ฒ ๋ฐ ๋ฉ๋ชจ๋ฆฌ ์ค๋ฒ์ปค๋ฐ ๊ธฐ๋ฅ์ ํน์ ๊ตฌ์ฑ์์ MongoDB ์ฑ๋ฅ์ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น ์ ์์ง๋ง ์ด๋ฌํ ๊ธฐ๋ฅ์ ๋นํ์ฑํํ๋๋ก ์ค์ ํ์ง ์์ต๋๋ค. ์ด๋ฌํ ๊ธฐ๋ฅ์ ๋นํ์ฑํํ๋ฉด ํ์ดํผ๋ฐ์ด์ ๊ฐ ๋ฉ๋ชจ๋ฆฌ ์์ฒญ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ค์ ๊ณต๊ฐ์ ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ์ฑ๋ฅ์ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
VMware์ ์ ํธ๋ ๊ท์น์ ์ค์ ํ์ฌ ๊ฐ์ ๋จธ์ ์ด ํน์ ESX/ESXi ํธ์คํธ์ ์ ์ง๋๋์ง ํ์ธํฉ๋๋ค. ๊ฐ์ ๋จธ์ ์ ๋ค๋ฅธ ํธ์คํธ๋ก ์๋์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์
ํด์ผ ํ๊ณ ๊ฐ์ ๋จธ์ ์ mongod
์ธ์คํด์ค๊ฐ ํ๋ผ์ด๋จธ๋ฆฌ์ธ ๊ฒฝ์ฐ, ๋จผ์ ํ๋ผ์ด๋จธ๋ฆฌ๋ฅผ step down
ํ๊ณ , shut down the instance
ํด์ผ ํฉ๋๋ค.
vMotion ๋ฐ VMKernel์ ๋ํ ๋คํธ์ํน ๊ถ์ฅ์ฌํญ์ ๋ฐ๋ฆ ๋๋ค. ๊ถ์ฅ์ฌํญ์ ๋ฐ๋ฅด์ง ์์ผ๋ฉด ์ฑ๋ฅ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ณ ๋ณต์ ๋ณธ ์ธํธ ๋ฐ ์ค๋ฉ๋ ํด๋ฌ์คํฐ ๊ณ ๊ฐ์ฉ์ฑ ๋ฉ์ปค๋์ฆ์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค.
MongoDB๋ฅผ ์คํํ๋ ๊ฐ์ ๋จธ์ ์ ๋ณต์ ํ ์ ์์ต๋๋ค. ์ด ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ ๊ฐ์ ํธ์คํธ๋ฅผ ๋ฐฐํฌํ์ฌ ๋ณต์ ๋ณธ ์ธํธ์ ๋ ธ๋๋ก ์ถ๊ฐํ ์ ์์ต๋๋ค.
KVM
MongoDB๋ KVM๊ณผ ํธํ๋ฉ๋๋ค.
KVM์ ๋ฉ๋ชจ๋ฆฌ ์ค๋ฒ์ปค๋ฐ์ ์ง์ํ์ฌ ๊ฐ์ ๋จธ์ ์ ๋ฌผ๋ฆฌ์ ๋จธ์ ์ด ์ฌ์ฉํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค ๋ ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ ์ ์์ต๋๋ค. ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ค๋ฒ์ปค๋ฐ๋๋ฉด ํ์ดํผ๋ฐ์ด์ ๋ ๊ฐ์ ๋จธ์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌํ ๋นํฉ๋๋ค. KVM์ ๋ฒ๋ฃฌ ๋๋ผ์ด๋ฒ๋ ๊ฐ์ฅ ๊ฐ์น๊ฐ ๋ฎ์ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋๋ ํ์ด์ง๋ฅผ ํ์ํฉ๋๋ค.
๋ฒ๋ฃฌ ๋๋ผ์ด๋ฒ๋ ๊ฒ์คํธ ์ด์ ์ฒด์ ๋ด์ ์์ฃผํฉ๋๋ค. ํน์ ๊ตฌ์ฑ์์ ๋ฒ๋ฃฌ ๋๋ผ์ด๋ฒ๊ฐ ํ์ฅ๋๋ฉด MongoDB์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ๋ฐฉํดํ๊ณ MongoDB์ ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค.
๋ฒ๋ฃฌ ๋๋ผ์ด๋ฒ ๋ฐ ๋ฉ๋ชจ๋ฆฌ ์ค๋ฒ ์ปค๋ฐ ๊ธฐ๋ฅ์ผ๋ก ์ธํด ์ฑ๋ฅ์ด ์ ํ๋๋ ๊ฒ์ ๋ฐฉ์งํ๋ ค๋ฉด MongoDB๋ฅผ ์คํํ๋ ๊ฐ์ ๋จธ์ ์ ์ ์ฒด ๋ฉ๋ชจ๋ฆฌ ์์ ๋น์ถํด ๋์ธ์. ๊ฐ์ ๋จธ์ ์ ์ ์ ํ ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋น์ถํด ๋๋ฉด ํ์ดํผ๋ฐ์ด์ ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ ๋ ๋ก์ปฌ ์ด์ ์ฒด์ ์์ ๋ฒ๋ฃฌ์ด ํฝ์ฐฝํ๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
๋ฒ๋ฃฌ ๋๋ผ์ด๋ฒ ๋ฐ ๋ฉ๋ชจ๋ฆฌ ์ค๋ฒ์ปค๋ฐ ๊ธฐ๋ฅ์ ํน์ ๊ตฌ์ฑ์์ MongoDB ์ฑ๋ฅ์ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น ์ ์์ง๋ง ์ด๋ฌํ ๊ธฐ๋ฅ์ ๋นํ์ฑํํ๋๋ก ์ค์ ํ์ง ์์ต๋๋ค. ์ด๋ฌํ ๊ธฐ๋ฅ์ ๋นํ์ฑํํ๋ฉด ํ์ดํผ๋ฐ์ด์ ๊ฐ ๋ฉ๋ชจ๋ฆฌ ์์ฒญ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ค์ ๊ณต๊ฐ์ ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ์ฑ๋ฅ์ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
์ฑ๋ฅ ๋ชจ๋ํฐ๋ง
์ฐธ๊ณ
๋ฒ์ 4.0๋ถํฐ MongoDB๋ ๋ ๋ฆฝํ ๋ฐ ๋ณต์ ๋ณธ ์ธํธ์ ๋ํ ๋ฌด๋ฃ cloud ๋ชจ๋ํฐ๋ง ์ ์ ๊ณตํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ฌด๋ฃ ๋ชจ๋ํฐ๋ง์ ์ฐธ์กฐํ์ธ์.
iostat
Linux์์๋ iostat
๋ช
๋ น์ ์ฌ์ฉํ์ฌ ๋์คํฌ I/O๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ณ๋ชฉ ํ์์ ์ผ์ผํค๋์ง ํ์ธํ์ธ์. ์๋ฒ ๋ถํ
์ดํ์ ์๊ฐ์ ๋ค๋ฃจ๋ ํต๊ณ๊ฐ ํ์๋์ง ์๋๋ก ํ๋ ค๋ฉด iostat์ ์คํํ ๋ ์๊ฐ(์ด)์ ์ง์ ํ์ธ์.
์๋ฅผ ๋ค์ด, ๋ค์ ๋ช ๋ น์ ํ์ฅ ํต๊ณ์ ํ์๋ ๊ฐ ๋ณด๊ณ ์์ ์๊ฐ์ 1์ด ๊ฐ๊ฒฉ์ผ๋ก ํธ๋ํฝ(MB/s)๊ณผ ํจ๊ป ํ์ํฉ๋๋ค.
iostat -xmt 1
iostat
์ ํค ํ๋์
๋๋ค.
%util
: ๋น ๋ฅธ ํ์ธ์ ๊ฐ์ฅ ์ ์ฉํ ํ๋๋ก, ์ฅ์น/๋๋ผ์ด๋ธ๊ฐ ์ฌ์ฉ ์ค์ธ ์๊ฐ์ ๋ฐฑ๋ถ์จ์ ๋ํ๋ ๋๋ค.avgrq-sz
: ํ๊ท ์์ฒญ ํฌ๊ธฐ. ์ด ๊ฐ์ ์ซ์๊ฐ ์์์๋ก ๋ ๋ง์ ์์ IO ์์ ์ด ๋ฐ์๋ฉ๋๋ค.
bwm-ng
bwm-ng ๋คํธ์ํฌ ์ฌ์ฉ์ ๋ชจ๋ํฐ๋งํ๊ธฐ ์ํ ๋ช
๋ น์ค ๋๊ตฌ์
๋๋ค. ๋คํธ์ํฌ ๊ธฐ๋ฐ ๋ณ๋ชฉ ํ์์ด ์์ฌ๋๋ ๊ฒฝ์ฐ bwm-ng
๋ฅผ ์ฌ์ฉํ์ฌ ์ง๋จ ํ๋ก์ธ์ค๋ฅผ ์์ํ ์ ์์ต๋๋ค.
๋ฐฑ์
MongoDB database๋ฅผ ๋ฐฑ์ ํ๋ ค๋ฉด MongoDB ๋ฐฑ์ ๋ฐฉ๋ฒ ๊ฐ์๋ฅผ ์ฐธ์กฐํ์ธ์.