[KVM] Host swap ºÎÁ·¿¡ µû¸¥ Guest ÀÇ ¼º´ÉÀúÇÏ Çö»óÀ¸·Î ¹®Àǵ帳´Ï´Ù.

   Á¶È¸ 5013   Ãßõ 0    

안녕하세요.

CentOS7 KVM으로 구성된 Guest OS의 CPU 사용률 증가로 문의드립니다.

서버의 구성은 

Host : 128G Mem, 480G SSD * 2 (Raid 1), 480G SSD * 6 (Raid 5) 구성입니다.

Guest : Host의 딱 반씩 사용하고 있습니다.

OS 는 Raid1 에 설치, Raid5 에는 Data 영역으로 사용중입니다.

Swap 설정은 Host, Guest 각각 32G 입니다.

이때 Host의 Swap이 free 가 0 일 경우 Guest의 성능저하가 발생합니다. 이때 Host의 물리메모리는 여유가 있었고 swappiness=60 으로 설정되어 있습니다.

위와 같은 현상은 파악하여 Swap을 64G로 올려주니 동일 발생하지는 않았습니다. (물론 swappiness를 줄여주면 해결될지도 모르겠습니다)

그러나 왜 성능저하가 발생했는지를 모르겠습니다. 알고싶어요,.,.

혹시라도 이유를 알고 계신분이 계시면 도움 부탁드립니다.

감사합니다.

Dreaday 2022-03
Á¡À¯ °¡´É ¸Þ¸ð¸®°¡ ÀûÀ» ½Ã¿¡´Â ÀÚ¹ÙÀÇ °æ¿ì ÇÁ·Î±×·¥À» °­Á¦ Á¾·á½ÃÅ°°í, Ÿ ÇÁ·Î±×·¥µéÀÇ °æ¿ì DISK¸¦ ´ëüÇÏ¿© ¸Þ¸ð¸®¸¦ ²ø¾î´Ù ¾²±â¿¡ ´À·ÁÁý´Ï´Ù .

ÀÚ¼¼ÇÑ ¼³¸íÀº SWAP ¸Þ¸ð¸® °Ë»öÇÏ½Ã¸é ¸¹ÀºÀÚ·áµéÀÌ ÀÖÀ¸´Ï Âü°í ÇÏ½Ã¸é µÉ °Í °°½À´Ï´Ù.

https://mozi.tistory.com/424
     
¾Ë·ÁÁֽŠÆ÷½ºÆ®´Â ÀÌ¹Ì º» ¹®¼­Àä.
GuestÀÇ swap°ú ¸Þ¸ð¸®´Â ÃæºÐÈ÷ ¿©À¯°¡ ÀÖ´Â »óÅÂÀε¥µµ ºÒ±¸ÇÏ°í
Guest°¡ Host swapÀÇ ¿µÇâÀ» ¹Þ¾Æ¼­ ±Ã±ÝÇÕ´Ï´Ù.
          
±¸Â÷´Ï 2022-03
host 128G
guest 64G * 2vm À̶ó°í Çϸé
host ¿¡¼­ OS°¡ Á¡À¯ÇÏ°í ÆÄÀÏ Ä³½Ì µîÀ¸·Î ÀÎÇؼ­ ½ÇÁ¦ guest¿¡ ÇÒ´ç °¡´ÉÇÑ ¸Þ¸ð¸®´Â ¸¹¾Æ¾ß 60G Á¤µµ µÇÁö ¾ÊÀ»±î »ý°¢µË´Ï´Ù.

