[¸®´ª½º ¼ÒÄÏ Á¢¼Ó Å×½ºÆ® º¸°í] ÀÛ¼º: ÀÌÈ«±â ÀÛ¼ºÀÏ: 2001³â 4¿ù 1ÀÏ ÃÖÁ¾ ¼öÁ¤ÀÏ: 2001³â 4¿ù 17ÀÏ ¹®¼­¹öÀü: 0.1.1 ---------------------------------------------------------------------------- 1. ȯ°æ CPU : Pentium III 450Mhz RAM : 256MB Linux kernel 2.4.2 #2 2. ¼­¹ö ¼³Á¤ redhet 7.0 default set 2.4.2 default kernel set (Fast Packet Socket enable: ÀÌ Å×½ºÆ®¿Í ¿¬°ü¾øÀ½) ¼­¹ö ½ÇÇàÀü ulimit -n 30000 ½ÇÇà. (as root) 2. Å×½ºÆ® client: several linux machines (¿©·¯ °÷¿¡¼­ ¼­¹ö °¡µ¿ÈÄ ½ÇÇà) simple tcp connection client bin: sock_client (connect °£ ÈÞÁö½Ã°£Àº 0.005ÃÊ) $ ulimit -n 30000 <= À̰ÍÀº ¼±ÅûçÇ×ÀÌ´Ù. $ ./sock_client 7000 <= ÀÌ°Í ¶ÇÇÑ ¼±ÅûçÇ×ÀÌ´Ù. ** ¸ðµÎ ÇÕÃÄ 10000°³ ÀÌ»óÀÇ Å¬¶óÀÌ¾ðÆ® ¿¬°áÀ» ¸¸Á·½Ã۵µ·Ï ÇßÀ½. server: simple tcp accept server bin: sock_server (backlog´Â 250.. Á¢¼Ó½Ã¿¡ º°´Ù¸¥ ¹®Á¦´Â ¾ø¾ú´Ù.) $ ulimit -n 30000 $ ./sock_server ...... (system X/KDE used/killed and some-file-open exausted status) 6432 client connected ...... (system restart and re-test) 7932 client connected 3. °á·Ð ÇöÀç linux kernel 2.4.2¿¡¼­´Â ulimit ¸í·ÉÀ¸·Î Ä¿³Î ¼öÁ¤ ¾øÀ̵µ ±âº»ÀûÀ¸·Î max open files °³¼ö¸¦ º¯°æÇÔÀ¸·Î½á ¼ÒÄÏ °³¼ö¸¦ Á¤ÇÒ ¼ö ÀÖ´Ù. Socket Connection ÀÚü´Â ¸Þ¸ð¸® °ø°£À» °ÅÀÇ ¿ä±¸ÇÏÁö ¾ÊÀ¸¸ç »ý¼º¿¡ ÀÇÇÑ cpu loadµµ ¾ø´Ù. ÇöÀç»óÅ·Π6000-7000°³ÀÇ socket Á¢¼ÓÀ» ¼­¹ö¿¡¼­ ¹Þ¾Æ³»¾ú´Ù. ±× ÀÌ»óÀ» tryÇϸé error°¡ ¹ß»ýÇÑ´Ù. ÀÌ¿¡ ´ëÇÑ tuningÀº Á»´õ ÇØº¸¸é 10000°³±îÁöµµ µÇ°ÚÂ 6000°³ Á¤µµ¶ó¸é ¼­ºñ½º½Ã¿£ ¹«³­Çϸ®¶ó º»´Ù. µû¶ó¼­, 6000°³ÀÇ Á¢¼ÓÀº 6000°³ÀÇ ¼ÒÄÏÁ¢¼ÓÀÌ ¹®Á¦°¡ ¾Æ´Ï¶ó. ¿¬°á´ç ¼ÒÀ¯µÇ´Â Ŭ¶óÀÌ¾ðÆ® ¸Þ¸ð¸® °ø°£ÀÇ °³¼ö *6000À̱⠶§¹®¿¡ RAMÀÇ °ø°£ÀÌ ¾î´ÀÁ¤µµ ÇÊ¿äÇÑ °ÍÀÎÁö ¿¹ÃøÇØ¾ß Çϸç, ¼­¹öÀÇ ±¸Çö ¹æ½Ä ¿¡ µû¶ó, 1 process (or 1 thread) 1 client ¶ó¸é, »ý¼º ¹× ¸Þ¸ð¸® »ç¿ëÀÇ overhead·Î ÀÎÇØ 6000°³¸¦ Á¢¼ÓÀ» ¹Þ¾Æ³»±â À§ÇØ °í»ç¾çÀÇ ½Ã½º ÅÛ¿¡ ´ëÇÑ Çϵå¿þ¾îÀûÀÎ ÅõÀÚ°¡ ºÒ°¡ÇÇÇÏ´Ù. 6000°³ ÀÌ»óÀÇ Á¢¼ÓÀ» ¾î¶»°Ô ó¸®ÇÏ´À³Ä¿¡ ´ëÇÑ °ÍÀº ¾ÕÀ¸·ÎÀÇ ¼÷Á¦ÀÌ´Ù. *7000°³ Á¤µµ¿¡¼­ socket Á¢¼ÓÀÌ ¾ÈµÇ´Â ÀÌÀ¯´Â /proc/sys/kernel¿¡ ÀÖ´Â file-max¿Í file-nrÀÌ 8000¿©°³·Î µÇ¾î Àֱ⠶§¹®ÀÌ´Ù. ÃÖÀûÈ­¸¦ À§Çؼ± inode°³¼öµµ Àû´çÈ÷ ¹Ù²Ù¾îÁà¾ßÇÑ´Ù. À̸¦ ¹Ù²Ù¸é ¿øÇÏ´Â ¸¸Å­(eg, 10000°³ÀÌ»ó) ¾òÀ» ¼ö ÀÖ´Ù.