hostInfo๋ฐํํฉ๋๋ค: mongod๋๋mongos๊ฐ ์คํ ๊ธฐ๋ณธ ์์คํ ์ ๋ํ ์ ๋ณด๊ฐ ํฌํจ๋ ๋ฌธ์ ์ ๋๋ค. ๋ฐํ๋ ํ๋ ์ค ์ผ๋ถ๋ ์ผ๋ถ ํ๋ซํผ์์๋ง ํฌํจ๋ฉ๋๋ค.์ธ์๋ฅผ ๋ฐ์ง ์๋
hostInfo๋ช ๋ น์admin๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํด ์คํํด์ผ ํฉ๋๋ค.
ํธํ์ฑ
์ด ๋ช ๋ น์ ๋ค์ ํ๊ฒฝ์์ ํธ์คํ ๋๋ ๋ฐฐํฌ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
MongoDB Atlas: ํด๋ผ์ฐ๋์์์ MongoDB ๋ฐฐํฌ๋ฅผ ์ํ ์์ ๊ด๋ฆฌํ ์๋น์ค
์ค์
์ด ๋ช ๋ น์ M0, M2 ๋ฐ M5 ํด๋ฌ์คํฐ์์ ์ง์๋์ง ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์ง์๋์ง ์๋ ๋ช ๋ น์ ์ฐธ์กฐํ์ธ์.
MongoDB Enterprise: MongoDB์ ๊ตฌ๋ ๊ธฐ๋ฐ ์์ฒด ๊ด๋ฆฌ ๋ฒ์
MongoDB Community: MongoDB์ ์์ค ์ฌ์ฉ ๊ฐ๋ฅ ๋ฌด๋ฃ ์์ฒด ๊ด๋ฆฌ ๋ฒ์
๊ตฌ๋ฌธ
db.hostInfo() db.adminCommand( { "hostInfo" : 1 } )
mongosh์์๋ db.hostInfo()๋ฅผ ํฌํผ๋ก ์ฌ์ฉํ์ฌ hostInfo์ ์ก์ธ์คํ ์ ์์ต๋๋ค. Linux ์์คํ
์์ hostInfo์ ์ถ๋ ฅ์ ๋ค์๊ณผ ์ ์ฌํฉ๋๋ค.
{ "system" : { "currentTime" : ISODate("<timestamp>"), "hostname" : "<hostname>", "cpuAddrSize" : <number>, "memSizeMB" : <number>, "memLimitMB" : <number>, // Available starting in MongoDB 4.0.9 (and 3.6.13) "numCores" : <number>, "cpuArch" : "<identifier>", "numaEnabled" : <boolean> }, "os" : { "type" : "<string>", "name" : "<string>", "version" : "<string>" }, "extra" : { "versionString" : "<string>", "libcVersion" : "<string>", "kernelVersion" : "<string>", "cpuFrequencyMHz" : "<string>", "cpuFeatures" : "<string>", "pageSize" : <number>, "numPages" : <number>, "maxOpenFiles" : <number> }, "ok" : <return> }
์ถ๋ ฅ
mongosh์์๋ db.hostInfo()๋ฅผ ํฌํผ๋ก ์ฌ์ฉํ์ฌ hostInfo์ ์ก์ธ์คํ ์ ์์ต๋๋ค. Linux ์์คํ
์์ hostInfo์ ์ถ๋ ฅ์ ๋ค์๊ณผ ์ ์ฌํฉ๋๋ค.
{ "system" : { "currentTime" : ISODate("<timestamp>"), "hostname" : "<hostname>", "cpuAddrSize" : <number>, "memSizeMB" : <number>, "memLimitMB" : <number>, "numCores" : <number>, "cpuArch" : "<identifier>", "numaEnabled" : <boolean> }, "os" : { "type" : "<string>", "name" : "<string>", "version" : "<string>" }, "extra" : { "versionString" : "<string>", "libcVersion" : "<string>", "kernelVersion" : "<string>", "cpuFrequencyMHz" : "<string>", "cpuFeatures" : "<string>", "pageSize" : <number>, "numPages" : <number>, "maxOpenFiles" : <number> }, "ok" : <return> }
์ถ๋ ฅ ํ๋
hostInfohostInfo์์ ๋ฐํ๋ ๋ฌธ์์ ๋๋ค.
hostInfo.systemmongod๋๋mongos์(๋ฅผ) ์คํํ๋ ์์คํ ์ ๊ธฐ๋ณธ ํ๊ฒฝ์ ๋ํ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ๋ด์ฅ๋ ๋ฌธ์์ ๋๋ค.
hostInfo.system.hostnameLinux ์์คํ ์์
hostname -f์ ์ถ๋ ฅ๊ณผ ์ผ์นํด์ผ ํ๋ ์์คํ ์ด๋ฆ์ ๋๋ค.
hostInfo.system.cpuAddrSize์์คํ ์ํคํ ์ฒ๋ฅผ ๋ฐ์ํ๋ ์ซ์์ ๋๋ค.
32๋๋64์ค ํ๋์ ๋๋ค.
hostInfo.system.memLimitMB๋ฉ๊ฐ๋ฐ์ดํธ ๋จ์์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ์ ํ์ ๋๋ค.
์๋ฅผ ๋ค์ด ์ปจํ ์ด๋์์ ์คํํ๋ฉด ์ ์ฒด ์์คํ ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค ๋ฎ์ ๋ฉ๋ชจ๋ฆฌ ์ ํ์ด ์ ์ฉ๋ ์ ์์ต๋๋ค. ์ด ๋ฉ๋ชจ๋ฆฌ ์ ํ์ ์ ์ฒด ์์คํ ๋ฉ๋ชจ๋ฆฌ ๋์ WiredTiger ๋ด๋ถ ์บ์๋ฅผ ๊ณ์ฐํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ์ต๋ RAM์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
hostInfo.system.cpuArch์์คํ ์ํคํ ์ฒ๋ฅผ ๋ํ๋ด๋ ๋ฌธ์์ด์ ๋๋ค.
x86๋๋x86_64์ค ํ๋์ ๋๋ค.
hostInfo.system.numaEnabled๋ถ์ธ ๊ฐ์ ๋๋ค. NUMA๊ฐ ์ธํฐ๋ฆฌ๋น๋ ๊ฒฝ์ฐ(์ฆ, ๋นํ์ฑํ๋ ๊ฒฝ์ฐ)
false, ๊ทธ๋ ์ง ์์ผ๋ฉดtrue์ ๋๋ค.
hostInfo.osmongod๋ฐmongos์(๋ฅผ) ์คํํ๋ ์ด์ ์ฒด์ ์ ๋ํ ์ ๋ณด๋ฅผ ํฌํจํ๋ ๋ด์ฅ๋ ๋ฌธ์์ ๋๋ค
hostInfo.os.typeLinux๋๋Windows์ ๊ฐ์ ์ด์ ์ฒด์ ์ ํ์ ๋ํ๋ด๋ ๋ฌธ์์ด์ ๋๋ค.
hostInfo.os.version์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒฝ์ฐ ๋ฐฐํฌํ ๋๋ ์ด์ ์ฒด์ ์ ์ด๋ฆ์ ๋ฐํํฉ๋๋ค.
hostInfo.extra๋ด์ฅ๋ ๋ฌธ์ ๋ก์ ์ด์ ์ฒด์ ๋ฐ ๊ธฐ๋ณธ hardware ์ ๋ํ ์๋น ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
extra๋ด์ฅ๋ ๋ฌธ์ ์ ๋ด์ฉ์ ์ด์ ์ฒด์ ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.
hostInfo.extra.cpuString์ฌ๋์ด ์ฝ์ ์ ์๋ ์์คํ ํ๋ก์ธ์ ์ค๋ช ์ด ํฌํจ๋ ๋ฌธ์์ด์ ๋๋ค.
cpuStringmacOS ์์คํ ์๋ง ํ์๋ฉ๋๋ค.
hostInfo.extra.versionString์ด์ ์ฒด์ ๋ฒ์ ๋ฐ ID์ ์ ์ฒด ๋ฌธ์์ด์ ๋๋ค. Linux ๋ฐ macOS ์์คํ ์์๋
uname -a์(๊ณผ) ์ ์ฌํ ์ถ๋ ฅ์ด ํฌํจ๋ฉ๋๋ค.
hostInfo.extra.libcVersion์์คํ
libc์ ๋ฆด๋ฆฌ์ค์ ๋๋ค.libcVersionLinux ์์คํ ์๋ง ํ์๋ฉ๋๋ค.
hostInfo.extra.kernelVersionํ์ฌ ์ฌ์ฉ ์ค์ธ Linux ์ปค๋์ ๋ฆด๋ฆฌ์ค์ ๋๋ค.
kernelVersionLinux ์์คํ ์๋ง ํ์๋ฉ๋๋ค.
hostInfo.extra.alwaysFullSyncalwaysFullSyncmacOS ์์คํ ์๋ง ํ์๋ฉ๋๋ค.
hostInfo.extra.nfsAsyncnfsAsyncmacOS ์์คํ ์๋ง ํ์๋ฉ๋๋ค.
hostInfo.extra.cpuFrequencyMHz์์คํ ํ๋ก์ธ์์ ํด๋ญ ์๋๋ฅผ ๋ฉ๊ฐํค๋ฅด์ธ ๋จ์๋ก ๋ณด๊ณ ํฉ๋๋ค.
hostInfo.extra.cpuFeaturesํ๋ก์ธ์ ๊ธฐ๋ฅ ํ๋๊ทธ๋ฅผ ๋ณด๊ณ ํฉ๋๋ค. Linux ์์คํ ์์๋
/proc/cpuinfo์ด(๊ฐ)flagsํ๋์ ํฌํจํ๋ ๊ฒ๊ณผ ๋์ผํ ์ ๋ณด์ ๋๋ค.
hostInfo.extra.physicalCores์์คํ ์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฌผ๋ฆฌ์ (ํ์ดํผ์ค๋ ๋ฉ์ด ์๋) ์ฝ์ด ์๋ฅผ ๋ณด๊ณ ํฉ๋๋ค.
physicalCoresmacOS ์์คํ ์๋ง ํ์๋ฉ๋๋ค.
hostInfo.extra.numPagesnumPagesLinux ์์คํ ์๋ง ํ์๋ฉ๋๋ค.
hostInfo.extra.maxOpenFiles์ด๋ฆฐ ํ์ผ ํธ๋ค์ ๋ํ ํ์ฌ ์์คํ ์ ํ์ ๋ณด๊ณ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ ์ ์์ฒด ๊ด๋ฆฌ ๋ฐฐํฌ์๋ฒ๋ฅผ ์ํ UNIX
ulimit์ค์ ์ ์ฐธ์กฐํ์ธ์.maxOpenFilesLinux ์์คํ ์๋ง ํ์๋ฉ๋๋ค.
hostInfo.extra.schedulerํ์ฑ I/O ์ค์ผ์ค๋ฌ๋ฅผ ๋ณด๊ณ ํฉ๋๋ค.
scheduler๋ OS X ์์คํ ์๋ง ํ์๋ฉ๋๋ค.