Docs Menu

FAQ: ์ž์ฒด ๊ด€๋ฆฌํ˜• MongoDB ์ง„๋‹จ

์ด ๋ฌธ์„œ์—์„œ๋Š” ์ผ๋ฐ˜์ ์ธ ์ง„๋‹จ ์งˆ๋ฌธ๊ณผ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์›ํ•˜๋Š” ๋‹ต๋ณ€์„ ์ฐพ์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ FAQ์˜ ์ „์ฒด ๋ชฉ๋ก์„ ํ™•์ธํ•˜๊ฑฐ๋‚˜ MongoDB Community์— ์งˆ๋ฌธ์„ ๊ฒŒ์‹œํ•˜์„ธ์š”.

mongod๊ฐ€ UNIX ๋˜๋Š” UNIX ๊ธฐ๋ฐ˜ ํ”Œ๋žซํผ์—์„œ ์˜ˆ๊ธฐ์น˜ ์•Š๊ฒŒ ์ข…๋ฃŒ๋˜๊ณ  mongod๊ฐ€ ์ข…๋ฃŒ ๋˜๋Š” ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ๊ธฐ๋กํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ ์‹œ์Šคํ…œ ๋กœ๊ทธ์—์„œ MongoDB์™€ ๊ด€๋ จ๋œ ๋ฉ”์‹œ์ง€๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, /var/log/messages์— ์žˆ๋Š” ๋กœ๊ทธ์˜ ๊ฒฝ์šฐ ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

sudo grep mongod /var/log/messages
sudo grep score /var/log/messages

ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„ ๋˜๋Š” ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ ๋˜๋Š” ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ๋ฉค๋ฒ„ ๊ฐ„ ํ†ต์‹ ์—์„œ ๋„คํŠธ์›Œํฌ ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋˜๋Š” ์†Œ์ผ“ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ, ์˜ํ–ฅ์„ ๋ฐ›๋Š” ์‹œ์Šคํ…œ์˜ TCP ํ‚ต์–ผ๋ผ์ด๋ธŒ ๊ฐ’์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ์šด์˜ ์ฒด์ œ์—์„œ๋Š” ์ด ๊ฐ’์„ ๊ธฐ๋ณธ์ ์œผ๋กœ 7200์ดˆ(2์‹œ๊ฐ„)๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. MongoDB์˜ ๊ฒฝ์šฐ ์ผ๋ฐ˜์ ์œผ๋กœ ํ‚ต์–ผ๋ผ์ด๋ธŒ ๊ฐ’์ด 120์ดˆ (2๋ถ„) ์ •๋„๋กœ ์งง์„์ˆ˜๋ก ๋” ๋‚˜์€ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฝํ—˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

