ºìÁªLinuxÃÅ»§
Linux°ïÖú

²âÊÔÍøÕ¾ÏìÓ¦ËٶȵŤ¾ß°ü trAlyzr

·¢²¼Ê±¼ä:2012-10-19 21:26:48À´Ô´:ºìÁª×÷Õß:empast
ºÜ¶à×âÓÃзþÎñÆ÷µÄÕ¾³¤¹ØÐĵÄÒ»¸öÎÊÌâÊÇ£¬Óû§Á¬½ÓÍøÕ¾µÄËÙ¶ÈÔõÑù¡£ÕâÀïµÄ¡°ËÙ¶È¡±Ö÷ÒªÖ¸Á½¸ö·½Ã棬һ¸öÊÇ·þÎñÆ÷µÄÏìӦʱ¼ä»òÕß½ÐÍøÂçÑÓ³Ù£¨response time or network latency£©£¬ÁíÒ»¸öÊÇ·þÎñÆ÷ºÍÓû§Ö®¼äµÄ´ø¿í£¨throughput£©¡£ÏìӦʱ¼äÖ¸µÄÊÇÓû§£¨»òÕß·þÎñÆ÷£©Ïò·þÎñÆ÷£¨»òÓû§£©·¢ËÍÒ»¶Î½¨Á¢Á¬½ÓÇëÇóµ½×îÖÕ½ÓÊÕµ½¶Ô·½»ØÀ¡Ö®¼äµÄÑÓ³Ùʱ¼ä£»¶øÁ¬½Ó´ø¿íÖ¸µÄÊǵ±Á¬½Ó½¨Á¢Ö®ºóµ¥Î»Ê±¼äÄÜ´«µÝµÄÊý¾ÝÁ¿¡£ÏìӦʱ¼äºÍ´ø¿íÕâÁ½¸öÁ¿¹²Í¬Ó°ÏìÓû§ÌåÑéµ½µÄ¡°ÍøÕ¾Á¬½ÓËÙ¶È¡±£ºÈç¹ûÓû§µã»÷ÍøÕ¾Á´½Óºó¹ý½Ï³¤Ê±¼ä²ÅÓÐÏìÓ¦£¬µ«Ò»µ©ÓÐÏìÓ¦ºóÍøÕ¾Ë²Ê±´ò¿ª£¬Õâ˵Ã÷·þÎñÆ÷ÏìӦʱ¼ä½Ï³¤µ«Á¬½Ó´ø¿í½Ï¸ß£»Èç¹ûµã»÷Á´½ÓºóºÜ¿ìÏìÓ¦µ«ºÜ¾Ã²ÅÍêÈ«ÔØÈëÒ³Ãæ£¬ËµÃ÷ÏìӦʱ¼ä½ÏСµ«´ø¿íÒ²½ÏС¡£

²âÁ¿ÏìӦʱ¼äͨ³£Ê¹ÓÃping»òÕß traceroute¹¤¾ß£¬±ÈÈçÏÂÃæÕâ¸öpingµÄÀý×Ó£º

$ ping baidu.com
PING baidu.com (220.181.6.81) 56(84) bytes of data.
64 bytes from 220.181.6.81: icmp_seq=1 ttl=51 time=284 ms
64 bytes from 220.181.6.81: icmp_seq=2 ttl=51 time=284 ms
64 bytes from 220.181.6.81: icmp_seq=3 ttl=51 time=283 ms

×îºóµÄ283msÖ¸µÄÊÇ´Ó¿Í»§¶Ë·¢ËÍ64¸ö×Ö½Úµ½baiduÈ»ºóÔÙ·µ»Ø½ÓÊÕµ½µÄÍù·µÊ±¼ä£¨round-trip time£©ÊÇ283ºÁÃë¡£

