[Áöµð³ÝÄÚ¸®¾Æ]¸¹Àº À¥°³¹ßÀÚµé°ú ¼¹ö °ü¸®ÀÚµéÀÌ °¡Àå µÎ·Á¿öÇÏ´Â °ÍÀº ¾öû³ Æ®·¡ÇÈ ¶§¹®¿¡ À¥»çÀÌÆ®°¡ ´Ù¿îµÇ´Â »çÅ´Ù. Æ®·¡ÇÈ ÆøÁÖÀÇ ¿øÀÎÀº DoS °ø°Ý µî ¿©·¯°¡Áö°¡ ÀÖÁö¸¸ ºÐ¸íÇÑ °ÍÀº ´õÀÌ»ó À¥»çÀÌÆ®¸¦ »ç¿ëÇÒ ¼ö ¾øµµ·Ï ¸¸µç´Ù´Â »ç½ÇÀÌ´Ù.
ÀÌ·± ÇÊ¿ä ¶§¹®¿¡ µîÀåÇÑ °ÍÀÌ ¹Ù·Î ºÎÇÏ Å×½ºÆ® ÅøÀÌ´Ù. »çÀÌÆ®°¡ ¾î¶² Æ®·¡ÇÈ ¼öÁØ¿¡¼ ´Ù¿îµÇ´Â Áö¸¦ Å×½ºÆ®ÇÏ´Â ¼ÒÇÁÆ®¿þ¾î·Î, ÀÌ¹Ì ÁÁÀº ÅøµéÀÌ ¸¹ÀÌ Ãâ½ÃµÅ ÀÖ´Ù. ¡®WAPT¡¯¶ó´Â »ó¿ë ¼ÒÇÁÆ®¿þ¾î´Â
Builder.com¿¡¼ ¸®ºäÇϱ⵵ Çß´Ù. ÇÊÀÚ´Â ¹«·á·Î »ç¿ëÇÒ ¼ö ÀÖ´Â ¿ÀǼҽº ÅøÀ» ¼±È£Çϴµ¥, ¿ÀǼҽº ºÎÇÏ Å×½ºÆ® Åø °¡¿îµ¥ °¡Àå ³Î¸® »ç¿ëµÇ¸ç ²ÙÁØÈ÷ ¾÷µ¥ÀÌÆ®µÇ´Â ¼ÒÇÁÆ®¿þ¾î·Î´Â, À̸§°úµµ Àß ¾î¿ï¸®´Â ¡®½ÃÁî(Siege, Æ÷À§°ø°Ý)¡¯°¡ ÀÖ´Ù.
½ÃÁîÀÇ Æ¯Â¡
¡®½ÃÁ¶ó´Â À̸§Àº ÀÌ ÅøÀÇ ¸ðµç °ÍÀ» ¸»ÇÑ´Ù. ¼¹ö¸¦ ¿¡¿ö½Î ¼¹ö°¡ ¾î¶² ÀÌÀ¯·Î ¹®Á¦¸¦ ÀÏÀ¸Ä×´ÂÁö¸¦ º¸¿©ÁÖ´Â °ÍÀÌ´Ù. À¯´Ð½º ±â¹ÝÀÇ ¸í·ÉÇà ±â¹Ý ÅøÀÎ ½ÃÁî´Â GNU GPL ¿ÀǼҽº ¶óÀ̼±½º¸¦ µû¸£±â ¶§¹®¿¡ »ç¿ë, ¼öÁ¤, ¹èÆ÷°¡ ¸ðµÎ ¹«·á´Ù.
½ÃÁî´Â ´ÜÀÏ URLÀÇ ºÎÇÏ Å×½ºÆ®´Â ¹°·Ð ¸¹Àº URLÀ» ¸Þ¸ð¸®·Î ºÒ·¯µé¿© »ç¿ëÀÚ°¡ ¼³Á¤ÇÑ ½Ã¹Ä·¹ÀÌ¼Ç À¯Àú¸¸ÅÀÇ ºÎÇϸ¦ µ¿½Ã¿¡ Å×½ºÆ®ÇÒ ¼ö ÀÖ´Ù. ¶ÇÇÑ ±â·ÏµÈ ÃÑÈ÷Æ®¼ö¿Í Àü¼ÛµÈ ¹ÙÀÌÆ®¼ö, ¹ÝÀÀ½Ã°£, º´Ç༺(Concurrency), ¸®ÅÏ »óÅ µîÀ» º¸¿©ÁÖ¸ç, HTTP 1.0/1.1 ÇÁ·ÎÅäÄÝ, GET/POST µð·ºÆ¼ºê, ÄíŰ, Æ®·£Àè¼Ç ·Î±ë, ±âº»ÀûÀÎ ÀÎÁõ µîÀ» Áö¿øÇÑ´Ù.
´Ù¿î·Îµå¿Í ¼³Ä¡
½ÃÁî ÃֽŹöÀüÀº
Builder.com ´Ù¿î·Îµå »çÀÌÆ®¿¡¼ ¹ÞÀ» ¼ö ÀÖ´Ù. ¼³Ä¡´Â GNU ¿ÀÅäÄÜÇÁ(autoconf)¸¦ »ç¿ëÇØ À¯´Ð½º ¾ÖÇø®ÄÉÀ̼ǿë ÄÄÆÄÀÏ ÀýÂ÷¸¦ µû¸¥´Ù. Ç¥ÁØ ANSI C ÄÄÆÄÀÏ·¯(´ëºÎºÐÀÇ ±âº» *nix ÀνºÅçÀÇ ÀϺÎ)¸¦ Áö¿øÇÏ´Â ÃÖ±ÙÀÇ ¸®´ª½º ½Ã½ºÅÛÀ̳ª ´Ù¸¥ *nix ½Ã½ºÅÛ È¯°æÀ̶ó¸é ¼³Ä¡´Â ¸Å¿ì °£´ÜÇÏ´Ù. ¸ÕÀú ´Ù¿î·ÎµåÇÑ ÆÄÀÏÀÇ tar ¾ÐÃàÀ» ´ÙÀ½°ú °°ÀÌ ÇØÁ¦ÇÑ´Ù.
$ tar xvzf siege-latest.tar.gz
ÀÌÁ¦ ´ÙÀ½°ú °°ÀÌ ¼³Á¤ÇÑ´Ù(µðÆúÆ® ¼³Á¤À» ÃßõÇÑ´Ù).
$ ./configure
¼³Á¤¿¡ ´ëÇÑ µµ¿ò¸»Àº -help ¼ÇȽº(suffix)¸¦ ÀÌ¿ëÇÏ¸é µÈ´Ù. ÇÊÀÚ°¡ °³ÀÎÀûÀ¸·Î Ãß°¡ÇÑ °ÍÀº SSL Áö¿øÀ¸·Î, ¡®-with-ssl=/usr/local/ssl¡¯ ¼ÇȽº¸¦ ÅëÇÏ¸é µÈ´Ù. ¿©±â±îÁö ¸¶ÃÆÀ¸¸é ÀÌÁ¦ ³²Àº °ÍÀº ´ÙÀ½°ú °°ÀÌ ÄÄÆÄÀÏÇØ ¼³Ä¡ÇÏ´Â °ÍÀÌ´Ù.
$ make
$ make install
½ÇÇàÇϱâ
½ÃÁî´Â À¥¼¹ö¸¦ Å×½ºÆ®ÇÏ´Â ´Ù¾çÇÑ ¿É¼ÇÀ» Á¦°øÇÑ´Ù. °¡Àå °£ÆíÇÑ ½ÇÇà ¹æ¹ýÀº ´ÜÀÏ URL Å×½ºÆ®´Ù. À̰ÍÀº ƯÁ¤ ÆäÀÌÁö°¡ ´ë·® Æ®·¡ÇÈ¿¡ ¾î¶»°Ô ¹ÝÀÀÇÏ´ÂÁö¸¦ Àß º¸¿©ÁØ´Ù. À̶§ Áß¿äÇÑ ¿É¼Ç µÎ °¡Áö°¡ µ¿½Ã Á¢¼ÓÀÚ¼ö(-c ¿É¼Ç, µðÆúÆ®´Â 10)¿Í, ¹Ýº¹ Äõ¸®¼ö ȤÀº ½Ã°£À¸·Î Ç¥ÇöµÇ´Â Å×½ºÆ® ±â°£(-t)ÀÌ´Ù. ¿¹¸¦ µé¾î 25¸íÀÌ µ¿½Ã¿¡ 1ºÐ°£ Á¢¼ÓÇϴ ȯ°æÀ̶ó¸é ´ÙÀ½°ú °°ÀÌ ½ÇÇàÇÏ¸é µÈ´Ù.
$ siege -c25 -t1M www.example.com
À̹ۿ¡µµ µô·¹À̸¦ ¼³Á¤ÇÏ´Â -v¿Í -d ¿É¼ÇÀ» ÀÚÁÖ »ç¿ëÇϴµ¥ ±âº»°ªÀº 0ÀÌ´Ù.
°á°ú ºÐ¼®
¿©±â±îÁö ½ÇÇàÇß´Ù¸é ½ÃÁî´Â ´ç½ÅÀÇ ÄÚµå¿Í ¼¹ö°¡ ´ë·® Æ®·¡ÇÈ¿¡ ¾î¶»°Ô ¹ÝÀÀÇß´ÂÁö¸¦ ¾Ë·ÁÁØ´Ù. ´ÙÀ½Àº À§ÀÇ ¸í·ÉÀ» ½ÇÇàÇßÀ» ¶§ÀÇ °á°ú ȸéÀÌ´Ù.
** Siege 2.59
** Preparing 25 concurrent users for battle.
The server is now under siege...
Lifting the server siege... done.
Transactions: 406 hits
Availability: 99.75 %
Elapsed time: 59.66 secs
Data transferred: 10340918 bytes
Response time: 2.36 secs
Transaction rate: 6.81 trans/sec
Throughput: 173330.84 bytes/sec
Concurrency: 16.07
Successful transactions: 412
Failed transactions: 1
°¡¿ë¼º(Availability)Àº °¡Àå Áß¿äÇÑ ¿ä¼ÒÀε¥ À̰ÍÀÌ 100%¿¡ ¹Ì´ÞÇß´Ù´Â °ÍÀº »ç¿ëÀÚ ÁßÀÇ ÀϺΰ¡ »çÀÌÆ®¿¡ Á¢¼ÓÇÏÁö ¸øÇß´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. µû¶ó¼ À§ÀÇ ½ÇÇà°á°ú´Â ¹®Á¦°¡ µÈ´Ù. 1ºÐ¿¡ 25¸íÀÌ Á¢¼ÓÇßÀ» ¶§ °¡¿ë¼ºÀÌ 99.75%¿¡ ºÒ°úÇ߱⠶§¹®ÀÌ´Ù.
º´Ç༺(Concurrency)Àº °¢ Æ®·£Àè¼Ç ó¸® ½Ã°£À» °æ°ú½Ã°£À¸·Î ³ª´« °ÍÀÌ´Ù(À̶§ Æ®·£Àè¼ÇÀ̶õ ¸ðµç ÀÎÁõ½Ãµµ¸¦ Æ÷ÇÔÇÑ ¼¹öÀÇ È÷Æ®¼ö´Ù). À̸¦ ÅëÇØ Æò±Õ µ¿½Ã Á¢¼Ó ¼öÁØÀ» ¾Ë ¼ö Àִµ¥, º´Ç༺ÀÌ ³ôÀ»¼ö·Ï ¼¹ö°¡ ¾î·Á¿ò¿¡ ºÀÂøÇßÀ½À» ¾Ï½ÃÇÑ´Ù. ±× ÀÌÀ¯´Â »õ·Î¿î Æ®·¡ÇÈ Ã³¸®¸¦ À§ÇØ ¼ÒÄÏÀ» ¿¾î¾ß ÇÏ´Â »óȲ¿¡¼, ¼¹ö°¡ ÇÑ Æ®·£Àè¼ÇÀ» ¿Ï·áÇϴµ¥ °É¸®´Â ½Ã°£ÀÌ ±æ¸é ±æ¼ö·Ï, µ¿½Ã¿¡ ó¸®ÇØ¾ß ÇÒ Æ®·¡ÇÈÀÌ ¸¹¾ÆÁ® ¼¹ö ¼º´ÉÀÌ ¶³¾îÁö±â ¶§¹®ÀÌ´Ù.
°í±Þ ±â´É
ÇÊÀÚ°¡ ½ÃÁî Ãʱâ¹öÀüÀ» »ç¿ëÇßÀ» ¶§´Â, ¼¹ö¿¡ ÁØ ºÎÇÏ¿¡ ¼º°ø°ú ½ÇÆÐ°¡ ¼·Î µÚ¼¯¿© ÀÖ¾ú´Ù. ´Ü¼øÈ÷ µ¿½Ã Á¢¼ÓÀÚ¿Í Å×½ºÆ® ½Ã°£À» ´Ã·Á °á°ú¸¦ »ìÆìº¸´Â Á¤µµ¿´´Ù. ±×·¯³ª ½ÃÁî ÃֽŹöÀü¿¡´Â º½¹Ùµå¸ÕÆ®(Bombardment)¶ó´Â ÅøÀÌ Æ÷ÇԵŠÀÖ¾î, ¸í·É¾î ¿É¼ÇÀ¸·Î Ŭ¶óÀÌ¾ðÆ® ¼ýÀÚ¸¦ Áõ°¡½Ãų ¼ö ÀÖ´Ù. ±×·¯³ª º½¹Ùµå¸ÕÆ®(Bombardment)´Â ¹öº¸½º(verbose) Ãâ·ÂÀ̳ª ·Î±ë ±â´É µî ½ÃÁî°¡ ±âº»ÀûÀ¸·Î Áö¿øÇÏ´Â »ç¿ëÀÚ ¿É¼ÇÀÌ ¾ø¾î Á¦´ë·Î ½ÇÇàµÇÁö ¾Ê´Â ´ÜÁ¡ÀÌ ÀÖ´Ù.
Àû´çÇÑ È¸±Í Å×½ºÆÃµµ ´ÜÀÏ URL À̻󿡼¸¸ °¡´ÉÇÏ´Ù. ½ÃÁî´Â °ú°Å¿¡ ¡®½ºÄ«¿ìÆ®(Scout)¡¯¶ó´Â ÅøÀ» ÀÌ¿ëÇØ, ƯÁ¤ µµ¸ÞÀο¡¼ URLµéÀ» ÃßÃâÇÑ ÈÄ À̸¦ ½ÃÁî Å×½ºÆ® ¸ñ·Ï¿¡ Æ÷ÇÔ½ÃŰ´Â ±â´ÉÀ» Áö¿øÇß¾ú´Ù. ÇöÀç ½ºÄ«¿ìÆ®´Â ´õ ÀÌ»ó ¾÷µ¥ÀÌÆ®µÇÁö ¾ÊÁö¸¸ ÀÌÀü ¹öÀüÀº ´Ù¿î·ÎµåÇØ »ç¿ëÇÒ ¼ö´Â ÀÖ´Ù.
½ÃÁî ÃֽйöÀü¿¡´Â ½ºÄ«¿ìÆ® ´ë½Å »õ·Î¿î Å×½ºÆÃ¿ë URL ÃßÃâ±âÀÎ ¡®½ºÇÁ·Ï½Ã(Sproxy)¡¯°¡ Æ÷ÇԵŠÀÖ´Ù. ±×·¯³ª ÇÊÀÚ´Â °³ÀÎÀûÀ¸·Î ½ºÄ«¿ìÆ®¿¡ ´õ ÈÄÇÑ Á¡¼ö¸¦ ÁÖ°í ½Í´Ù. ½ºÇÁ·Ï½Ã´Â ¿É¼ÇÀ» »ç¿ëÀÚ ºê¶ó¿ìÀú ÇÁ·Ï½Ã·Î ¼³Á¤Çϸé, »ç¿ëÀÚ°¡ ¹æ¹®ÇÑ ¸ðµå »çÀÌÆ®ÀÇ ¸µÅ©¸¦ Å×½ºÆ® ¸ñ·Ï¿¡ Ãß°¡Çϱ⠶§¹®ÀÌ´Ù. À¯ÀÏÇÑ Ãß°¡ ¿É¼ÇÀº ¼öµ¿À¸·Î ¸ðµç URLÀ» ÀÔ·ÂÇÏ´Â °ÍÀÌ´Ù.
½ÃÁî´Â »çÀÌÆ®³»¿¡ Á¸ÀçÇÏ´Â ¸ðµç GET/POST, ÀÎÁõ, ÄíŰ¿¡ ´ëÇÑ ºÎÇÏ Å×½ºÆ®¸¦ ÇÒ ¼ö ÀÖÀ¸¸ç, »ç¿ëÀÚ´Â ´ÜÁö URLÀ» ÀÔ·ÂÇϰųª ½ºÇÁ·Ï½Ã³ª ½ºÄ«¿ìÆ® µîÀÇ ÅøÀ» ÀÌ¿ëÇÏ¸é µÈ´Ù. ´Ù¼ö URL¿¡ -i ¿É¼ÇÀ» »ç¿ëÇÏ¸é µ¿½Ã ¾²·¹µå ¹æ½ÄÀ¸·Î URLÀ» ³¼öÈÇØ º¸´Ù ½ÇÁ¦¿¡ °¡±î¿î Å×½ºÆ®µµ ÇÒ ¼ö ÀÖ´Ù.
°¡¿ë¼º°ú ¹ÝÀÀ½Ã°£ °³¼±¹æ¹ý
½ÃÁî´Â URL ºÎÇϸ¦ Å×½ºÆ®ÇÏ´Â °£´ÜÇÑ ÅøÀÏ »ÓÀÌ´Ù. µû¶ó¼ °¡¿ë¼º°ú ¹ÝÀÀ½Ã°£ µîÀ» °³¼±Çϱâ À§Çؼ´Â À̸¦ °áÁ¤ÇÏ´Â µÎ °¡Áö ¿ä¼Ò, Áï ³×Æ®¿öÅ©ÀûÀÎ ¿äÀΰú À¥ °³¹ßÀÚ¿¡ ÀÇÇØ Á¿ìµÇ´Â À¥ÆäÀÌÁöÀÇ ¿ä¼ÒµéÀ» »ìÆìºÁ¾ß ÇÑ´Ù.
¸ÕÀú ³×Æ®¿öÅ© Ãø¸éÀ» º¸¸é È£½ºÆ® À¥¼¹öÀÇ ´ë¿ªÆø(ó¸® ´É·Â)°ú ¸Þ¸ð¸®°¡ °¡Àå Áß¿äÇÏ´Ù. ·Îµå ¹ë·±½º ȯ°æÀ̶ó¸é È£½ºÆ® À¥¼¹ö ´ë½Å ¼¹ö°¡ µÈ´Ù. À¥ÆäÀÌÁö ºÎºÐ¿¡¼´Â Äڵ带 È¿À²ÀûÀ¸·Î °³¹ßÇÏ´Â ¸¸Å, ÀÌ·ÐÀûÀ¸·Î´Â ÆÄÀÏ Å©±â°¡ ÀÛ¾ÆÁö±â ¶§¹®¿¡, ³×Æ®¿öÅ© ÀÚ¿øÀÇ ³¶ºñµµ ÁÙÀÏ ¼ö ÀÖ´Ù. @