|
|
|
|
|
|
|
Ã¥³»¿ë |
|
[ÀÌ Ã¥¿¡¼ ´Ù·ç´Â ³»¿ëµé]
½Ã½ºÅÛ ±¸¼º Á¤º¸ È®ÀÎÇϱâ
top ¸í·ÉÀ¸·Î ÇÁ·Î¼¼½º Á¤º¸ È®ÀÎÇϱâ
Load Average·Î ½Ã½ºÅÛ ºÎÇÏ È®ÀÎÇϱâ
swap°ú ¸Þ¸ð¸® Áõ¼³ÀÇ ¿¬°ü °ü°è
NUMA ¾ÆÅ°ÅØó¿Í ¸Þ¸ð¸® °ü¸®
TCP Keepalive·Î Á¾´Ü °£ ¿¬°á À¯ÁöÇϱâ
TIME_WAIT ¼ÒÄÏÀÌ ¼ºñ½º¿¡ ¹ÌÄ¡´Â ¿µÇâ
[ÃßõÀÇ ±Û]
½Ç¹«¿¡¼ ±Ã±ÝÇØÇÏ´Â ³»¿ëÀ» ½±°Ô Á¤¸®ÇÑ Ã¥
½Ç¹«¿¡¼ Ç×»ó ±Ã±ÝÇßÁö¸¸ ã±â ¾î·Á¿î Á¤º¸¸¦ ½±°Ô Á¤¸®ÇØ Áִ åÀÔ´Ï´Ù. ±³°ú¼¿¡ ³ª¿À´Â ³»¿ëÀÌ ¾Æ´Ñ ½Ç¹«¸¦ ÇÏ¸é¼ Ã£¾Æ³½ ¹æ¹ýÀ̱⠶§¹®¿¡ ´õ¿í ¸¶À½¿¡ ¿Í´ê´Â °Í °°½À´Ï´Ù. ¶ÇÇÑ, ¹®Á¦ ÇØ°á ¹æ¹ýÀ» °°ÀÌ »ìÆ캸±â ¶§¹®¿¡ À̸¦ ÅëÇؼ µ¶ÀÚ ½º½º·Î ÀÚ½ÅÀÇ ¿ª·®À» °ÈÇÏ´Â µ¥ Å« µµ¿òÀÌ µÉ °ÍÀ¸·Î »ý°¢ÇÕ´Ï´Ù. ¸®´ª½º ½Ã½ºÅÛÀ» ¿î¿µÇÏ´Â ½Ã½ºÅÛ ¿£Áö´Ï¾î³ª µ¥ºê¿É½º(DevOps)¶ó¸é ÀÌ Á¤µµ ±íÀ̱îÁö ÀÌÇØÇÏ´Â °ÍÀ» ¸ñÇ¥·Î ÇßÀ» ¶§ Å« µµ¿òÀÌ µÉ °ÍÀÔ´Ï´Ù.
- °í¿ìÂù(Ä«Ä«¿À ÀÎÇÁ¶ó & µ¥ÀÌÅÍÇ÷§ÆûÆÀ ÆÀÀå)
´ë±Ô¸ð ¼ºñ½º¸¦ ½Ã½ºÅÛ ¿£Áö´Ï¾îÀÇ ½Ã°¢¿¡¼ º¸¿©Áִ å
½ÇÁ¦·Î ¼ºñ½ºÀÇ ¹®Á¦¸¦ Àß ÇØ°áÇϱâ À§Çؼ´Â µÎ SEÀÇ ½Ã°¢ÀÌ ÇÊ¿äÇÕ´Ï´Ù. º¸Åë ¼ºñ½º¸¦ °³¹ßÇÏ°í ¿î¿µÇÏ´Â ¼ÒÇÁÆ®¿þ¾î ¿£Áö´Ï¾îÀÇ ½Ã°¢°ú, ½Ã½ºÅÛÀûÀÎ ºÎºÐÀÇ ¿î¿µÀ» ´Ù·ç´Â ½Ã½ºÅÛ ¿£Áö´Ï¾îÀÇ ½Ã°¢ÀÔ´Ï´Ù. ¹®Á¦°¡ ¹ß»ýÇϸé ÄÚµåÀÇ À̽´¿¡ ÁýÁßÇÏ´Â ¼ÒÇÁÆ®¿þ¾î ¿£Áö´Ï¾î¿Í ´Þ¸® ½Ã½ºÅÛ ¿£Áö´Ï¾î´Â ½Ã½ºÅÛÀÇ ¼³Á¤ºÎÅÍ ³×Æ®¿öÅ© ȯ°æ µî, Äڵ尡 ¾Æ´Ñ ÇØ´ç ½Ã½ºÅÛ¿¡ ´ëÇÑ ½Ã°¢À¸·Î ¹®Á¦¿¡ Á¢±ÙÇÕ´Ï´Ù. ½ÇÁ¦ ¼ºñ½º¸¦ ¿î¿µÇÏ°Ô µÇ¸é µÎ °¡Áö Áß ¾î´À ÇϳªÀÇ ½Ã°¢ÀÌ ´ú Áß¿äÇÑ ÄÉÀ̽º´Â ¾ø½À´Ï´Ù. ´ë±Ô¸ð ¼ºñ½º¿¡¼ ½Ã½ºÅÛ ¿£Áö´Ï¾î´Â ¾î¶»°Ô »ç°íÇÏ´ÂÁö, ¾î¶² Á¤º¸¸¦ ºÁ¾ß ÇÏ´ÂÁö ¾Ë°í ½ÍÀ¸½Å ºÐµéÀº ²À Àо½Ã±æ ¹Ù¶ø´Ï´Ù.
- °´ë¸í(À¯µ¥¹Ì µ¥ÀÌÅÍ ¿£Áö´Ï¾î, ¿ÀǼҽº ÄÁÆ®¸®ºäÅÍ) |
|
¸ñÂ÷ |
|
1Àå ½Ã½ºÅÛ ±¸¼º Á¤º¸ È®ÀÎÇϱâ
1.1 Ä¿³Î Á¤º¸ È®ÀÎÇϱâ
1.2 CPU Á¤º¸ È®ÀÎÇϱâ
1.3 ¸Þ¸ð¸® Á¤º¸ È®ÀÎÇϱâ
1.4 µð½ºÅ© Á¤º¸ È®ÀÎÇϱâ
1.5 ³×Æ®¿öÅ© Á¤º¸ È®ÀÎÇϱâ
1.6 ¿ä¾à
2Àå topÀ» ÅëÇØ »ìÆ캸´Â ÇÁ·Î¼¼½º Á¤º¸µé
2.1 ½Ã½ºÅÛÀÇ »óÅ »ìÇDZâ
2.2 VIRT, RES, SHR ..?
2.3 VIRT¿Í RES ±×¸®°í Memory CommitÀÇ °³³ä
2.4 ÇÁ·Î¼¼½ºÀÇ »óÅ º¸±â
2.5 ÇÁ·Î¼¼½ºÀÇ ¿ì¼±¼øÀ§
2.6 ¿ä¾à
3Àå Load Average¿Í ½Ã½ºÅÛ ºÎÇÏ
3.1 Load AverageÀÇ Á¤ÀÇ
3.2 Load Average °è»ê °úÁ¤
3.3 CPU Bound vs I/O Bound
3.4 vmstatÀ¸·Î ºÎÇÏÀÇ Á¤Ã¼ È®ÀÎÇϱâ
3.5 Load Average°¡ ½Ã½ºÅÛ¿¡ ³¢Ä¡´Â ¿µÇâ
3.6 Case Study - OS ¹öÀü°ú Load Average
3.7 ¿ä¾à
4Àå free ¸í·ÉÀÌ ¼û±â°í ÀÖ´Â °Íµé
4.1 ¸Þ¸ð¸® »ç¿ë·® È®ÀÎÇϱâ
4.2 buffers¿Í cached ¿µ¿ª
4.3 /proc/meminfo Àбâ
4.4 slab ¸Þ¸ð¸® ¿µ¿ª
4.5 Case Study - Slab ¸Þ¸ð¸® ´©¼ö
4.6 ¿ä¾à
5Àå swap, ¸Þ¸ð¸® Áõ¼³ÀÇ Æ÷ÀÎÆ®
5.1 swap ¿µ¿ª
5.2 ¹öµð ½Ã½ºÅÛ
5.3 ¸Þ¸ð¸® ÀçÇÒ´ç °úÁ¤
5.4 vm.swappiness¿Í vm.vfs_cache_pressure
5.5 ¸Þ¸ð¸® Áõ¼³ÀÇ Æ÷ÀÎÆ®
5.6 Case Study - gdb¸¦ ÀÌ¿ëÇؼ ¸Þ¸ð¸® ´©¼ö Àâ±â
5.7 ¿ä¾à
6Àå NUMA, ¸Þ¸ð¸® °ü¸®ÀÇ »õ·Î¿î ¼¼°è
6.1 NUMA ¾ÆÅ°ÅØó
6.2 ¸®´ª½º¿¡¼ÀÇ NUMA È®ÀÎ
6.3 ¸Þ¸ð¸® ÇÒ´ç Á¤Ã¥º° Ư¡
6.4 numad¸¦ ÀÌ¿ëÇÑ ¸Þ¸ð¸® ÇÒ´ç °ü¸®
6.5 vm.zone_reclaim_mode Ä¿³Î ÆĶó¹ÌÅÍ
6.6 NUMA ¾ÆÅ°ÅØóÀÇ ¸Þ¸ð¸® ÇÒ´ç Á¤Ã¥°ú ¿öÅ©·Îµå
6.7 ¿ä¾à
7Àå TIME_WAIT ¼ÒÄÏÀÌ ¼ºñ½º¿¡ ¹ÌÄ¡´Â ¿µÇâ
7.1 TCP Åë½Å °úÁ¤
7.2 TIME_WAIT ¼ÒÄÏÀÇ ¹®Á¦Á¡
7.3 Ŭ¶óÀ̾ðÆ®¿¡¼ÀÇ TIME_WAIT
7.4 net.ipv4.tcp_tw_reuse
7.5 ConnectionPool ¹æ½Ä »ç¿ëÇϱâ
7.6 ¼¹ö ÀÔÀå¿¡¼ÀÇ TIME_WAIT ¼ÒÄÏ
7.7 net.ipv4.tcp_tw_recycle
7.8 keepalive »ç¿ëÇϱâ
7.9 TIME_WAIT »óÅÂÀÇ Á¸Àç ÀÌÀ¯
7.10 Case Study - nginx upstream¿¡¼ ¹ß»ýÇÏ´Â TIME_WAIT
7.11 ¿ä¾à
8Àå TCP Keepalive¸¦ ÀÌ¿ëÇÑ ¼¼¼Ç À¯Áö
8.1 TCP Keepalive¶õ
8.2 TCP KeepaliveÀÇ ÆĶó¹ÌÅ͵é
8.3 TCP Keepalive¿Í Á»ºñ Ä¿³Ø¼Ç
8.4 TCP Keepalive¿Í HTTP Keepalive
8.5 Case Study - MQ ¼¹ö¿Í ·Îµå ¹ë·±¼
8.6 ¿ä¾à
9Àå TCP ÀçÀü¼Û°ú ŸÀӾƿô
9.1 TCP ÀçÀü¼Û°ú RTO
9.2 ÀçÀü¼ÛÀ» °áÁ¤ÇÏ´Â Ä¿³Î ÆĶó¹ÌÅÍ
9.3 ÀçÀü¼Û ÃßÀûÇϱâ
9.4 RTO_MIN °ª º¯°æÇϱâ
9.5 ¾ÖÇø®ÄÉÀÌ¼Ç Å¸ÀӾƿô
9.6 ¿ä¾à
10Àå dirty page°¡ I/O¿¡ ³¢Ä¡´Â ¿µÇâ
10.1 dirty page¶õ
10.2 dirty page °ü·Ã Ä¿³Î ÆĶó¹ÌÅÍ
10.3 ¹é±×¶ó¿îµå µ¿±âÈ
10.4 dirty page ¼³Á¤°ú I/O ÆÐÅÏ
10.5 ¿ä¾à
11Àå I/O ÀÛ¾÷ÀÌ Áö³ª°¡´Â °ü¹®, I/O ½ºÄÉÁÙ·¯
11.1 I/O ½ºÄÉÁÙ·¯ÀÇ Çʿ伺
11.2 I/O ½ºÄÉÁÙ·¯ ¼³Á¤
11.3 cfq I/O ½ºÄÉÁÙ·¯
11.4 deadline I/O ½ºÄÉÁÙ·¯
11.5 noop I/O ½ºÄÉÁÙ·¯
11.6 cfq¿Í deadlineÀÇ ¼º´É Å×½ºÆ®
11.7 I/O ¿öÅ©·Îµå »ìÆ캸±â
11.8 ¿ä¾à
12Àå ¾ÖÇø®ÄÉÀÌ¼Ç ¼º´É ÃøÁ¤°ú Æ©´×
12.1 ¾ÖÇø®ÄÉÀÌ¼Ç ¸¸µé±â
12.2 ¼º´É Å×½ºÆ® ½ÃÀÛ
12.3 CPU ¼º´É ÃÖÀûÈÇϱâ
12.4. ³×Æ®¿öÅ© ¼ÒÄÏ ÃÖÀûÈÇϱâ
12.5 nginx¸¦ ÅëÇØ reverse proxy ¼³Á¤Çϱâ
12.6. ¿ä¾à
Appendix A Ä¿³Î µð¹ö±ëÀ» À§ÇÑ Ä¿³Î ÄÄÆÄÀÏ
A.1 Ä¿³Î ¼Ò½º ÄÄÆÄÀÏÇϱâ
A.2 printk() ÇÔ¼ö Ãß°¡Çϱâ
A.3 printk() ÇÔ¼ö·Î Load Average °è»ê °úÁ¤ »ìÆ캸±â
A.4 ¿ä¾à
Appendix B strace¸¦ ÅëÇÑ ¾ÖÇø®ÄÉÀÌ¼Ç ºÐ¼®
B.1 straceÀÇ ±âº» »ç¿ë¹ý
B.2 hostname ¸í·É ºÐ¼®Çϱâ
B.3 ¿ä¾à
Appendix C tcpdump¿Í ¿ÍÀ̾î»þÅ©¸¦ ÅëÇÑ TCP ÆÐŶ ºÐ¼®
C.1 tcpdumpÀÇ »ç¿ë¹ý
C.2 ¿ÍÀ̾î»þÅ© »ç¿ë¹ý
C.3 ¿ä¾à |
|
|
|
ÀúÀÚ
|
|
°Áø¿ì
±Û¾²±â¸¦ ÁÁ¾ÆÇÏ°í »õ·Î¿î ±â¼ú ÀÍÈ÷´Â °ÍÀ» ÁÁ¾ÆÇÏ´Â, ¾ÆÁ÷µµ °¥ ±æÀÌ ¸Õ ½Ã½ºÅÛ ¿£Áö´Ï¾î´Ù. NBP¸¦ °ÅÃÄ ÇöÀç´Â Ä«Ä«¿À¿¡¼ ½Ã½ºÅÛ ¿£Áö´Ï¾î·Î ±Ù¹«ÇÏ°í ÀÖ´Ù. ºê·±Ä¡¸¦ ÅëÇؼ »ç¶÷µé°ú Áö½Ä °øÀ¯ÇÏ´Â °ÍÀ» Áñ±ä´Ù. https://brunch.co.kr/@alden
|
|
|
|
|
|
|
|
Ãâ°í¾È³» |
|
|
Ãâ°í¶õ ÀÎÅÍÆÄÅ© ¹°·ùâ°í¿¡¼ µµ¼°¡ Æ÷ÀåµÇ¾î ³ª°¡´Â ½ÃÁ¡À» ¸»Çϸç, ½ÇÁ¦ °í°´´Ô²²¼ ¼ö·ÉÇϽô ½Ã°£Àº »óÇ°Áغñ¿Ï·áÇØ Ãâ°íÇÑ ³¯Â¥ + Åùè»ç ¹è¼ÛÀÏÀÔ´Ï´Ù. |
|
ÀÎÅÍÆÄÅ© µµ¼´Â ¸ðµç »óÇ°ÀÇ Àç°í°¡ ÃæÁ·ÇÒ ½Ã¿¡ ÀÏ°ý Ãâ°í¸¦ ÇÕ´Ï´Ù. |
|
ÀϺΠÀç°í¿¡ ´ëÇÑ Ãâ°í°¡ ÇÊ¿äÇÒ ½Ã¿¡´Â ´ã´çÀÚ¿¡°Ô Á÷Á¢ ¿¬¶ôÇϽðųª, °í°´¼¾ÅÍ(°í°´¼¾ÅÍ(1577-2555)·Î ¿¬¶ôÁֽñ⠹ٶø´Ï´Ù. |
|
¹è¼Ûºñ ¾È³» |
|
|
ÀÎÅÍÆÄÅ© µµ¼ ´ë·®±¸¸Å´Â ¹è¼Û·á°¡ ¹«·áÀÔ´Ï´Ù. |
|
´Ü, 1°³ÀÇ »óÇ°À» ´Ù¼öÀÇ ¹è¼ÛÁö·Î ÀÏ°ý ¹ß¼Û½Ã¿¡´Â 1°³ÀÇ ¹è¼ÛÁö´ç 2,000¿øÀÇ ¹è¼Ûºñ°¡ ºÎ°úµË´Ï´Ù. |
¾Ë¾ÆµÎ¼¼¿ä! |
|
|
°í°´´Ô²²¼ ÁÖ¹®ÇϽŠµµ¼¶óµµ µµ¸Å»ó ¹× ÃâÆÇ»ç »çÁ¤¿¡ µû¶ó Ç°Àý/ÀýÆÇ µîÀÇ »çÀ¯·Î Ãë¼ÒµÉ ¼ö ÀÖ½À´Ï´Ù. |
|
Åùè»ç ¹è¼ÛÀÏÀÎ ¼¿ï ¹× ¼öµµ±ÇÀº 1~2ÀÏ, Áö¹æÀº 2~3ÀÏ, µµ¼, »ê°£, ±ººÎ´ë´Â 3ÀÏ ÀÌ»óÀÇ ½Ã°£ÀÌ ¼Ò¿äµË´Ï´Ù.
(´Ü, Åä/ÀÏ¿äÀÏ Á¦¿Ü) |
|
|
|
|
ÀÎÅÍÆÄÅ©µµ¼´Â °í°´´ÔÀÇ ´Ü¼ø º¯½É¿¡ ÀÇÇÑ ±³È¯°ú ¹ÝÇ°¿¡ µå´Â ºñ¿ëÀº °í°´´ÔÀÌ ÁöºÒÄÉ µË´Ï´Ù.
´Ü, »óÇ°À̳ª ¼ºñ½º ÀÚüÀÇ ÇÏÀÚ·Î ÀÎÇÑ ±³È¯ ¹× ¹ÝÇ°Àº ¹«·á·Î ¹ÝÇ° µË´Ï´Ù.
±³È¯/¹ÝÇ°/º¸ÁõÁ¶°Ç ¹× Ç°Áúº¸Áõ ±âÁØÀº ¼ÒºñÀڱ⺻¹ý¿¡ µû¸¥ ¼ÒºñÀÚ ºÐÀï ÇØ°á ±âÁØ¿¡ µû¶ó ÇÇÇظ¦ º¸»ó ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù.
Á¤È®ÇÑ È¯ºÒ ¹æ¹ý ¹× ȯºÒÀÌ Áö¿¬µÉ °æ¿ì 1:1¹®ÀÇ °Ô½ÃÆÇ ¶Ç´Â °í°´¼¾ÅÍ(1577-2555)·Î ¿¬¶ô Áֽñ⠹ٶø´Ï´Ù.
¼ÒºñÀÚ ÇÇÇغ¸»óÀÇ ºÐÀïó¸® µî¿¡ °üÇÑ »çÇ×Àº ¼ÒºñÀÚºÐÀïÇØ°á±âÁØ(°øÁ¤°Å·¡À§¿øȸ °í½Ã)¿¡ µû¶ó ºñÇØ º¸»ó ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù.
|
±³È¯ ¹× ¹ÝÇ°ÀÌ °¡´ÉÇÑ °æ¿ì |
|
|
»óÇ°À» °ø±Þ ¹ÞÀ¸½Å ³¯·ÎºÎÅÍ 7ÀÏÀ̳» °¡´ÉÇÕ´Ï´Ù. |
|
°ø±Þ¹ÞÀ¸½Å »óÇ°ÀÇ ³»¿ëÀÌ Ç¥½Ã, ±¤°í ³»¿ë°ú ´Ù¸£°Å³ª ´Ù¸£°Ô ÀÌÇàµÈ °æ¿ì¿¡´Â °ø±Þ¹ÞÀº ³¯·ÎºÎÅÍ 3°³¿ùÀ̳», ±×»ç½ÇÀ» ¾Ë°Ô µÈ ³¯ ¶Ç´Â ¾Ë ¼ö ÀÖ¾ú´ø ³¯·ÎºÎÅÍ 30ÀÏÀ̳» °¡´ÉÇÕ´Ï´Ù. |
|
»óÇ°¿¡ ¾Æ¹«·± ÇÏÀÚ°¡ ¾ø´Â °æ¿ì ¼ÒºñÀÚÀÇ °í°´º¯½É¿¡ ÀÇÇÑ ±³È¯Àº »óÇ°ÀÇ Æ÷Àå»óÅ µîÀÌ ÀüÇô ¼Õ»óµÇÁö ¾ÊÀº °æ¿ì¿¡ ÇÑÇÏ¿© °¡´ÉÇÕ´Ï´Ù.
|
|
|
|
±³È¯ ¹× ¹ÝÇ°ÀÌ ºÒ°¡´ÉÇÑ °æ¿ì |
|
|
|
°í°´´ÔÀÇ Ã¥ÀÓ ÀÖ´Â »çÀ¯·Î »óÇ° µîÀÌ ¸ê½Ç ¶Ç´Â ÈÑ¼ÕµÈ °æ¿ì´Â ºÒ°¡´ÉÇÕ´Ï´Ù. (´Ü, »óÇ°ÀÇ ³»¿ëÀ» È®ÀÎÇϱâ À§ÇÏ¿© Æ÷Àå µîÀ» ÈѼÕÇÑ °æ¿ì´Â Á¦¿Ü) |
|
½Ã°£ÀÌ Áö³²¿¡ µû¶ó ÀçÆǸŰ¡ °ï¶õÇÒ Á¤µµ·Î ¹°Ç°ÀÇ °¡Ä¡°¡ ¶³¾îÁø °æ¿ì´Â ºÒ°¡´ÉÇÕ´Ï´Ù. |
|
Æ÷Àå °³ºÀµÇ¾î »óÇ° °¡Ä¡°¡ ÈÑ¼ÕµÈ °æ¿ì´Â ºÒ°¡´ÉÇÕ´Ï´Ù. |
|
|
´Ù¹è¼ÛÁöÀÇ °æ¿ì ¹ÝÇ° ȯºÒ |
|
|
|
´Ù¹è¼ÛÁöÀÇ °æ¿ì ´Ù¸¥ Áö¿ªÀÇ ¹ÝÇ°À» µ¿½Ã¿¡ ÁøÇàÇÒ ¼ö ¾ø½À´Ï´Ù. |
|
1°³ Áö¿ªÀÇ ¹ÝÇ°ÀÌ ¿Ï·áµÈ ÈÄ ´Ù¸¥ Áö¿ª ¹ÝÇ°À» ÁøÇàÇÒ ¼ö ÀÖÀ¸¹Ç·Î, ÀÌÁ¡ ¾çÇØÇØ Áֽñ⠹ٶø´Ï´Ù. |
|
|
|
|
|
|