²âÁ¿Á¬½Ó´ø¿íͨ³£ÐèÒªÖ±½ÓÏÂÔØÄ³¸ö½Ï´ó£¨±ÈÈ缸ʮÕ×£©µÄ̽ÕëÎļþ£¬È»ºó²âÁ¿Æ½¾ùÏÂÔØµÄKB/s¡£µ«ÕâÖÖ·½·¨²¢²»×¼È·£¬ÒòΪµ¥¸öÍøÒ³µÄ×Ö½ÚÊýÍùÍù½ÏС£¨¼¸Ê®µ½ÉϰÙK×Ö½Ú£©£¬ÓÐЧ´«ÊäËÙ¶È£¨effective transfer speed£¬Êµ¼ÊµÄ´«Êä×Ö½ÚÊý³ýÒÔ´«Êäʱ¼ä£©ÍùÍù´óÓÚ´óÎļþµÄƽ¾ù´«ÊäËÙ¶È£¬¶øË³Ê±µÄ±¬·¢´«ÊäËÙ¶È£¨burst speed£©¸üÓпÉÄÜÊÇÆ½¾ùËٶȵÄÊý±¶¡£¶øÇÒ·þÎñÆ÷ºÍÓû§£¨ÌرðÊÇÓû§£©µÄÍøÂç×Ü´ø¿í»áÓ°Ïìµ½Á¬½Ó´ø¿í¡£

ͨ³££¬Õ¾³¤ÇëÇóÓû§²âÊÔÍøÕ¾ËÙ¶È»á°üÀ¨Á½¸ö²½Ö裬һÊÇÇëÓû§ping·þÎñÆ÷£¬ÁíÒ»¸ö¾ÍÊÇÇëÓû§ÏÂÔØÄ³¸ö̽ÕëÎļþ¡£ÔÚÎÞ·¨Ê¹ÓÃping µÄÇé¿ö£¬»òÕßµ±ÑӳٽϸßÐèÒª²éÕÒÎÊÌâµÄʱºò£¬Õ¾³¤Ò²»áÒªÇóÓû§²¹³ätracerouteÊý¾Ý£¬ÒÔ±ã¸ù¾ÝÁ¬½Ó¾­ÓÉ·¾¶µÄÇé¿öÀ´·ÖÎö¸ßÑÓ³Ù²úÉúµÄÔ­Òò¡£

Á¬½Ó´ø¿íÍùÍùÊDz»¶Ô³ÆµÄ£¨ÉÏ´«ºÍÏÂÔØËٶȲ»Í¬£©£¬µ«ÍøÂçÑÓ³Ùʱ¼ä»ù±¾ÊǶԳƵģ¬Ò²¾ÍÊÇ˵Óû§ping·þÎñÆ÷µÄʱ¼äÓ¦¸ÃºÍ·þÎñÆ÷ pingÓû§µÄʱ¼ä´óÖÂÏàµÈ¡£ÀûÓÃÕâ¸ö¶Ô³ÆÐÔ£¬ÎÒдÁËtrAlyzr£¬Ò»¸öÓÃÀ´×Ô¶¯Í³¼ÆÍøÕ¾ºÍÓû§Ö®¼äÍøÂçÑÓ³Ùʱ¼äµÄ¹¤¾ß°ü¡£¿¼Âǵ½Óû§¿ÉÄÜÔÚijÖÖ·À»ðǽ֮ÄÚ²»ÊÇ×ÜÄÜping µÄͨ£¬trAlyzrÀûÓôӷþÎñÆ÷traceroute·Ã¿ÍIPÀ´²âÁ¿ÍøÂçÑÓ³Ù£¬µ±Óû§ÔÚ·À»ðǽ»òÕ߹ػúµÄʱºò£¬²âÁ¿µ½µÄʵ¼ÊÉÏÊÇ·þÎñÆ÷ºÍ×îÖÕµÄÄǸö·À»ðǽ»òÕßÍø¹ØµÄÑÓ³Ù£¬µ«ÒòΪ·À»ðǽºÍÍø¹ØºÍ¾ÖÓòÍøÄÚµÄÓû§»úÆ÷ÑÓ³Ùͨ³£ºÜС£¨¼¸¸öms»ò¸üС£©£¬ÕâÖÖ·½·¨²âÁ¿µ½µÄ¼¸ºõ¾ÍÊÇ·þÎñÆ÷ºÍÖÕ¶ËÓû§µÄÁ¬½ÓÑÓ³Ù¡£