¾Æ¹«Æ° host ¿¡¼­´Â ÀÚ±â ÀÚ½ÅÀÌ ½á¾ß ÇÒ ¸Þ¸ð¸® + guest ¿¡¼­ ¿¹¾àÇÒ ¸Þ¸ð¸® Çϸé
¹°¸® ¸Þ¸ð¸® º¸´Ù ¸¹Àº ¸Þ¸ð¸®¸¦ »ç¿ëÇØ¾ß Çϱ⠶§¹®¿¡ ÇÊ¿¬ÀûÀ¸·Î ½º¿ÒÀÌ ¹ß»ýÇÏ°Ô µÇ°í
±×·Î ÀÎÇØ ¼º´É ÀúÇÏ°¡ »ý±æ °ÍÀ¸·Î »ý°¢µË´Ï´Ù.
²¿¼Ò 2023-02
¿À·¡Àü ±ÛÀÌÁö¸¸ Ȥ½Ã³ª µµ¿ò µÇ´Â ºÐÀÌ ÀÖÀ»±î ÇÏ¿© ±ÛÀ» ³²±é´Ï´Ù.
swapÀ¸·Î À̵¿µÇ´Â ¸Þ¸ð¸® ¿µ¿ªÀº Inactive(Anon)ÀÔ´Ï´Ù. file systemÀÇ cache¸¦ Á¦¿ÜÇÑ ÇÁ·Î¼¼½ºÀÇ ÃÖ±Ù ÂüÁ¶µÇÁö ¾ÊÀº ¸Þ¸ð¸®°¡ ÀϹÝÀûÀ¸·Î Inactive(Anon)ÀÌ°í, qemu ÇÁ·Î¼¼½ºÀÇ ¸Þ¸ð¸® ¶ÇÇÑ ÀÌ ´ë»óÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù.
»ç¼öÁö¸ù ´Ô ¸»¾¸´ë·Î swap free ¿ë·®ÀÌ 0ÀÌ µÇ¸é, kernelÀÌ ¸Þ¸ð¸® ÇÒ´ç ¿äûÀ» ¹Þ°Ô µÇ¸é ¸Þ¸ð¸® ÇÒ´ç ¿äûÀ» °ÅºÎÇÒ ¼ö ¾ø±â¿¡ memory free, cache ¶Ç´Â swapÀ» °Ë»öÇÑ µÚ trade off¸¦ °ÅÃÄ ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏ°Ô µË´Ï´Ù. OSÀÇ ´ëºÎºÐÀÇ µ¿ÀÛÀº ¸Þ¸ð¸® ÇÒ´ç°ú I/O ó¸®Àε¥, I/O 󸮿¡ ½Ã°£ÀÌ ¸¹ÀÌ °É¸®¹Ç·Î °¡±ÞÀû ¸Þ¸ð¸®¿¡¼­ ¸ðµç °ÍÀ» ó¸®ÇÏ·Á°í ÇÕ´Ï´Ù. ½Ã½ºÅÛÀÇ ¼Óµµ ¶ÇÇÑ ¸Þ¸ð¸® º¹»ç ¼Óµµ°¡ ´ëº¯ÇÑ´Ù°í ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·±µ¥ swap free±îÁö ¸ðµç ¸Þ¸ð¸®¸¦ ´Ù »ç¿ëÇÏ¿´´Ù°í ÇÑ´Ù¸é, cache±îÁö ¼ÒÁøÇϱâ À§ÇØ flush¸¦ ½ÃµµÇÒ °ÍÀÌ°í,  ¸¸¾à flushÇÒ cache±îÁö ´Ù ¼ÒÁøÇÏ¿´´Ù¸é file systemÀº diskÀÇ read¿Í ¸Þ¸ð¸® ¿äûÀ», KVM°ú ±âŸ ÇÁ·Î¼¼½ºµéÀº ¸Þ¸ð¸® ÇÒ´ç ¿äûÀ» kernel·Î ÇÏ°Ô µË´Ï´Ù. I/OÀÇ ¼Óµµ´Â ¸Þ¸ð¸®º¸´Ù ¸Å¿ì ´À¸®¸ç, I/O´Â blockingÀ» ÇÒ È®·üÀÌ ³ô¾ÆÁö¹Ç·Î ¸¸¾à ÀÌ·± »óȲÀÌ µÇ¸é ½Ã½ºÅÛÀÇ Ã³¸® ¼Óµµ´Â disk I/O ¼Óµµ¿¡ °ÅÀÇ ¹ÌÄ¡°Ô µË´Ï´Ù. ÀÌ·± Çö»óÀÌ °è¼ÓµÇ¸é¼­ Á¤¸» ÇÒ´çÇÒ ¸Þ¸ð¸®°¡ ´õ ÀÌ»ó Á¸ÀçÇÏÁö ¾ÊÀ» °æ¿ì kernelÀº ½Ã OOMÀ» ½ÃµµÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ »ç¼öÁö¸ù ´Ô ½Ã½ºÅÛÀº ±× Á¤µµ±îÁö °£ °Í °°Áö´Â ¾Ê½À´Ï´Ù. ¾ÆÁ÷ cache ¸Þ¸ð¸®°¡ ³²¾Æ À־ ±×·± °ÍÀÏÁöµµ ¸ð¸£°Ú½À´Ï´Ù.
Àû¾îµµ VMÀÇ ¼º´É ÀúÇϸ¦ ¸·°í ½Í´Ù¸é VMÀ» À§ÇØ hugepage·Î °­Á¦ ÇÒ´çÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù. VM ½ÇÇà ½Ã ¸Þ¸ð¸®°¡ ÇÒ´çµÇ´Â °ÍÀÌ ¾Æ´Ï³Ä°í ¹Ý¹®ÇÏ½Ç ¼ö ÀÖÀ¸³ª, ¸Þ¸ð¸®°¡ ÇÒ´çµÇ´Â °ÍÀº °¡»ó ¸Þ¸ð¸®ÀÌÁö ½ÇÁ¦ ¹°¸® ¸Þ¸ð¸®°¡ ¾Æ´Õ´Ï´Ù. mappingÀÌ ÀϾÁöµµ ¾Ê¾Ò°í, qemu ¶ÇÇÑ ÇÁ·Î¼¼½ºÀ̱⠶§¹®¿¡ swap ´ë»óÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù. VMÀÌ »ç¿ëÇÏ´Â ¸Þ¸ð¸®°¡ swapÀÌ µÈ´Ù¸é ¾È ±×·¡µµ VM kernel¿¡¼­ mappingÀ» ó¸®Çϱâ À§ÇØ ´Ù¼öÀÇ stepÀÌ °É¸®´Â °ÍÀ» swap page-inÀ¸·Î ÀÎÇØ I/O ¼Óµµ¸¸Å­À̳ª ±â´Ù·Á¾ß ÇÒ °ÍÀÔ´Ï´Ù. VMÀÌ »ç¿ëÇÏÁö ¾ÊÀº ¸Þ¸ð¸® °ø°£ÀÌ ¾Æ½¬¿ïÁö ¸ð¸£°ÚÁö¸¸ Àû¾îµµ VMÀº º°µµÀÇ °ø°£¿¡¼­ Á¤»óÀûÀ¸·Î µ¿ÀÛÇϱâ À§Çؼ­´Â hugepage·Î ¸Þ¸ð¸® ¿µ¿ªÀ» È®º¸ÇØ Áֽô °ÍÀÌ ÁÁ½À´Ï´Ù.
Ãß°¡ÀûÀ¸·Î swapÀÇ ¿¹¹æÀ» À§ÇØ min_free_kbytes °ªÀ» ´Ã·ÁÁֽðí, vfs_cache_pressure °ªÀ» 100 ÀÌ»ó ´Ã·Á cacheÀÇ flush¸¦ Á» ´õ À¯µµÇØ ÁÖ½Ã±â  ¹Ù¶ø´Ï´Ù.  ½Ã½ºÅÛ¿¡¼­ swap »ç¿ëÀº ¸Þ¸ð¸® ¾Ð¹ÚÀ¸·Î ¹Û¿¡ º¼ ¼ö ¾ø½À´Ï´Ù. swap »ç¿ëÀ¸·Î ¼º´É ÀúÇÏ°¡ ¹ß»ýÇÑ´Ù¸é ±× ½Ã½ºÅÛÀº Áö¼ÓÀûÀÎ swap »ç¿ë¿¡ ¿µÇâ¹ÞÀ» ¼ö¹Û¿¡ ¾øÀ» °ÍÀÔ´Ï´Ù. ¸¸¾à, ÀÌ·¸°Ô Á¶Á¤ ÈÄ¿¡µµ swap »ç¿ëÀÌ ÀÖÀ» °æ¿ì ¸Þ¸ð¸® È®ÀåÀ» ±ÇÇص帳´Ï´Ù.
     
