ÇÑ ±¹ °ú ÇÐ ±â ¼ú ¿ø (KAIST)
¾ÆÆÄÄ¡ 2 ÃÖÀûÈ
À¥ ¼ºñ½ºÀÇ ¼º´É ÃÖÀûÈ´Â À¥¼¹ö¿¡¼ÀÇ Æ©´×°ú À¥ ºê¶ó¿ìÁ®, À¥ ÄÜÅÙÃ÷ ±×¸®°í ´Ù¸¥ ½Ã½ºÅÛ°úÀÇ °ü°è µîÀ» µ¿½Ã¿¡ ´Ù·ç¾î¾ß ÇÏÁö¸¸ ÀÚ¹Ù½ºÅ©¸³Æ®, À¥ ±×·¡ÇÈ, HTML, CSS µîÀÇ ÃÖÀûÈ¿¡ ´ëÇÑ °ÍÀº ÀÌ ±Û¿¡¼ Ãë±ÞÇÏÁö ¾Ê´Â´Ù. ÇÊÀÚ´Â http://www.websiteoptimization.com/ ¿¡¼ ±×·± Á¤º¸µéÀ» ¾òÀ»¼ö ÀÖ¾ú´Ù.
ÀÌ ±ÛÀº ¾ÆÆÄÄ¡ À¥ ¼¹öÀÇ ÃÖÀûÈ¿¡ ´ëÇØ¼¸¸ ´Ù·ç°í ÀÖÀ¸¹Ç·Î, ±× ¿ÜÀÇ ´Ù¸¥°Íµé°ú ÅëÇÕÇØ¼ À¥ ¼ºñ½º ¼º´É °³¼± ¹æ¾ÈÀ» ¸¶·ÃÇÏ´Â °ÍÀº ¿©·¯ºÐÀÇ ¸òÀÌ´Ù.
<ÇÊÀÚ¼Ò°³>
¼º¸í : ¹Ú¼º¼ö
¡°¸®´ª½ºÆ÷ÅС± www.superuser.co.kr ´ëÇ¥
Áß¼Ò±â¾÷¿¬¼ö¿ø °´¿ø±³¼ö
Çѱ¹Á¤º¸Åë½ÅÀη°³¹ß¼¾ÅÍ Àü¹®À§¿ø
--------------------------------------------------
1ȸ£ü2005. 7£ü¾ÆÆÄÄ¡ 2 ÃÖÀûÈ
--------------------------------------------------
ÇÊÀÚ¼Ò°³
ÇÊÀÚ´Â ÇöÀç±îÁö ¡°¸®´ª½ºÆ÷ÅС± www.superuser.co.krÀÇ ´ëÇ¥ ¿î¿µÀڷμ Ȱµ¿Çϰí ÀÖ°í ¾à 10³â°£ ¼¹ö°ü¸®¸¦ ÇØ¿ÔÀ¸¸ç, ±×¸®°í ¸®´ª½º ¼¹ö°ü·Ã Àü¹®¼ ÁýÇÊ ¹× ¸®´ª½º °ÀǸ¦ ÁÖ·Î ÇϰíÀÖ´Ù. ÇÊÀÚÀÇ °¡Àå Å« ²ÞÀÌÀÚ Èñ¸ÁÀ̶ó°í ÇÑ´Ù¸é ´ëÇѹα¹¿¡¼ ¸®´ª½º°¡ ¾Æ¹«·± Á¦¾à¾øÀÌ »ç¿ëµÇ¾îÁö´Â °ÍÀÌ´Ù. ÇöÀç´Â ÀÌ·± ¹®Á¦¿¡ °ü½ÉÀ» °¡Áö°í ³ª¸§´ë·Î Ȱµ¿Çϰí ÀÖ´Ù.
¹ß¹®
¼¹ö°ü¸® ¾÷¹«¿¡¼ °¡Àå Å« °ü½É°Å¸® µÎ°¡Áö¸¦ µé¶ó°í ÇÑ´Ù¸é ¾ÈÀüÇÑ ½Ã½ºÅÛ±¸ÇöÀ» À§ÇÑ º¸¾È¹®Á¦¿Í ¼º´É ÃÖÀûÈ ¹× Çâ»óÀ» À§ÇÑ Æ©´×¹®Á¦ÀÏ °ÍÀÌ´Ù. À̹ø°Á¿¡¼ ÇÊÀÚ´Â ÇöÀç À¥¼¹ö·Î½á °¡Àå ¸¹ÀÌ »ç¿ëµÇ°í ÀÖ´Â ¾ÆÆÄÄ¡ÀÇ ¼º´ÉÇâ»óÀ» À§ÇÑ Æ©´×¹æ¹ý¿¡ ´ëÇÏ¿© ½Ç¹«ÀûÀÎ Á¢±ÙÀ» ÇØº¸°íÀÚ ÇÑ´Ù. À̹ø °Á¿¡¼ ¾ð±ÞÇÏÁö ¾Æ´ÏÇÑ ¸¹Àº ºÎºÐÀÇ Æ©´×¹æ¹ý(¿¹: H/WÆ©´×, ¿î¿µÃ¼Á¦Æ©´×µî)µéÀÌ ÀÖ±â´Â ÇÏÁö¸¸ À̹ø °Á´ ¼ø¼öÇÏ°Ô ¾ÆÆÄÄ¡À¥¼¹ö ÀÚü¿¡ ´ëÇÑ Æ©´×ÀÓÀ» ¹àÇôµÐ´Ù.
ÇÊÀÚ´Â ¸®´ª½º ½Ã½ºÅÛ °ü¸®ÀÚÀÌ´Ù.
½Ã½ºÅÛ °ü¸®ÀÚ¶õ ¾î¶²ÀÏÀ» Çϴ°¡? ¼¹ö°¡ ¾ðÁ¦ ¾î¶»°Ô µÉÁö ¸ð¸£´Â »óȲ¿¡¼ ÀÚ±â½Ã°£ À̶ó´Â °³³äÀÌ ¾øÀ¸¸ç, ²÷ÀÓ¾øÀÌ ¹ß»ýÇÏ´Â Ãë¾à¼ºµé¿¡ ´ëÇÑ Á¡°Ë°ú ÆÐÄ¡, °í°´ÀÇ °¢Á¾ ¹®Á¦µé, ¼Õ½ÇµÈ µ¥ÀÌÅÍ º¹±¸ ¹®Á¦ µî ´Ã ±äÀå¼Ó¿¡¼ »ì¾Æ°¡¾ßÇÑ´Ù.
½Ã½ºÅÛ °ü¸®ÀÚ¶ó´Â Á÷¾÷ÀÌ ÀǹÌÇÏ´Â ¹Ù´Â ¿©±â¼ ±×Ä¡Áö ¾Ê´Â´Ù.
½Ã½ºÅÛ À¯Áöº¸¼ö, ¼º´É °ü¸®, °¡¿ë¼º °ü¸®, ¿ë·® °ü¸®, Àå¾Ö º¹±¸ µî ½Ã½ºÅÛ °ü¸®ÀÚ¶ó¸é ´ë°Ô ÀÌ Á¤µµÀÇ Ç׸ñµéÀ» °ü¸®ÇÏ°Ô µÈ´Ù. ´Ù¸¥ ºÐ¾ß ¿ª½Ã ¸¶Âù°¡Áö À̰ÚÁö¸¸ ½Ã½ºÅÛ °ü¸®ÀÚ¶ó´Â ¾÷¹«´Â ²÷ÀÓ¾ø´Â Àڱ⠰³¹ß°ú ³ë·ÂÀ» ¿ä±¸ÇÑ´Ù.
ÀÌ ±Û¿¡¼´Â ½Ã½ºÅÛ °ü¸®ÀÚÀÇ ÀÌ·± °³¹ß°ú ³ë·Â¿¡ µµ¿òÀÌ µÇ°íÀÚ ¸®´ª½º·Î ¿î¿µÇÏ´Â ¾ÆÆÄÄ¡ À¥¼¹öÀÇ ÃÖÀûÈ¿¡ °üÇØ¼ ´Ù·ç±â·Î ÇÑ´Ù.
¾ÆÆÄÄ¡ ¼º´É Å×½ºÆ® °èȹ
Å×½ºÆ® ȯ°æ
OS : Red Hat Enterprise Linux AS release 4 (Nahant)
Kernel Version : 2.6.9-5.ELsmp
CPU & Cache : 2 Xeon(TM) CPU 3.06GHz 3057MHz, 512 KB Cache
Memory :¡¡ 2G
Swap : 4G
Web server : Apache Http Server 2.0.52
Web test tool : ab, Httperf, flood
Å×½ºÆ® °èȹ
rpm ¼³Ä¡ÈÄ ±âº» »óÅ¿¡¼ ¼³Ä¡µÈ À¥¼¹ö¿¡ µ¿½Ã Á¢¼ÓÀÚ 1000 ¸íÀÌ 1000 ¹øÀÇ ¿äûÀ» ÇÏ´Â °æ¿ì¸¦ Å×½ºÆ®ÇÏ¿© À¥¼¹öÀÇ ¼º´ÉÀ» ÃøÁ¤ÇÑ´Ù.
´Ù¾çÇÑ È¯°æ¼³Á¤À» º¯°æÇؼ À¥¼¹ö¸¦ Æ©´×ÇÑ ÀÌÈÄ ´Ù½Ã µ¿ÀÏÇÑ È¯°æÀ¸·Î Å×½ºÆ®Çؼ ½ÇÁ¦ÀûÀÎ ¼º´ÉÇâ»óÀÌ ÀÖ´ÂÁö¸¦ Á¡°ËÇÑ´Ù.
Å×½ºÆ® ÄÉÀ̽º
1) ab -n 1000 -c 1000 -t 10 http://210.183.235.95/
2) httperf --server 210.183.235.95 --port 80 --rate 1000 --num-conns 20000 --hog
3) flood floodconf..xml > result.out (floodconf.xml ÆÄÀÏ¿¡ ȯ°æ¼³Á¤)
±âº»¼³Ä¡ÈÄ ¾ÆÆÄÄ¡ ¼º´É Å×½ºÆ®
À¥»çÀÌÆ®°¡ ´À¸®¸é °í°´Àº ¹Ù·Î ´Ù¸¥ »çÀÌÆ®·Î À̵¿Çϱ⠸¶·ÃÀÌ´Ù.
µû¶ó¼ ±â¾÷Àº °í°´À» È®º¸, À¯ÁöÇϱâ À§ÇØ À¥»çÀÌÆ®ÀÇ ¼º´ÉÀ» ÃÖ»óÀÇ »óÅ·ΠÀ¯ÁöÇØ¾ßÇϸç ÀÌ·Î ÀÎÇØ À¥»çÀÌÆ®ÀÇ ¼º´ÉÀ» Áø´ÜÇÏ°í ºÐ¼®ÇÏ´Â µµ±¸µé¿¡ ´ëÇØ¼ ¸¹Àº °ü½ÉÀ» °¡Áö°í ÀÖÀ¸¸ç ÇöÀç ±â¾÷µé¸¶´Ù ´Ù¾çÇÑ ¹æ¹ýµé·Î ¼º´ÉÀ» °ü¸®Çϰí ÀÖ´Ù.
»ó¿ë SW |
°ø°³ SW |
¡Ü WEBest
¡Ü SiteAngel
¡Ü sitemonitor
¡Ü WatchPro/TestPro
¡Ü WEBest |
¡Ü ab
¡Ü Flood
¡Ü Httperf
¡Ü Hammerhead
¡Ü Web Performance Tool (WPT) |
Ç¥ 1. <À¥¼¹ö ¼º´ÉÅ×½ºÆ® ÇÁ·Î±×·¥ ºñ±³>
À¥¼¹öÀÇ ¼º´ÉÀ» ÃøÁ¤Çϱâ À§Çؼ ¸ÕÀú °ø°³SW º¥Ä¡¸¶Å© ÇÁ·Î±×·¥ ab, Flood, Httperf ¿¡ ´ëÇØ¼ ¾Ë¾Æº¸±â·Î ÇÏÀÚ.
ab
ab´Â "Apache HTTP server Benchmarking tool" ÀÇ ¾à¾î·Î¼ ¾ÆÆÄÄ¡¼¹öÀÇ ÀÀ´ä¼Óµµ¸¦ ÃøÁ¤ÇÏ´Â ¹êÄ¡¸¶Å·ÅøÀÌ´Ù. ÀÌ ÅøÀº ÇöÀç ¼³Ä¡µÈ ¾ÆÆÄÄ¡¼¹öÀÇ ½ÇÇà¼Óµµ ¹× ¼º´ÉÅ×½ºÆ®¸¦ À§Çؼ Á¦¿ì½ºÅ×Å©³Î¸®Áö(Zeus Technology Ltd, http://www.zeustech.net/)ÀÇ Adam Twiss°¡ °³¹ßÇÑ ÅøÀ̸ç. ¾ÆÆÄÄ¡¸¦ ¼³Ä¡ÇÏ°í ³ª¸é ±âº»ÀûÀ¸·Î ¼³Ä¡µÇ¹Ç·Î º°µµÀÇ ¼³Ä¡ °úÁ¤ ¾øÀÌ ¹Ù·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù.
¸í·É¾îÀ§Ä¡: /usr/local/apache/bin/ab
(RPM¼³Ä¡½Ã : /usr/bin/ab)
¾Æ·¡´Â ab¸¦ ÀÌ¿ëÇØ¼ -c(Çѹø¿¡¼öÇàÇÒ ´ÙÁ߿䱸¼ö) °ªÀ» 1000À¸·ÎÇϰí, -n(ÆäÀÌÁö¿äû¼ö) °ªÀ» 1000 À¸·Î ÇÏ¿´À¸¸ç -t(Å×½ºÆ®Çã¿ë ÃÖ´ë½Ã°£)°ªÀ» 10À¸·Î ÁÖ´Â ¿¹ÀÌ´Ù.
[root@www ~]# ab -c 1000 -n 1000 -t 10 http://210.183.235.95/
This is ApacheBench, Version 2.0.41-dev <$Revision: 1.141 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/
Server Software: Apache/2.0.52
Server Hostname: 210.183.235.95
Server Port: 80
Document Path: /
Document Length: 440 bytes
Concurrency Level: 1000
Time taken for tests: 10.6038 seconds
Complete requests: 13416
Failed requests: 0
Write errors: 0
Total transferred: 8176434 bytes
HTML transferred: 5907440 bytes
Requests per second: 1340.79 [#/sec] (mean)
Time per request: 745.829 [ms] (mean)
Time per request: 0.746 [ms] (mean, across all concurrent requests)
Transfer rate: 797.92 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 1 286 1301.0 4 9005
Processing: 21 148 467.1 95 6437
Waiting: 17 135 424.3 87 6434
Total: 57 434 1457.6 108 9703
Percentage of the requests served within a certain time (ms)
50% 108
66% 120
75% 127
80% 135
90% 179
95% 3076
98% 9068
99% 9076
100% 9703 (longest request)
ab ÀÇ ÃøÁ¤°á°ú¿¡¼ ´ÙÀ½°ú °°Àº ³»¿ëÀ» ºÐ¼®ÇÒ¼ö ÀÖ´Ù.
Server Software |
¾ÆÆÄÄ¡¹öÀüÀ» Ç¥½Ã |
Server Hostname |
ƯÁ¤»çÀÌÆ®ÀÇ À̸§(µµ¸ÞÀθí) |
Server Port |
À¥¼ºñ½º »ç¿ëÆ÷Æ®¹øÈ£ |
Document Path |
Ãʱ⠹®¼°¡ ÁØÀçÇÏ´Â À¥¹®¼ rootÀ§Ä¡ |
Time take for tests |
ÀÀ´ä½Ã°£(¸Å¿ì Áß¿äÇÑ °á°ú °ªÀÓ) |
Document Length |
Ãʱ⹮¼(´ëºÎºÐ index.html, index.htm)ÀÇ ¿ë·®Å©±â |
Complete requests |
¿ä±¸¿¡ ÀÀ´ä¿Ï·áÇÑ ¼¼¼Ç¼ö |
Failed requests |
¿ä±¸¿¡ ÀÀ´ä½ÇÆÐÇÑ ¼¼¼Ç¼ö |
Broken pipe errors |
½ÇÆÐÇÑ ¿¡·¯¼ö |
Total transferred |
ÃÑ Àü¼Û¹ÙÀÌÆ®¼ö |
HTTP transferred |
ÃÑ Àü¼ÛÇÑ HTML¹ÙÀÌÆ®¼ö |
Requests per second |
ÃÊ´çÀÀ´ä¿ä±¸¼ö |
Time per request |
¿ä±¸¿¡ ÀÀ´äÇÑ ½Ã°£(´ÜÀ§ micro second, Áß¿äÇÑ °á°ú°ª) |
Time per request |
¿ä±¸¿¡ ÀÀ´äÇÑ ½Ã°£ |
Transfer rate |
ÃÊ´çÀü¼Û°¡´ÉÇÑ ¿ë·® |
Ç¥ 2. <ab ÀÇ °á°úºÐ¼®>
Httperf
Httperf ÅøÀº ¿äûÀÌ ¹ß»ýÇÏ´Â ºñÀ², ÃÑ ¿¬°á ¼ö, ŸÀӾƿô ÇÑ°è µîÀ» Á¦¾îÇÒ ¼ö ÀÖ´Ù.
´Ù¿î·Îµå´Â http://www.hpl.hp.com/research/linux/httperf/ ¿¡¼ °¡´ÉÇÏ¸ç ¼³Ä¡´Â ÀϹÝÀûÀÎ ¼Ò½º¼³Ä¡¹ý°ú µ¿ÀÏÇÏ°Ô ./configure ; make; make install ·Î ÁøÇàÇÒ¼ö ÀÖ´Ù.
»ç¿ëÇÒ ¼ö ÀÖ´Â ¿É¼ÇÀº ¾Æ·¡¿Í °°´Ù
--server ¼¹öÁÖ¼Ò |
¿©±â¿¡ Àû¾î ÁØ ¼¹ö·Î Á¢¼ÓÀ» ½ÃµµÇÑ´Ù |
--port ¼ýÀÚ |
¿©±â¿¡ Àû¾î ÁØ Æ÷Æ®·Î Á¢¼ÓÀ» ½ÃµµÇÑ´Ù |
--num-conns ¼ýÀÚ |
ÃÑ ¸î°³ÀÇ Á¢¼ÓÀ» ¸¸µé °ÍÀÎÁö¸¦ °áÁ¤ÇÑ´Ù. |
--rate ¼ýÀÚ |
ÃÊ´ç ¸î°³ÀÇ Á¢¼ÓÀ» ¸¸µé °ÍÀÎÁö¸¦ °áÁ¤ÇÑ´Ù. |
--timeout ¼ýÀÚ |
¼ýÀÚ¸¸ÅÀÇ ÃÊ ÀÌÈÄ ÀÀ´äÀÌ ¾ø´Â ¿¬°áÀº timeout ¿¡·¯·Î ó¸®ÇÑ´Ù. |
--think-timeout ¼ýÀÚ |
CGIµî ¼¹öÂÊ¿¡¼ ó¸®ÇØ¾ß ÇÏ´Â ÀϵéÀÌ ÀÖ´Â ÆäÀÌÁöÀÇ °æ¿ì ¼¹öÃø¿¡ À̸¦ ó¸®ÇÒ ½Ã°£À» ÁØ´Ù. timeout¿¡¼ À̰÷¿¡ ÁÖ¾îÁø ¼ýÀÚ¸¸ÅÀ» ´õÇÑ °ªÀÌ ÁøÂ¥ timeout°ªÀÌ µÈ´Ù. |
--hog |
°¡´ÉÇÑ ¸ðµç Æ÷Æ®¸¦ »ç¿ëÇÑ´Ù. ÀÌ ¿É¼ÇÀ» ÁÖÁö ¾ÊÀ¸¸é ±âº»ÀûÀ¸·Î 1024ºÎÅÍ 5000±îÁöÀÇ Æ÷Æ®¸¸ »ç¿ëÇÑ´Ù. |
Ç¥ 3.<httperf ÀÇ ÁÖ¿ä¿É¼Ç>
¾Æ·¡ ¿¹Á¦´Â 210.183.235.95 À¥¼¹öÀÇ 80¹ø Æ÷Æ®·Î 1ÃÊ¿¡ 1000°³¾¿ ÃÑ 20000°³ÀÇ Á¢¼ÓÀ» ¸¸µé°Ô µÈ´Ù.
[root@www ~]# httperf --server 210.183.235.95 --port 80 --rate 1000 --num-conns 20000 --hog
httperf --hog --client=0/1 --server=210.183.235.95 --port=80 --uri=/ --rate=1000 --send-buffer=4096 --recv-buffer=16384 --num-conns=20000 --num-calls=1
Maximum connect burst length: 8
Total: connections 20000 requests 20000 replies 20000 test-duration 20.000 s
Connection rate: 1000.0 conn/s (1.0 ms/conn, <=540 concurrent connections)
Connection time [ms]: min 0.3 avg 70.5 max 3006.4 median 1.5 stddev 422.3
Connection time [ms]: connect 60.8
Connection length [replies/conn]: 1.000
Request rate: 1000.0 req/s (1.0 ms/req)
Request size [B]: 65.0
Reply rate [replies/s]: min 978.7 avg 1000.0 max 1021.5 stddev 17.5 (4 samples)
Reply time [ms]: response 9.6 transfer 0.0
Reply size [B]: header 169.0 content 440.0 footer 0.0 (total 609.0)
Reply status: 1xx=0 2xx=20000 3xx=0 4xx=0 5xx=0
CPU time [s]: user 3.83 system 14.57 (user 19.2% system 72.9% total 92.0%)
Net I/O: 658.2 KB/s (5.4*10^6 bps)
Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0
Flood - a profile-driven HTTP load tester
Flood ´Â ¾ÆÆÄÄ¡ ÇÁ·ÎÁ§Æ® ÇÏÀ§ÀÇ ÇÁ·ÎÁ§Æ®ÀÌ´Ù
XML ¼³Á¤ÆÄÀÏÀ» ÇÊ¿ä·Î Çϸç, URL °ú POST data ¸¦ ¿©·¯ ¼¹öµé¿¡ Å×½ºÆ®ÇÒ¼ö ÀÖ´Ù.
ÇöÀç Flood ´Â Subversion À¸·Î °ü¸®µÇ°í ÀÖÀ¸¸ç ¼³Ä¡½Ã¿¡ ÀÚµ¿À¸·Î ¼Ò½º µð·ºÅ丮 ÇÏÀ§¿¡¼ apr °ú apr-util ÆÐŰÁö¸¦ ãÀ¸¹Ç·Î ¾Æ·¡Ã³·³ üũ¾Æ¿ôÇØ¼ ¼³Ä¡ÇÏ¸é µÈ´Ù.
¸¸ÀÏ apr °ú apr-utilÀ» ÀÌ¹Ì ¹Þ¾Æ¿Â »óŶó¸é configure ÇÒ¶§ --with-apr and --with-apr-util ¿É¼ÇÀ» »ç¿ëÇØ¼ °æ·Î¸¦ ÁöÁ¤ÇØÁÖ¸é µÈ´Ù
% svn co http://svn.apache.org/repos/asf/httpd/test/trunk/flood
% cd flood
% svn co http://svn.apache.org/repos/asf/apr/apr/trunk apr
% svn co http://svn.apache.org/repos/asf/apr/apr-util/trunk apr-util
% ./buildconf
% ./configure --disable-shared
% make all
¼³Ä¡°¡ Á¤»óÀûÀ¸·Î ÁøÇàµÇ¾úÀ¸¸é ¼³Ä¡ÇÑ µð·ºÅ丮¿¡¼ ¾Æ·¡Ã³·³ È®ÀÎÇÒ¼ö ÀÖ´Ù
% ./flood examples/round-robin.xml > foo.out
°á°ú ÆÄÀÏÀ» ´Ù¸¥ÇÁ·Î±×·¥¿¡¼ Ȱ¿ëÇÏ°í ½ÍÀº °æ¿ì´Â
% ./examples/analyze-relative foo.out ¸¦ ½ÇÇàÇØº¸¸é Âü°íÇÒ¼ö ÀÖ´Ù.
analyze-relative ÆÄÀÏÀº Å×½ºÆ® °á°ú°ªÀ» °¡°øÇÏ´Â °£´ÜÇÑ ½ºÅ©¸³Æ®ÀÌ´Ù.
Flood ¿¡ ´ëÇØ¼ º¸´Ù »ó¼¼ÇÑ Á¤º¸¸¦ ¿øÇÑ´Ù¸é http://httpd.apache.org/test/flood/faq.html ¸¦ ¹æ¹®ÇÏÀÚ.
¾Æ·¡´Â floodconf.xml ÆÄÀÏÀ» ÀÌ¿ëÇØ¼ Å×½ºÆ® ÇÏ´Â ºÎºÐÀÌ´Ù. xmlÇü½ÄÀÇ È¯°æ¼³Á¤ ÆÄÀÏÀ» ¼³Á¤ÇÏ´Â ¹æ¹ýÀº http://httpd.apache.org/test/flood/ ¸¦ ¹æ¹®Çؼ Âü°íÇϱ⠹ٶõ´Ù.
[root@www ~]# flood floodconf.xml > result.out
[root@www ~]# ./analyze-relative result.out
Slowest pages on average (worst 5):
Average times (sec)
connect write read close hits URL
0.0018 0.0019 0.0081 0.0082 29126 http://210.183.235.95/
Requests: 29127 Time: 0.80 Req/Sec: 41776.74
¼³Á¤º¯°æÀ» ÅëÇÑ ¾ÆÆÄÄ¡ ¼º´É ÃÖÀûÈ
¾ÆÆÄÄ¡´Â httpd.conf ÆÄÀÏÀ» ÀÌ¿ëÇØ¼ ¼º´É°ú ¾ÈÁ¤¼º ±×¸®°í º¸¾ÈÀ» °¢°¢ ±¸ÇöÇÒ¼ö ÀÖ´Ù. ÀÌÁ¦ºÎÅÍ ¸®´ª½º¿¡¼ ¾ÆÆÄÄ¡ À¥¼¹ö¸¦ ÃÖ»óÀÇ »óÅ·Π¿î¿ëÇϱâ À§ÇÏ¿© ¼º´ÉÀ» Çâ»ó½Ãų¼ö ÀÖ´Â ¾ÆÆÄÄ¡ÀÇ ¼³Á¤ Áö½ÃÀÚµéÀ» »ìÆìº¸±â·Î ÇÏÀÚ.
Timeout
Á¢¼ÓµÈ Ŭ¶óÀÌ¾ðÆ®°¡ ¼¹ö¿¡ ¾Æ¹«·± ¿äûÀÌ ¾øÀ» ¶§ ¾î´ÀÁ¤µµ ½Ã°£ÀÌ Áö³ª¸é ¿¬°áÀ» ²÷À»Áö¸¦ ÃÊ´ÜÀ§·Î ¼³Á¤ÇÑ´Ù. ³×Æ®¿÷ÀÇ ¼º´ÉÀÌ ³·À»¼ö·Ï ÀÌ ¼öÄ¡¸¦ ³ô°Ô ¼³Á¤ÇÏ´Â °ÍÀÌ ÁÁ´Ù.
MaxClients
À¥¼¹ö ¼º´É¿¡ °¡Àå Å« ¿µÇâÀ» ÁÖ´Â °ÍÀº ¸Þ¸ð¸®´Ù. ¹æ¹®ÀÚÀÇ ¿äû¿¡ ÀÀ´äÇϱâ À§Çؼ ÇÁ·Î¼¼½º°¡ »ý¼ºµÇ´ÂµÇ ÀÌ Áö½ÃÀÚÀÇ °³¼ö¸¸Å¸¸ »ý¼º°¡´ÉÇÏ´Ù. ¿©±â¼ ÁöÁ¤ÇÑ °³¼ö ÀÌ»óÀÇ ¿äûÀÌ µé¾î¿À¸é ¾ÆÆÄÄ¡´Â ¿äûÀ» ¹«½ÃÇÑ´Ù.
MaxClients Áö½Ã¾î¸¦ Á¶ÀýÇÏ¿© À¥¼¹ö°¡ ½º¿ÒÀ» ÇÒ Á¤µµ·Î ¸¹Àº ÇÁ·Î¼¼½º¸¦ ¸¸µéÁö ¾Êµµ·Ï ÇØ¾ß ÇÑ´Ù. ½º¿ÒÀº ¿äû´ç Áö¿¬½Ã°£À» ´Ã¸®±â ¶§¹®¿¡ À¥¼¹ö´Â ½º¿ÒÀ» ÇÏ¸é ¾ÈµÈ´Ù. topÀ¸·Î ÇÁ·Î¼¼½º ¸ñ·ÏÀ» º¸°í ¾ÆÆÄÄ¡ ÇÁ·Î¼¼½ºÀÇ Æò±Õ ¸Þ¸ð¸® »ç¿ë·®À» ¾Ë¾Æ³½ÈÄ, »ç¿ë°¡´ÉÇÑ ¸Þ¸ð¸®ÀÇ ¾ç¸¸Å Á¶ÀýÇØÁØ´Ù
KeepAlive
¾ÆÆÄÄ¡ÀÇ ÇÑ ÇÁ·Î¼¼½º°¡ Á¢¼ÓÇÑ Å¬¶óÀ̾ðÆ®ÀÇ Áö¼ÓÀûÀÎ ¿äûÀÛ¾÷À» °è¼ÓÇØ¼ ó¸®ÇÏ°Ô ÇÒ °ÍÀÎÁö¸¦ °áÁ¤ÇÏ´Â Áö½ÃÀÚ. ÀÌ Áö½ÃÀÚÀÇ °ªÀ» OnÀ¸·Î µÇ¾î ÀÖ¾î¾ß MaxKeepAliveRequests , KeepAliveTimeout Áö½ÃÀÚ°¡ À¯È¿ÇÏ°Ô µÈ´Ù
MaxKeepAliveRequests
ÀÌÀüÀÇ KeepAlive Áö½Ã¾î°¡ On À϶§¸¸ À¯È¿ÇÏ´Ù. KeepAlive ¸¦ ÀÌ¿ëÇØ¼ ÇÑ ÇÁ·Î¼¼½º°¡ Á¢¼ÓÇÑ Å¬¶óÀξðÆ®ÀÇ À̾îÁö´Â ¿äûÀ» ¸ðµÎ ó¸®Çϵµ·Ï ¼³Á¤Çߴµ¥, À̶§ ¹«ÇÑÁ¤ °è¼Ó ó¸®Çϴ°ÍÀÌ ¾Æ´Ï¶ó ÀÌ Áö½ÃÀÚ¸¦ ÀÌ¿ëÇØ¼ ó¸®ÇÒ È½¼ö¸¦ ÁöÁ¤ÇØÁØ´Ù. MaxKeepAliveRequests 100 ó·³ ¼³Á¤Çصθé ÇÁ·Î¼¼½º°¡ 100¹øÀÇ ¿äûÀ» ó¸®ÇÑÈÄ ÀÚ½ÅÀº Á×°í ±×´ÙÀ½ ÇÁ·Î¼¼½º°¡ ´Ù½Ã Ŭ¶óÀξðÆ®ÀÇ ¿äûÀ» ÀÌ¾î¼ Ã³¸®Çϵµ·Ï Çϴ°ÍÀÌ´Ù. ¹æ¹®ÀÚ°¡ ¸¹Àº ȨÆäÀÌÁö¶ó¸é ÀÌ °ªÀ» Á» ¿Ã·ÁµÎ´Â°ÍÀÌ ÁÁ´Ù
KeepAliveTimeout
ÀÌÀüÀÇ KeepAlive Áö½Ã¾î°¡ On À϶§¸¸ À¯È¿ÇÏ´Ù. KeepAlive ¸¦ »ç¿ëÇÑ´Ù¸é ÇÁ·Î¼¼½ºµéÀº ÀÌ¹Ì ¿¸° ¿¬°á¿¡¼ Ãß°¡ ¿äûÀ» ±â´Ù¸®¸ç ´ë±âÁßÀÌ´Ù.
KeepAliveTimeout 15 ó·³ ¼³Á¤Çصθé Ŭ¶óÀÌ¾ðÆ®°¡ 15Ãʵ¿¾È ¾Æ¹«¿äûÀÌ ¾øÀ¸¸é ÇÁ·Î¼¼½ºÀÇ ¿¬°áÀ» ²÷´Â´Ù. ÀÌ °ªÀ» 60 ÃÊ ÀÌ»óÀ¸·Î ¿Ã¸®¸é »ç¿ëÀÚÀÇ ¿äûÀ» ±â´Ù¸®¸ç ¾Æ¹«ÀÏÀ» ÇÏÁö¾Ê´Â ÇÁ·Î¼¼½º°¡ 60Ãʵ¿¾È ¶°ÀÖ°Ô µÇ´Â°ÍÀÌ´Ù. ÀÚ½ÅÀÇ ³×Æ®¿÷´ë¿ª°ú ºÎÇÏ¿¡ µû¶ó ÀûÀýÈ÷ Á¶ÀýÇÏÀÚ. ±âº»°ª 15 ·Îµµ ¹«¹æÇÏ´Ù
StartServers
¾ÆÆÄÄ¡ ½ÃÀ۽ÿ¡ ½ÇÇà½Ãų ÇÁ·Î¼¼½ºÀÇ °³¼ö. µÚ¿¡³ª¿À´Â MinSpareServers, MaxSpareServers µîÀÇ Áö½ÃÀÚ¿¡ ÀÇÇØ¼ ÇÁ·Î¼¼½º´Â »ý¼ºµÇ±âµµ Çϰí Áױ⵵ ÇϹǷΠū Àǹ̸¦ °¡Áö´Â°ÍÀº ¾Æ´Ï´Ù.
MinSpareServers
Ç×»ó ´ë±âÇϰí ÀÖÀ» ÇÁ·Î¼¼½ºÀÇ ÃÖ¼Ò°³¼ö. ¿©±â¼ ÁöÁ¤ÇÑ ¼ýÀÚº¸´Ù ÀûÀº ÇÁ·Î¼¼½º°¡ ´ë±âµÇ¾î ÀÖ´Ù¸é ¾ÆÆÄÄ¡´Â °¡´ÉÇÑ ÀÌ ¼ýÀÚ¸¦ À¯ÁöÇϱâÀ§ÇØ ³ë·ÂÇÑ´Ù.
MaxSpareServers
Ç×»ó ´ë±âÇϰí ÀÖÀ» ÇÁ·Î¼¼½ºÀÇ ÃÖ´ë°³¼ö. ¿©±â¼ ÁöÁ¤ÇÑ ¼ýÀÚº¸´Ù ¸¹Àº ÇÁ·Î¼¼½º°¡ ´ë±âµÇ¾î ÀÖ´Ù¸é ¾ÆÆÄÄ¡´Â °¡´ÉÇÑ ÀÌ ¼ýÀÚ¸¦ À¯ÁöÇϱâÀ§ÇØ ³ë·ÂÇÑ´Ù.
MaxRequestsPerChild
ÇϳªÀÇ ÇÁ·Î¼¼½º´ç ÃÖ´ë ó¸®ÇÒ ¼ö ÀÖ´Â ¹æ¹®ÀÚÀÇ ¿äûȽ¼ö
¼¹ö»ç¾çÀÌ ÁÁ´Ù¸é ÀÌ °ªÀ» ³ô¿© µÎ´Â°ÍÀÌ ½Ã½ºÅÛÀÇ ºÎÇÏÁ¶Àý°ú ÀÚ¿ø³¶ºñ¸¦ ¹æÁöÇϴµ¥ ÁÁ´Ù.
HostnameLookups
À¥¼¹öÀÇ ·Î±×(access_log)¿¡ º¸¸é Ŭ¶óÀ̾ðÆ®ÀÇ IP°¡ ±â·ÏµÇ¾îÀִµ¥ ÀÌ Áö½ÃÀÚ¸¦ OnÀ¸·Î ¼³Á¤Çϸé IPÁÖ¼Ò¸¦ µµ¸ÞÀθíÀ¸·Î ±â·ÏÇϱâÀ§Çؼ ³ë·ÂÀ» ÇϰԵȴÙ.
¾ÆÆÄÄ¡ 1.3 ÀÌÀü¿¡ HostnameLookupsÀÇ ±âº»°ªÀº OnÀÌ¿´´Ù.
À̸»Àº Á¢¼ÓÀ» ¿äûÇϸé DNS¸¦ °Ë»öÇØ¼ Á¢¼ÓÀÚÀÇ È£½ºÆ®¸íÀ» ¾Ë¾Æ³»¾î¾ß ÇѴٴ°ÍÀÌ´Ù,. ¾ÆÆÄÄ¡ 1.3¿¡¼ ÀÌ ¼³Á¤ÀÇ ±âº»°ªÀÌ Off·Î º¯°æµÇ¾ú´Ù.
¾ÆÆÄÄ¡ÀÇ ¼º´ÉÀ» »ý°¢ÇÑ´Ù¸é ¹Ýµå½Ã Off ·Î ¼³Á¤Çϱ⠹ٶõ´Ù.
¸¸ÀÏ ·Î±×ÆÄÀÏÀÇ ÁÖ¼Ò¸¦ È£½ºÆ®¸íÀ¸·Î º¯È¯ÇÒ Çʿ䰡 ÀÖ´Ù¸é ¾ÆÆÄÄ¡¿¡ Æ÷ÇÔµÈ logresolve ÇÁ·Î±×·¥À» »ç¿ëÇØ¼ ³ªÁß¿¡ ÇÒ¼öÀÖÀ¸´Ï ½ÇÁ¦ »ç¿ëÇÏ´Â À¥¼¹ö°¡ ¾Æ´Ñ ´Ù¸¥ ÄÄÇ»ÅÍ¿¡¼ ·Î±×ÆÄÀÏÀ» ÈÄó¸®ÇÏ±æ ¹Ù¶õ´Ù.
´Ù¸¥ ¼³Á¤¿¡¼ DNS ÁúÀÇ °í·Á
Allow from domainÀ̳ª Deny from domain Áö½Ã¾î¸¦ »ç¿ëÇÑ´Ù¸é (Áï, IP ÁÖ¼Ò°¡ ¾Æ´Ñ È£½ºÆ®¸íÀ̳ª µµ¸ÞÀθíÀ» »ç¿ëÇÑ´Ù¸é) ºÎµæÀÌ Áߺ¹-¿ª DNS °Ë»öÀ» (¿ª°Ë»öÀ» ÇÑÈÄ ¾ÇÀÇ·Î º¯°æµÇ¾ú´ÂÁö È®ÀÎÇϱâÀ§ÇØ ´Ù½Ã °Ë»ö) ÇØ¾ß ÇÑ´Ù. ±×·¯¹Ç·Î ¼º´ÉÀ» ³ôÀ̱â À§ÇØ ÀÌ·± Áö½Ã¾î¿¡´Â °¡´ÉÇϸé À̸§´ë½Å IP ÁÖ¼Ò¸¦ »ç¿ëÇÏÀÚ
FollowSymLinks¿Í SymLinksIfOwnerMatch
°¡´ÉÇÏ¸é ½Éº¼¸¯¸µÅ©¸¦ Çã¿ëÇÏÁö ¾Ê´Â°ÍÀÌ º¸¾È»ó ÁÁ´Ù. ÇÏÁö¸¸ ²À ½á¾ßÇÑ´Ù¸é Options SymLinksIfOwnerMatch º¸´Ù´Â Options FollowSymLinks¸¦ »ç¿ëÇ϶ó
Options SymLinksIfOwnerMatch ÀÏ °æ¿ì ¾ÆÆÄÄ¡´Â ½Éº¼¸¯ ¸µÅ©¸¦ °Ë»çÇϱâÀ§ÇØ ½Ã½ºÅÛÈ£ÃâÀ» Çѹø ´õ ÇØ¾ß ÇÑ´Ù. ÁÁÀº ¼º´ÉÀ» ¾òÀ¸·Á¸é SymLinksIfOwnerMatch´Â ÇÇÇÏÀÚ
AllowOverride
AllowOverride ´Â ÀÌÀü¿¡ ¼³Á¤µÈ ¾ÆÆÄÄ¡ ȯ°æ¼³Á¤À» ¹«½ÃÇÏ°í »õ·Î¿î ¼³Á¤À» Àû¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇÑ ¼³Á¤ÀÌ´Ù. AccessFileName À» º°µµ·Î ¼³Á¤ÇÏÁö ¾Ê¾Ò´Ù¸é ¾ÆÆÄÄ¡´Â .htaccess ÆÄÀÏÀ» µð·ºÅ丮 Á¢±ÙÀÎÁõ¿¡ »ç¿ëÇÑ´Ù.
¼³Á¤ÇÒ¼ö ÀÖ´Â Áö½ÃÀÚ´Â ´ÙÀ½°ú °°´Ù.
AuthConfig
AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, require µî°ú °°Àº Ŭ¶óÀÌ¾ðÆ® ÀÎÁõÁö½ÃÀÚÀÇ »ç¿ëÀ» Çã¿ë.
FileInfo
AccessFileName À¸·Î ÁöÁ¤ÇÑ ÆÄÀÏ¿¡ ´ëÇÏ¿© AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument, LanguagePriority µî°ú°°Àº ¹®¼À¯ÇüÀ» Á¦¾îÇÏ´Â Áö½ÃÀÚ »ç¿ëÀ» Çã¿ë
Indexes
AccessFileName À¸·Î ÁöÁ¤ÇÑ ÆÄÀÏ¿¡ ´ëÇÏ¿© AddDescription, AddIcon, AddIconByEncoding, DirectoryIndex, FancyIndexing µî°ú°°Àº µð·ºÅ丮 À妽ÌÀ» Á¦¾îÇÏ´Â Áö½ÃÀÚ »ç¿ëÀ» Çã¿ë
Limit
AccessFileName À¸·Î ÁöÁ¤ÇÑ ÆÄÀÏ¿¡ ´ëÇÏ¿© allow, deny, order °°Àº È£½ºÆ®Á¢±ÙÀ» Á¦¾îÇÏ´Â Áö½ÃÀÚ»ç¿ëÀ» Çã¿ë
Options
AccessFileName À¸·Î ÁöÁ¤ÇÑ ÆÄÀÏ¿¡ ´ëÇÏ¿© Options Áö½ÃÀÚ¸¦ ÀÌ¿ëÇÑ Àç¼³Á¤À» Çã¿ë
All
À§¿¡¼ À̾߱âÇÑ ¸ðµç °ÍÀ» Çã¿ë
None
AccessFileName À¸·Î ÁöÁ¤ÇÑ ÆÄÀÏÀ» ¹«½Ã. ¾î¶°ÇÑ ¼³Á¤µµ Àç¼³Á¤ ÇÒ¼ö ¾ø´Ù.
¸¸ÀÏ overrides¸¦ Çã¿ëÇÑ´Ù¸é ¾ÆÆÄÄ¡´Â ÆÄÀϸíÀÇ °¢ ºÎºÐ¸¶´Ù AccessFileName À¸·Î ÁöÁ¤ÇÑ ÆÄÀÏ(´ëºÎºÐ .htaccess)À» ¿±æ ½ÃµµÇÑ´Ù. ¿¹¸¦ µé¾î ¼³Á¤Àº ¾Æ·¡¿Í °°°í,
DocumentRoot /www/htdocs
<Directory />
AllowOverride all
</Directory>
/index.html URI¿¡ ´ëÇÑ ¿äûÀÌ ÀÖ´Ù°í °¡Á¤ÇÏÀÚ.
¾ÆÆÄÄ¡´Â /.htaccess, /www/.htaccess, /www/htdocs/.htaccess¸¦ ¸Å¹ø ¿·Á°í ½ÃµµÇÑ´Ù. ÃÖ°íÀÇ ¼º´ÉÀ» ¾òÀ¸·Á¸é Ç×»ó AllowOverride NoneÀ» »ç¿ëÇÏÀÚ.
EnableMMAP
Ä¿³Î¿¡¼ ¸Þ¸ð¸®¸ÅÇÎ(mmap)À» Áö¿øÇÑ´Ù¸é ¾ÆÆÄÄ¡°¡ À¥¹®¼¸¦ ·ÎµùÇϱâ À§ÇÏ¿© ³»ºÎ¹®¼¸¦ ÀÐÀ»¶§¿¡ ÆÄÀÏÀ» ¸Þ¸ð¸® ¸ÅÇÎÇÏ¿© ó¸®ÇÑ´Ù. µû¶ó¼ ¾ÆÆÄÄ¡ÀÇ ¼º´ÉÀÌ Å©°Ô Çâ»óµÉ¼ö ÀÖ´Ù.
±×·¯³ª ¸Þ¸ð¸®´ëÀÀÀÌ ¼¹öÀÇ ¼º´ÉÀ» ¶³¾îÆ®¸®°í ½ÉÁö¾î ¾ÈÁ¤¼ºÀ» ÇØÄ¡´Â °æ¿ì°¡ ÀÖ°í smp Solaris ¼¹ö¿¡¼ ¾ÆÆÄÄ¡ 2.0Àº Á¾Á¾ mmapÀ» »ç¿ëÇÏÁö ¾ÊÀ»¶§°¡ ´õ ºü¸£´Ù. ¶ÇÇÑ NFS ¸¶¿îÆ®ÇÑ ÆÄÀϽýºÅÛ¿¡ ÀÖ´Â ÆÄÀÏÀ» ¸Þ¸ð¸® ´ëÀÀÇÏ´Â µµÁß¿¡ ´Ù¸¥ NFS Ŭ¶óÀÌ¾ðÆ®¿¡ ÀÖ´Â ÇÁ·Î¼¼½º°¡ ÆÄÀÏÀ» Áö¿ì°Å³ª ÆÄÀÏÅ©±â¸¦ ÁÙÀ̸é, À¥¼¹ö ÇÁ·Î¼¼½º°¡ ´ÙÀ½ ¹ø¿¡ ¸Þ¸ð¸®´ëÀÀÇÑ ÆÄÀϳ»¿ëÀ» ÀÐÀ»¶§ bus error°¡ ¹ß»ýÇÒ ¼ö ÀÖ´Ù.
À§ÀÇ Á¶°Ç¿¡ ÇØ´çÇϸé Àü¼ÛÇÏ´Â ÆÄÀÏÀ» ¸Þ¸ð¸®´ëÀÀÇÏÁö ¾Êµµ·Ï EnableMMAP off¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.
EnableSendfile
¾ÆÆÄÄ¡´Â ¿î¿µÃ¼Á¦°¡ sendfileÀ» Áö¿øÇϸé Ä¿³Î sendfileÀ» »ç¿ëÇÏ¿© Á¤Àû ÆÄÀÏÀ» ¼ºñ½ºÇÏ´Â °æ¿ì Àü¼ÛÇÒ ÆÄÀÏÀ» Á÷Á¢ ÀÐÁö¾ÊÀ» ¼ö ÀÖ´Ù. sendfileÀ» »ç¿ëÇϸé read¿Í send¸¦ µû·Î ÇÒ Çʿ䰡 ¾ø¾î¼ ¸Å¿ì »¡¶óÁø´Ù.
±×·¯³ª sendfileÀ» »ç¿ëÇϸé À¥¼¹öÀÇ ¾ÈÁ¤¼ºÀ» ÇØÄ¡°ÔµÇ´Â °æ¿ì°¡ ÀÖ°í, Ä¿³ÎÀº ÀÚ½ÅÀÇ Ä³½¬¸¦ »ç¿ëÇÏ¿© NFS·Î ¸¶¿îÆ®ÇÑ ÆÄÀÏÀ» ¾ÈÁ¤ÀûÀ¸·Î ¼ºñ½ºÇÒ ¼ö ¾ø´Â °æ¿ì°¡ ÀÖÀ¸¹Ç·Î
EnableSendfile off¸¦ »ç¿ëÇØ¼ ÆÄÀÏÀ» sendfile Àü¼ÛÇÏÁö ¾Êµµ·Ï ÇÒ¼ö ÀÖ´Ù.
¼³Á¤º¯°æÈÄ ¾ÆÆÄÄ¡ ¼º´É Å×½ºÆ®
ÀÌÁ¦±îÁö ¼³¸íÇÑ ºÎºÐµéÀ» ÀÚ½ÅÀÇ È¯°æ¿¡ ¸Â°Ô °¢°¢ ¼öÁ¤ÇÑ ÈÄ ¾ÆÆÄÄ¡ À¥¼¹ö¸¦ Àç½ÃÀÛÇÏ°í ½ÇÁ¦·Î ¼º´ÉÀÌ Çâ»óµÇ¾ú´ÂÁö¸¦ ´Ù½Ã Å×½ºÆ®Çϱâ·Î ÇÏÀÚ. ÇÊÀÚ´Â ¾Æ·¡ÀÇ ºÎºÐµéÀ» ¼öÁ¤Çؼ Å×½ºÆ®Çß´Ù.
º¯°æÀÌÀü |
º¯°æÀÌÈÄ |
Timeout 120
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 15
HostnameLookups On
#EnableMMAP off
#EnableSendfile off
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256 |
Timeout 300
KeepAlive On
MaxKeepAliveRequests 10000
KeepAliveTimeout 25
HostnameLookups Off
EnableMMAP On
EnableSendfile On
StartServers 20
MinSpareServers 15
MaxSpareServers 45
ServerLimit 512
MaxClients 512 |
Ç¥ 4. <httpd.conf º¯°æºÎºÐ>
ab
[root@www ~]# ab -c 1000 -n 1000 -t 10 http://210.183.235.95/
This is ApacheBench, Version 2.0.41-dev <$Revision: 1.141 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/
Benchmarking 210.183.235.95 (be patient)
Completed 5000 requests
Completed 10000 requests
Finished 14033 requests
Server Software: Apache/2.0.52
Server Hostname: 210.183.235.95
Server Port: 80
Document Path: /
Document Length: 440 bytes
Concurrency Level: 1000
Time taken for tests: 10.61616 seconds
Complete requests: 14033
Failed requests: 0
Write errors: 0
Total transferred: 8608215 bytes
HTML transferred: 6219400 bytes
Requests per second: 1394.71 [#/sec] (mean)
Time per request: 716.997 [ms] (mean)
Time per request: 0.717 [ms] (mean, across all concurrent requests)
Transfer rate: 835.45 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 2 162 961.7 18 9049
Processing: 16 126 385.1 94 6459
Waiting: 13 114 383.5 81 6439
Total: 52 288 1147.4 118 9890
Percentage of the requests served within a certain time (ms)
50% 118
66% 123
75% 128
80% 132
90% 153
95% 175
98% 3139
99% 9188
100% 9890 (longest request)
httperf
[root@www ~]# httperf --server 210.183.235.95 --port 80 --rate 1000 --num-conns 20000 --hog
httperf --hog --client=0/1 --server=210.183.235.95 --port=80 --uri=/ --rate=1000 --send-buffer=4096 --recv-buffer=16384 --num-conns=20000 --num-calls=1
Maximum connect burst length: 14
Total: connections 20000 requests 20000 replies 20000 test-duration 19.999 s
Connection rate: 1000.0 conn/s (1.0 ms/conn, <=37 concurrent connections)
Connection time [ms]: min 0.5 avg 3.1 max 47.3 median 1.5 stddev 4.6
Connection time [ms]: connect 1.0
Connection length [replies/conn]: 1.000
Request rate: 1000.0 req/s (1.0 ms/req)
Request size [B]: 65.0
Reply rate [replies/s]: min 996.2 avg 1000.0 max 1004.0 stddev 3.4 (4 samples)
Reply time [ms]: response 2.1 transfer 0.0
Reply size [B]: header 150.0 content 440.0 footer 0.0 (total 590.0)
Reply status: 1xx=0 2xx=20000 3xx=0 4xx=0 5xx=0
CPU time [s]: user 2.95 system 10.76 (user 14.8% system 53.8% total 68.6%)
Net I/O: 639.7 KB/s (5.2*10^6 bps)
Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0
flood
[root@www ~]# flood floodconf.xml > result.out
[root@www ~]# ./analyze-relative result.out
Slowest pages on average (worst 5):
Average times (sec)
connect write read close hits URL
0.0019 0.0020 0.0045 0.0046 28999 http://210.183.235.95/
Requests: 28999 Time: 0.45 Req/Sec: 65931.82
ÃÖÁ¾ Å×½ºÆ® °á°ú
º¥Ä¡¸¶Å©¶ó´Â °ÍÀÌ ´Ù¾çÇÑ È¯°æ¿äÀο¡ ¿µÇâÀ» ¹ÞÀ¸¹Ç·Î Ç×»ó µ¿ÀÏÇÑ °ªÀ» ±â´ëÇϱâ´Â ¾î·Á¿î °ü°è·Î 3°¡Áö º¥Ä¡¸¶Å© ÇÁ·Î±×·¥µéÀÇ °á°ú°ªÀÌ ¸ðµÎ µ¿ÀÏÇÏ°Ô ³ªÅ¸³ªÁö´Â ¾ÊÁö¸¸ ¼³Á¤À» º¯°æÇϱâ ÀÌÀüº¸´Ù ÀüºÎ Çâ»óµÈ °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.
|
ab |
httperf |
flood |
±âº»»óÅ |
Time per request: 745.829 [ms] |
Reply time [ms]: response 9.6 |
Time: 0.80 sec |
Æ©´×ÀÌÈÄ |
Time per request: 716.997 [ms] |
Reply time [ms]: response 2.1 |
Time: 0.45 sec |
¸¶Ä¡¸ç
¸î¸î À¥µðÀÚÀ̳ʵéÀº »ç¿ëÀÚµéÀÌ ºü¸¥ »çÀÌÆ®¸¦ ¿øÇÏ´Â »ç½ÇÀ» °£È¤ Àر⵵ ÇÑ´Ù. ¶§¹®¿¡ È·ÁÇÑ È¸é±¸¼ºÀ» À§Çؼ ¼Óµµ¸¦ ¹«½ÃÇÏ´Â °æ¿ì°¡ °¡²û ÀÖ°í, ±×·¸°Ô ¸¸µé¾îÁö´Â À¥¼¹öÀÇ ÄÜÅÙÃ÷µéÀÌ À¥¼¹ö¸¦ ´À¸®°Ô ¸¸µé±âµµ Çϰí, ³×Æ®¿öÅ©ÀÇ º´¸ñÇö»ó°ú ¼¹öÀÇ ·Îµå·Î ÀÎÇØ ´À·ÁÁú¼öµµ ÀÖ´Ù.
À¥ ¼¹öÀÇ ÃÖÀûÈ´Â ¾ÆÆÄÄ¡ÀÇ ¼³Á¤À̿ܿ¡µµ ÀÌ·± ´Ù¾çÇÑ ¿ä¼Ò¿¡ ÀÇÇØ ¿µÇâÀ» ¹Þ´Â´Ù.
ÇÊÀÚ´Â ¿©·¯ºÐÀÌ ¸®´ª½º ¼¹ö °ü¸®Àڷμ Àû¾îµµ ¾ÆÆÄÄ¡¸¦ ¼³Á¤Çؼ °øÂ¥·Î ¾òÀ»¼ö ÀÖ´Â ¼º´ÉÇâ»óÀ» ³õÄ¡Áö ¾Ê±â¸¦ ¹Ù¶õ´Ù. ÀÌ ¿Ü¿¡µµ ¿©·¯ºÐÀº ¾ÆÆÄÄ¡ ¼º´ÉÇâ»óÀ» À§Çؼ mod_rewrite ¸¦ ÀÌ¿ëÇÑ URL»ý·«¹ý, mod_gzip À» »ç¿ëÇÑ ÄÜÅÙÃ÷ ¾ÐÃà, mod_expires ¸ðµâÀ» ÀÌ¿ëÇÑ À̹ÌÁöij½Ì µîÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù.
óÀ½¿¡ À̾߱âÇÑ °Íó·³ ´Ù¸¥ ½Ã½ºÅÛµé°ú ÅëÇÕµÈ È¯°æ¿¡¼ À¥ ¼ºñ½ºÀÇ ÃÖÀûÈµÈ ¼º´É °³¼±¹æ¾ÈÀ» ¸¶·ÃÇÏ´Â °ÍÀº ±ÛÀ» Àд ¿©·¯ºÐÀÇ ¸òÀÌ´Ù.
Âü°íÀÚ·á
(1) http://www.superuser.co.kr/home/book/index.htm ¸®´ª½º ¼¹ö°ü¸® ½Ç¹«¹ÙÀ̺í
(2) http://builder.com.com/5100-6371-5171727.html À¥¼¹ö ¼º´ÉÅ×½ºÆ® Åø Siege ¼Ò°³
(3) http://www.zdnet.co.kr/techupdate/trend/0,39024505,10051252-1,00.htm À¥»çÀÌÆ® ¼º´ÉºÐ¼® APM ¼ºñ½º
(4) http://httpd.apache.org/test/flood/ À¥¼¹ö ¼º´ÉÅ×½ºÆ® ¾ÆÆÄÄ¡ ¼ºê ÇÁ·ÎÁ§Æ® flood
(5) http://help.oss.or.kr/kms/kms/Knowledge/viewKnowledge.jsp?KM_ID=260 ¾ÆÆÄÄ¡ ¹êÄ¡¸¶Å· Åø ab
(6) http://www.intranetjournal.com/articles/200501/pij_01_06_05a.html Optimizing Apache Server Performance
(7) http://www.faqs.org/docs/securing/index.html Securing and Optimizing Linux
(8) http://www.serverwatch.com/tutorials/article.php/2216741 Performance Testing Using HTTPD-Test's Flood