MongoDB deployment์—์„œ ํ‚ต์–ผ๋ผ์ด๋ธŒ ๊ด€๋ จ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ, ์˜ํ–ฅ์„ ๋ฐ›๋Š” ๋ชจ๋“  ์‹œ์Šคํ…œ์—์„œ ํ‚ต์–ผ๋ผ์ด๋ธŒ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” mongod ๋˜๋Š” mongos ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ชจ๋“  ๋จธ์‹ ๊ณผ MongoDB์— ์—ฐ๊ฒฐํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ์„ธ์Šค๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ๋ชจ๋“  ๋จธ์‹ ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

  • 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์—์„œ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

  • macOS์—์„œ ํ‚ต์–ผ๋ผ์ด๋ธŒ ์„ค์ •์„ ๋ณด๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    sysctl net.inet.tcp.keepidle

    ๊ฐ’์€ ๋ฐ€๋ฆฌ์ดˆ ๋‹จ์œ„๋กœ ์ธก์ •๋ฉ๋‹ˆ๋‹ค.


  • net.inet.tcp.keepidle ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ€๋ฆฌ์ดˆ ๋‹จ์œ„๋กœ <value> ๋ฅผ ์ œ๊ณตํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

    sudo sysctl net.inet.tcp.keepidle=<value>

    ์ด ์ž‘์—…์€ ์‹œ์Šคํ…œ ์žฌ๋ถ€ํŒ… ์‹œ ์ง€์†๋˜์ง€ ์•Š์œผ๋ฉฐ, ์‹œ์Šคํ…œ ์žฌ๋ถ€ํŒ… ์‹œ๋งˆ๋‹ค ์„ค์ •ํ•˜๋‹ค ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’์„ ์˜๊ตฌ์ ์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ง€์นจ์€ ์šด์˜ ์ฒด์ œ ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. 600000 ๋ฐ€๋ฆฌ์ดˆ(10 ๋ถ„) ์ด์ƒ์˜ ํ‚ต์–ผ๋ผ์ด๋ธŒ ๊ฐ’์€ mongod ๋ฐ mongos ์—์„œ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

    ์ฐธ๊ณ 

    macOS 10.15 ์˜ ๊ฒฝ์šฐ Catalina, Apple์—์„œ๋Š” ๋” ์ด์ƒ net.inet.tcp.keepidle ์˜ต์…˜ ๊ตฌ์„ฑ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์‹œ์Šคํ…œ ์ „์ฒด์— ์ƒˆ ํ‚ต์–ผ๋ผ์ด๋ธŒ ์„ค์ •์„ ์ ์šฉํ•˜๋ ค๋ฉด mongod ๋ฐ mongos ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„ ๋˜๋Š” ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ ๋˜๋Š” ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ๋ฉค๋ฒ„ ๊ฐ„์— ๋„คํŠธ์›Œํฌ ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋˜๋Š” ์†Œ์ผ“ ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ๊ธด ์ค‘๋‹จ(2๋ถ„ ์ด์ƒ ์ค‘๋‹จ)์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ์˜ํ–ฅ์„ ๋ฐ›๋Š” ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด tcp_retries2 ๊ฐ’์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ Linux ์šด์˜ ์ฒด์ œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด ๊ฐ’์„ 15์œผ๋กœ, Windows๋Š” 5๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. MongoDB์˜ ๊ฒฝ์šฐ 5(12์ดˆ) ์ดํ•˜ ์ •๋„์˜ ๋‚ฎ์€ tcp_retries2 ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋ฉด ๋” ๋‚˜์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

MongoDB deployment์—์„œ TCP ์žฌ์ „์†ก ์‹œ๊ฐ„ ์ดˆ๊ณผ ๊ด€๋ จ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ์˜ํ–ฅ์„ ๋ฐ›๋Š” ๋ชจ๋“  ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด tcp_retries2 ๊ฐ’(Windows์˜ ๊ฒฝ์šฐ TcpMaxDataRetransmission)์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” mongod ๋˜๋Š” mongos ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ชจ๋“  ๋จธ์‹ ๊ณผ MongoDB์— ์—ฐ๊ฒฐํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ์„ธ์Šค๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ๋ชจ๋“  ๋จธ์‹ ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ Linux ์šด์˜ ์ฒด์ œ์—์„œ๋Š” net.ipv4.tcp_retries2 sysctl ์„ค์ •์„ ์กฐ์ •ํ•˜์—ฌ TCP ์žฌ์ „์†ก์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