´Ê°Ô ¹ß°ßÇßÁö¸¸ Á¤¸» ±â¼úÀûÀÎ ºÐ¼®À̽ʴϴÙ.
ÀÌ ±Û º¸°í ¹Ù·Î hugepages ¸¦ »ç¿ëÅä·Ï º¯°æÇß½À´Ï´Ù.
ÆäÀÌÁö »çÀÌÁî´Â 2M°¡ ÁÁÀ»±î¿ä? 1G°¡ ÁÁÀ»±î¿ä?
ÀÏ´Ü THP¸¦ »ç¿ëÇÏ°í ÀÖ½À´Ï´Ù. 2M ºí·°À¸·Î...
AnonHugepages °¡ Áõ°¡Çϴ°ŷΠºÁ¼± VM ÇÒ´ç½Ã
Àß Àû¿ëµÇ´Â°ÍÀ¸·Î º¸ÀÔ´Ï´Ù.
1G ºí·°À¸·Î »ç¿ëÇϸé ij½Ã ¹Ì½º, ¸Þ¸ð¸® ´©¼ö µîÀÇ
¹®Á¦¿Í ºÎÀûÀýÇÑ »óȲ¿¡¼­ ¿À¹öÇìµå°¡ Áõ°¡ÇÒ ¼ö Àֱ⿡
ÀÏ´ÜÀº ÀÌ·¸°Ô »ç¿ëÁßÀÔ´Ï´Ù.
          