ÎÒ±àдÕâ¸ö¹¤¾ßµÄÄ¿µÄÖ÷ÒªÊÇΪÁË·ÖÎö·þÎñÆ÷ÔÚÃÀ¹ú£¨»òÕ߯äËû¹úÍâµØÇø£©µÄVPS¶ÔÖйúIPµÄÍøÂçÑÓ³Ù£¬Èç¹ûÄãÐèÒª²âÁ¿¹úÄÚ»òÕßÃÀ¹úµÄ·þÎñÆ÷¶ÔÈ«Çò¸÷µØIPµÄÍøÂçÑÓ³Ù£¬ÄãÒª¶Ô¹¤¾ßÖеĽű¾×öÐ޸ġ£

Õâ¸ö¹¤¾ßÀûÓÃQQµÄ´¿ÕæIPÊý¾Ý¿âÀ´·ÖÎöÓû§IPµÄµØÀíλÖá£
ÏÂÔØ

Äã¿ÉÒÔÔÚsvn ÖÐÏÂÔØÕâ¸öÈí¼þ:

svn checkout http://tralyzr.googlecode.com/svn/trunk/ tralyzr

ʹÓÃ

ÕâÊǸöLinuxÏµĹ¤¾ß¡£ÒòΪÐèÒªtraceroute£¬Äãͨ³£ÐèÒª rootȨÏÞ²ÅÄÜÔËÐÐÕâ¸öÈí¼þ¡£½Å±¾ÊÇpythonдµÄ£¬ËùÒÔÄãÒ²ÐèÒª python¡£

½âѹºó½« getips.pyÖеÄ

f=open("%s/sample_ips.log"%curdir)

Ò»ÐÐÐÞ¸ÄΪÄãµÄÍøÕ¾·þÎñÆ÷µÄlogλÖ᣶ÔlogµÄ¸ñʽûÓÐÌØ±ðÒªÇó£¬Ö»Òª·ÃÎÊÕßµÄIPÊÇÔÚÿÐеÄ×îÇ°Ãæ¼´¿É¡£

Èç¹ûÄã²»ÐÞ¸Ägetips.pyÎļþ£¬ÄÇôĬÈÏʹÓÃsample_ips.log

È»ºó

./getips.py

¿É´ÓlogÎļþÖн«ËùÓÐÖйúµÄ·ÇËÑË÷ÒýÇæµÄIPÌá³ö´æ·ÅÔÚips.txtÖС£È»ºótracerouteÕâЩIP£º

./traceip.py

ÔËÐÐʱ¼äÈ¡¾öÓÚips.txtÖеÄIPÊýÄ¿ºÍÄãµÄÍøÂçÇé¿ö£¬traceroute 1000¸öIP¿ÉÄÜÐèÒª40·ÖÖÓ×óÓÒ¡£tracerouteµÄ½á¹û»á·ÅÔÚdata/Ŀ¼Ïµȴý·ÖÎö¡£

È»ºóÓÃparseip.py½Å±¾·ÖÎö´æ·ÅÔÚdata/ϵĽá¹û£¨×¢Òâ·ÖÎöÕâЩÊý¾Ý²»ÐèÒªrootȨÏÞ£©£º

./parseip.py

·ÖÎöµÄÊý¾Ý»á±£´æÔÚÏÂÃæÈý¸öÎı¾¸ñʽµÄÎļþÖУº

1. delays.dat : ´æ·ÅÁËÓû§µÄÍøÂçÑÓ³Ùʱ¼ä·Ö²¼£¬´Ó100ms¿ªÊ¼µ½600ms
2. prov_delay.dat : ´æ·ÅÁ˸÷¸öÊ¡µÄÓû§Á¬½Ó·þÎñÆ÷µÄƽ¾ùÑÓ³Ù
3. prov_num.dat : ´æ·ÅÁ˸÷¸öÊ¡µÄÓû§£¨IP£©Õ¼×ÜIPµÄ°Ù·Ö±È

ΪÁËÐÎÏóµØÕ¹Ê¾ÕâЩÊý¾Ý£¬ÎÒдÁËÈý¸ö gnuplot½Å±¾»æÖÆÊý¾Ýͼ¡£Äã¿ÉÒÔͨ¹ý

gnuplot *.g

À´Éú²úͼ±í¡£

Ö÷Ò³£ºhttp://code.google.com/p/tralyzr/

À´×Ô:¿ªÔ´ÖйúÉçÇø
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