์„ค์ • ์ด๋ฆ„์—๋Š” ipv4์ด(๊ฐ€) ํฌํ•จ๋˜์–ด ์žˆ์ง€๋งŒ tcp_retries2 ์„ค์ •์€ IPv4 ๋ฐ IPv6 ๋ชจ๋‘์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • ํ˜„์žฌ ์„ค์ •์„ ๋ณด๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด sysctl ๋ช…๋ น์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    sysctl net.ipv4.tcp_retries2
    net.ipv4.tcp_retries = 15
  • ๋Ÿฐํƒ€์ž„์—์„œ์˜ tcp_retries2 ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด sysctl ๋ช…๋ น์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    sysctl -w net.ipv4.tcp_retries2=8
  • ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์˜๊ตฌ์ ์œผ๋กœ ์ ์šฉํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

    1. ์›ํ•˜๋Š” ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ์—์„œ /etc/sysctl.conf์„ ์—ฝ๋‹ˆ๋‹ค.

      vi /etc/sysctl.conf
    2. ๋‹ค์Œ๊ณผ ๊ฐ™์ด net.ipv4.tcp_retries2 ์„ค์ •์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

      net.ipv4.tcp_retries2 = 8
    3. ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

    ์ด์ œ ์‹œ์Šคํ…œ์—์„œ ์ƒˆ tcp_retries2 ์„ค์ •์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Windows์—์„œ๋Š” TcpMaxDataRetransmissions ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์กฐ์ •ํ•˜์—ฌ TCP ์žฌ์ „์†ก์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.

  • Windows ์—์„œ TcpMaxDataRetransmissions ์„ค์ •์„ ๋ณด๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    reg query HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v TcpMaxDataRetransmissions

    ๊ธฐ๋ณธ์ ์œผ๋กœ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์„ค์ •๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐ’์ด ์—†๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ๋˜๋Š” ์‹œ์Šคํ…œ ๊ธฐ๋ณธ๊ฐ’์€ 5 ๋ฒˆ ์žฌ์‹œ๋„์ž…๋‹ˆ๋‹ค.

  • TcpMaxDataRetransmissions ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ๊ด€๋ฆฌ์ž Command Prompt ์—์„œ ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ์—ฌ๊ธฐ์„œ <value> ๋Š” ์ •์ˆ˜์ž…๋‹ˆ๋‹ค.

    reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\ /t REG_DWORD /v TcpMaxDataRetransmission /d <value>

MongoDB ๋กœ๊ทธ์— ๋งค์šฐ ๋งŽ์€ ์ˆ˜์˜ ์—ฐ๊ฒฐ ๋ฐ ์žฌ์—ฐ๊ฒฐ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๋ฉด ํด๋ผ์ด์–ธํŠธ๊ฐ€ MongoDB server์— ์ž์ฃผ ์—ฐ๊ฒฐํ•˜๊ณ  ์—ฐ๊ฒฐ์„ ๋Š๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Š” CGI์™€ ๊ฐ™์ด ์š”์ฒญ ํ’€๋ง์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ •์ƒ์ ์ธ ๋™์ž‘์ž…๋‹ˆ๋‹ค. FastCGI, Apache ๋ชจ๋“ˆ ๋˜๋Š” ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ์˜๊ตฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ๊ฒฐ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ค„์ด๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์—ฐ๊ฒฐ์ด ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค๋ฉด ๋Ÿฐํƒ€์ž„ quiet ์˜ต์…˜ ๋˜๋Š” ๋ช…๋ น์ค„ ์˜ต์…˜ --quiet์„(๋ฅผ) ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๊ทธ์—์„œ ์ด๋Ÿฌํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

MongoDB Cloud Manager ์™€ MongoDB Enterprise Advanced ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์˜จํ”„๋ ˆ๋ฏธ์Šค ์†”๋ฃจ์…˜ MongoDB Ops Manager ์—๋Š” ์‹คํ–‰ MongoDB ๋ฐฐํฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹œ๊ฐํ™” ๋ฐ ๊ฒฝ๊ณ ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง ๊ธฐ๋Šฅ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ MongoDB Cloud Manager ๋ฌธ์„œ ๋ฐ Ops Manager ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

ํƒ€์‚ฌ ๋„๊ตฌ์˜ ์ „์ฒด ๋ชฉ๋ก์€ ์ž์ฒด ๊ด€๋ฆฌํ˜• MongoDB ๋ฐฐํฌ ๋ชจ๋‹ˆํ„ฐ๋ง ์„ค๋ช…์„œ์˜ ์ผ๋ถ€๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

No.

์บ์‹œ์— ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•  ๊ณต๊ฐ„์ด ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ 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 ํ•„๋“œ์—๋Š” ์บ์‹œ ๋ฐ ์ œ๊ฑฐ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ๋“ค์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