²¿¼Ò 12-19
hugepage size´Â ¿øÇϽô ũ±â·Î »ç¿ëÇÏ½Ã¸é µÇ°Ú½À´Ï´Ù. 1 GiB¿Í 2MiBÀÇ Â÷ÀÌ´Â ¾ø½À´Ï´Ù.
VM¿¡ º¸Åë GiB ´ÜÀ§·Î ¸Þ¸ð¸®¸¦ ÇÒ´çÇϹǷΠ1 GiB ´ÜÀ§ »ç¿ëÀÌ ¹®Á¦ µÉ °Í °°Áö´Â ¾ÊÀ¸³ª, »ç¿ë»ó 2 MiB ´ÜÀ§°¡ À¯¿ëÇÏ½Ã´Ù¸é ¾î´À ÂÊÀ» »ç¿ëÇÏ½Ãµç °ü°è´Â ¾ø½À´Ï´Ù.

kswapd µ¿ÀÛÀ¸·Î ÀÎÇØ swap »ç¿ëÀÌ ´Ã¾î³ª°í ÀÖ´Ù¸é ¸Þ¸ð¸® ¾Ð¹ÚÀ¸·Î º¸½Ã¸é µÇ°Ú½À´Ï´Ù.
¸Þ¸ð¸® ¾Ð¹ÚÀÇ ¿øÀÎÀº ´Ù¾çÇϳª, free page list¿Í cacheÀÇ »ó°ü°ü°è¸¦ ÀÌÇØÇÏ°í °è½Å´Ù¸é ¾î´À ºÎºÐ¿¡¼­ ¾Ð¹ÚÀ» À¯¹ßÇÏ°í ÀÖ´ÂÁö ÆľÇÇÏ½Ç °Å¶ó »ý°¢ÇÕ´Ï´Ù.
Ȥ½Ã sys »ç¿ë·ü°ú ÇÔ²² ldavg °ªÀÌ »ó½ÂÇÑ´Ù¸é cache flush¸¦ À§ÇÑ scanÀÌ È°¹ßÇØ Áö´Â °ÍÀÌ´Ï free page È®º¸¸¦ À§ÇÑ min_free_kbytes °ªÀÌ ÀûÀýÇÑÁö °ËÅäÇØ º¸½Ã±æ ¹Ù¶ø´Ï´Ù.           

kernel ¹öÀü¿¡ µû¶ó swap »ç¿ë¿¡ ´ëÇÑ °üÁ¡ÀÌ ´Þ¶óÁö¸ç, cgroup »ç¿ë À¯¹«¿¡ µû¶ó¼­µµ swap À̽´ ¹ß»ýÀÌ ÀÖÀ» ¼ö ÀÖÀ¸´Ï °¡±ÞÀû ÃֽŠ¹öÀüÀ¸·Î ¾÷µ¥ÀÌÆ®ÇϽðí changelogÀÇ
³»¿ëÀ» È®ÀÎÇÑ µÚ sysctl Ç׸ñÀ» ¼³Á¤ÇϽñ⠹ٶø´Ï´Ù.
     
¶ÇÇÑ Æ¯Á¤ I/O (ÁÖ·Î µð½ºÅ©)¿¡¼­ kswapd0 ÇÁ·Î¼¼½º°¡
»ç¿ëµÇ´Â°Å·Î ºÁ¼± ½º¿Ò ¿µ¿ªÀÌ »ç¿ëÁßÀ¸·Î º¸À̴µ¥
¿Ö ±×·±Áö ±âº»ÀûÀÎ ÀÌÇØ´Â ÇÏ°íÀÖÁö¸¸ Ä¿³Î ¼³Á¤¿¡ ºñÇØ
³Ê¹« °úÇÑ »ç¿ëÀÌ µÇ´Â°Å·Î º¸À̱⿡ Á¦°¡ ³õÄ¡´Â ºÎºÐÀÌ
ÀÖ´ÂÁö ±Ã±ÝÇÕ´Ï´Ù.


Á¦¸ñPage 18/129
2015-12   1566980   ¹é¸Þ°¡
2014-05   5030447   Á¤ÀºÁØ1
2022-04   8172   ³ª¶ó»ç¶û
2022-04   8340   ÇÏ´ÃÀ§ÀÇÇÏ´Ã
2022-03   7132   ÅäÀ̽ºÅ丮
2022-03   5479   seoforce
2022-03   5178   ³ª¶ó»ç¶û
2022-03   4276   seoforce
2022-03   4114   seoforce
2022-03   4406   daphne
2022-03   5946   ÅäÀ̽ºÅ丮
2022-03   5968   dadami
2022-03   7422   ÇϾç±î¸Á
2022-03   6663   ¹üÀÌ´Ô
2022-03   7894   ´ó´óÀÌ
2022-03   5014   »ç¼öÁö¸ù
2022-03   4324   seoforce
2022-03   5179   ¹ÌÄ£°¨ÀÚ
2022-03   5057   ¹ÌÄ£°¨ÀÚ
2022-03   4063   ¹ÌÄ£°¨ÀÚ
2022-03   7206   FOXBI
2022-02   4461   ÁØ14