...
"wiredTiger" : {
...
"cache" : {
"tracked dirty bytes in the cache" : <num>,
"bytes currently in the cache" : <num>,
"maximum bytes configured" : <num>,
"bytes read into cache" :<num>,
"bytes written from cache" : <num>,
"pages evicted by application threads" : <num>,
"checkpoint blocked page eviction" : <num>,
"unmodified pages evicted" : <num>,
"page split during eviction deepened the tree" : <num>,
"modified pages evicted" : <num>,
"pages selected for eviction unable to be evicted" : <num>,
"pages evicted because they exceeded the in-memory maximum" : <num>,,
"pages evicted because they had chains of deleted items" : <num>,
"failed eviction of pages that exceeded the in-memory maximum" : <num>,
"hazard pointer blocked page eviction" : <num>,
"internal pages evicted" : <num>,
"maximum page size at eviction" : <num>,
"eviction server candidate queue empty when topping up" : <num>,
"eviction server candidate queue not empty when topping up" : <num>,
"eviction server evicting pages" : <num>,
"eviction server populating queue, but not evicting pages" : <num>,
"eviction server unable to reach eviction goal" : <num>,
"pages split during eviction" : <num>,
"pages walked for eviction" : <num>,
"eviction worker thread evicting pages" : <num>,
"in-memory page splits" : <num>,
"percentage overhead" : <num>,
"tracked dirty pages in the cache" : <num>,
"pages currently held in the cache" : <num>,
"pages read into cache" : <num>,
"pages written from cache" : <num>,
},
...

wiredTiger.cache.bytes currently in the cache ๋ฐ wiredTiger.cache.tracked dirty bytes in the cache ๋“ฑ์˜ ์ผ๋ถ€ ํ‚ค ์บ์‹œ ๋ฐ ์ œ๊ฑฐ ํ†ต๊ณ„์— ๋Œ€ํ•œ ์„ค๋ช…์€ wiredTiger.cache๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์™€์ด์–ด๋“œํƒ€์ด๊ฑฐ ๋‚ด๋ถ€ ์บ์‹œ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜๋ ค๋ฉด storage.wiredTiger.engineConfig.cacheSizeGB ๋ฐ --wiredTigerCacheSizeGB๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. WiredTiger ๋‚ด๋ถ€ ์บ์‹œ ํฌ๊ธฐ๋ฅผ ๊ธฐ๋ณธ๊ฐ’ ์ด์ƒ์œผ๋กœ ๋Š˜๋ฆฌ์ง€ ๋งˆ์„ธ์š”.

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 ํ•„๋“œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์„ฑ๊ณต์ ์ธ ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ฐ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋‘ ๊ฐ€์ง€ ์š”์†Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ดํ›„์— ์ƒค๋“œ ํ‚ค๋Š” ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ํ™•์žฅ์„ฑ ๋ฐ ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ํ”ผํ•˜๋ ค๋ฉด ์ƒค๋“œ ํ‚ค ์„ ํƒ์„ ์‹ ์ค‘ํ•˜๊ฒŒ ๊ณ ๋ คํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์ฒด์ ์ธ ๋ฌธ์ œ์— ๋Œ€ํ•ด์„œ๋Š” ๊ณ„์† ์ฝ์–ด๋ณด์„ธ์š”.

์ƒค๋”ฉ์ด ๊ฐ€๋Šฅํ•˜๋ ค๋ฉด ํด๋Ÿฌ์Šคํ„ฐ์— ์ถฉ๋ถ„ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ƒค๋”ฉ์€ ๊ฐ ์ƒค๋“œ์˜ ์ฒญํฌ ์ˆ˜๊ฐ€ ๊ฑฐ์˜ ๊ฐ™์„ ๋•Œ๊นŒ์ง€ ์ƒค๋“œ ๊ฐ„์— ์ฒญํฌ๋ฅผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ์ฒญํฌ ํฌ๊ธฐ๋Š” 128MB์ž…๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ฒญํฌ ๋ถˆ๊ท ํ˜•์ด ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ž„๊ณ„๊ฐ’์„ ์ดˆ๊ณผํ•  ๋•Œ๊นŒ์ง€ MongoDB๋Š” ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์‹œ์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ๋™์ž‘์€ ํด๋Ÿฌ์Šคํ„ฐ ์ „์ฒด์˜ ์„ฑ๋Šฅ์„ ์ €ํ•˜์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๋ถˆํ•„์š”ํ•œ ์ฒญํฌ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

๋ฐฉ๊ธˆ ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋ฐฐํฌํ•œ ๊ฒฝ์šฐ, ์ƒค๋”ฉ์„ ํšจ๊ณผ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์„ ๋งŒํผ ์ถฉ๋ถ„ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”. 8๊ฐœ๋ณด๋‹ค ๋งŽ์€ 128MB ์ฒญํฌ๋ฅผ ์ƒ์„ฑํ•  ๋งŒํผ ๋ฐ์ดํ„ฐ๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋Š” ํ•˜๋‚˜์˜ ์ƒค๋“œ์— ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ์ฒญํฌ ํฌ๊ธฐ ์„ค์ •์„ ๋‚ฎ์ถ”๊ฑฐ๋‚˜ ํด๋Ÿฌ์Šคํ„ฐ์— ๋” ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜์„ธ์š”.

๊ด€๋ จ ๋ฌธ์ œ๋กœ, ์‹œ์Šคํ…œ์€ ์‚ฝ์ž… ๋˜๋Š” ์—…๋ฐ์ดํŠธ ์‹œ์—๋งŒ ์ฒญํฌ๋ฅผ ๋ถ„ํ• ํ•˜๋ฏ€๋กœ ์ƒค๋”ฉ์„ ๊ตฌ์„ฑํ•˜๊ณ  ์‚ฝ์ž… ๋ฐ ์—…๋ฐ์ดํŠธ ์ž‘์—…์„ ๊ณ„์† ์‹คํ–‰ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ฒญํฌ๊ฐ€ ์ƒ์„ฑ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๊ฑฐ๋‚˜ ๋˜๋Š”์ฒญํฌ๋ฅผ ์ˆ˜๋™์œผ๋กœ ๋ถ„ํ• ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ, ์ƒค๋“œ ํ‚ค์˜ ์นด๋””๋„๋ฆฌํ‹ฐ๊ฐ€ ๋‚ฎ์€ ๊ฒฝ์šฐ, MongoDB๊ฐ€ ๋ฐ์ดํ„ฐ ๊ฐ„์— ์ถฉ๋ถ„ํ•œ ๋ถ„ํ• ์„ ์ƒ์„ฑํ•˜์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฝ์šฐ์— ๋”ฐ๋ผ ๋‹จ์ผ ์ƒค๋“œ ๋˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ์˜ ํ•˜์œ„ ์ง‘ํ•ฉ์ด ํŠธ๋ž˜ํ”ฝ ๋ฐ ์›Œํฌ๋กœ๋“œ์˜ ๋ถˆ๊ท ํ˜•ํ•œ ๋ถ€๋ถ„์„ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ฑฐ์˜ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์ด๋Š” ์ƒค๋“œ ํ‚ค๊ฐ€ ์“ฐ๊ธฐ ํ™•์žฅ์„ ํšจ๊ณผ์ ์œผ๋กœ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์˜ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.

'ํ•ซ ์ฒญํฌ'๊ฐ€ ์žˆ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ํ•ด๋‹น ์ฒญํฌ์˜ ์ผ๋ถ€๋ฅผ ๋ถ„ํ• ํ•œ ํ›„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํŒจํ„ด์„ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค๋ฅธ ์ƒค๋“œ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปฌ๋ ‰์…˜์„ ๋‹ค์‹œ ์ƒค๋”ฉํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฉ๊ธˆ ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋ฐฐํฌํ•œ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹จ์ผ ์ƒค๋“œ์— ๋‚จ์•„ ์žˆ๋Š” ์ƒˆ ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•œ ๋ฌธ์ œ ํ•ด๊ฒฐ ์ œ์•ˆ์„ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

cluster๊ฐ€ ์ฒ˜์Œ์—๋Š” ๊ท ํ˜•์„ ์ด๋ฃจ์—ˆ์ง€๋งŒ, ๋‚˜์ค‘์— ๋ฐ์ดํ„ฐ ๋ถ„ํฌ๊ฐ€ ๊ณ ๋ฅด์ง€ ์•Š๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์›์ธ์„ ๊ณ ๋ คํ•˜์„ธ์š”.

  • ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์ƒ๋‹นํ•œ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•œ ๊ฒฝ์šฐ ์ƒค๋“œ ํ‚ค ๋ถ„์‚ฐ์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ƒค๋“œ ํ‚ค์˜ ์นด๋””๋„๋ฆฌํ‹ฐ๊ฐ€ ๋‚ฎ์•„์„œ MongoDB๊ฐ€ ์ฒญํฌ๋ฅผ ๋” ์ด์ƒ ๋ถ„ํ• ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

  • ๋ฐธ๋Ÿฐ์„œ๊ฐ€ ํด๋Ÿฌ์Šคํ„ฐ ์ „์ฒด์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์‚ฐํ•  ์ˆ˜ ์žˆ๋Š” ์†๋„๋ณด๋‹ค ๋น ๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ ์„ธํŠธ๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋“œ๋ฌธ ๊ฒฝ์šฐ์ด๋ฉฐ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์œ ๋กœ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

    • ๋ฐ์ดํ„ฐ ์ฆ๊ฐ€ ์†๋„๋ฅผ ๊ณ ๋ คํ•  ๋•Œ ๋ฐธ๋Ÿฐ์‹ฑ ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ์งง์Šต๋‹ˆ๋‹ค.

    • ์“ฐ๊ธฐ ์ž‘์—…์ด ๊ณ ๋ฅด๊ฒŒ ๋ถ„์‚ฐ๋˜์–ด ์žˆ์ง€ ์•Š์•„ ๋” ๋งŽ์€ ๋ฐ์ดํ„ฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ๋‹ค๋ฅธ ์ƒค๋“œ ํ‚ค๋ฅผ ์„ ํƒํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

    • ์ƒค๋“œ ๊ฐ„ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์ด ์ข‹์ง€ ์•Š์•„ ์ฒญํฌ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์™„๋ฃŒํ•˜๋Š” ๋ฐ ๋„ˆ๋ฌด ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ ๋ฐ ์ƒค๋“œ ๊ฐ„์˜ ์ƒํ˜ธ ์—ฐ๊ฒฐ์„ ์กฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ํด๋Ÿฌ์Šคํ„ฐ ๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ๊ฒฝ์šฐ ์˜ํ–ฅ์˜ ํŠน์„ฑ์— ๋”ฐ๋ผ ๋‹ค์Œ ์˜ต์…˜์„ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค.

  1. ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์œผ๋กœ ์ธํ•ด ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ๊ฐ„ํ—์ ์œผ๋กœ ์ค‘๋‹จ๋˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๋ฐธ๋Ÿฐ์‹ฑ ์‹œ๊ฐ„์„ ์ œํ•œํ•˜์—ฌ ํ”ผํฌ ์‹œ๊ฐ„๋Œ€์— ๋ฐธ๋Ÿฐ์‹ฑ ํ™œ๋™์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ์˜ ๋ฐธ๋Ÿฐ์Šค๊ฐ€ ๋‹ค์‹œ ๊นจ์ง€์ง€ ์•Š๋„๋ก ์ถฉ๋ถ„ํ•œ ์‹œ๊ฐ„์ด ๋‚จ์•„ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

  2. ๋ฐธ๋Ÿฐ์„œ๊ฐ€ ํ•ญ์ƒ ์ „์ฒด ํด๋Ÿฌ์Šคํ„ฐ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋  ๋•Œ๊นŒ์ง€ ์ฒญํฌ๋ฅผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋Š” ๊ฒฝ์šฐ:

์ƒค๋“œ ํ‚ค๋กœ ์ธํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ชจ๋“  ์“ฐ๊ธฐ๋ฅผ ๋‹จ์ผ ์ƒค๋“œ๋กœ ๋ณด๋‚ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ™œ๋™ ํŒจํ„ด์˜ ๊ฒฝ์šฐ ๋ฐธ๋Ÿฐ์„œ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ž‘์„ฑํ•œ ํ›„ ๋ฐ”๋กœ ๋Œ€๋ถ€๋ถ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋” ๋‚˜์€ ์“ฐ๊ธฐ ํ™•์žฅ์„ ์ œ๊ณตํ•˜๋Š” ๋‹ค๋ฅธ ์ƒค๋“œ ํ‚ค๋กœ ์ปฌ๋ ‰์…˜์„ ์žฌ์ƒค๋”ฉํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.