{"id":2076,"date":"2012-09-15T10:10:13","date_gmt":"2012-09-15T02:10:13","guid":{"rendered":"https:\/\/kyle.ai\/blog\/?p=2076"},"modified":"2013-11-21T18:24:42","modified_gmt":"2013-11-21T10:24:42","slug":"linux-system-and-performance-monitoringnetwork%e7%af%87","status":"publish","type":"post","link":"https:\/\/kyle.ai\/blog\/2076.html","title":{"rendered":"Linux System and Performance Monitoring(Network\u7bc7)"},"content":{"rendered":"<p>8.0 Network \u76d1\u63a7\u4ecb\u7ecd<\/p>\n<p>\u5728\u6240\u6709\u7684\u5b50\u7cfb\u7edf\u76d1\u63a7\u4e2d,\u7f51\u7edc\u662f\u6700\u56f0\u96be\u7684.\u8fd9\u4e3b\u8981\u662f\u7531\u4e8e\u7f51\u7edc\u6982\u5ff5\u5f88\u62bd\u8c61.\u5f53\u76d1\u63a7\u7cfb\u7edf\u4e0a\u7684\u7f51\u7edc\u6027\u80fd,\u8fd9\u6709\u592a\u591a\u56e0\u7d20.\u8fd9\u4e9b\u56e0\u7d20\u5305\u62ec\u4e86\u5ef6\u8fdf,\u51b2\u7a81,\u62e5\u6324\u548c\u6570\u636e\u5305\u4e22\u5931.<br \/>\n\u8fd9\u4e2a\u7ae0\u8282\u8ba8\u8bba\u600e\u4e48\u6837\u68c0\u67e5Ethernet(\u8bd1\u6ce8:\u7f51\u5361),IP,TCP\u7684\u6027\u80fd.<\/p>\n<p>8.1 Ethernet Configuration Settings(\u8bd1\u6ce8:\u7f51\u5361\u914d\u7f6e\u7684\u8bbe\u7f6e)<\/p>\n<p>\u9664\u975e\u5f88\u660e\u786e\u7684\u6307\u5b9a,\u51e0\u4e4e\u6240\u6709\u7684\u7f51\u5361\u90fd\u662f\u81ea\u9002\u5e94\u7f51\u7edc\u901f\u5ea6.\u5f53\u4e00\u4e2a\u7f51\u7edc\u4e2d\u6709\u5f88\u591a\u4e0d\u540c\u7684\u7f51\u7edc\u8bbe\u5907\u65f6,\u4f1a\u5404\u81ea\u91c7\u7528\u4e0d\u540c\u7684\u901f\u7387\u548c\u5de5\u4f5c\u6a21\u5f0f.<br \/>\n\u591a\u6570\u5546\u4e1a\u7f51\u7edc\u90fd\u8fd0\u884c\u5728100 \u6216 1000BaseTX.\u4f7f\u7528ethtool \u53ef\u4ee5\u786e\u5b9a\u8fd9\u4e2a\u7cfb\u7edf\u662f\u5904\u4e8e\u90a3\u79cd\u901f\u7387.<br \/>\n\u4ee5\u4e0b\u7684\u4f8b\u5b50\u4e2d,\u662f\u4e00\u4e2a\u6709100BaseTX \u7f51\u5361\u7684\u7cfb\u7edf,\u81ea\u52a8\u534f\u5546\u9002\u5e94\u81f310BaseTX \u7684\u60c5\u51b5.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n# ethtool eth0\r\nSettings for eth0:\r\nSupported ports: &#x5B; TP MII ]\r\nSupported link modes: 10baseT\/Half 10baseT\/Full\r\n100baseT\/Half 100baseT\/Full\r\nSupports auto-negotiation: Yes\r\nAdvertised link modes: 10baseT\/Half 10baseT\/Full\r\n100baseT\/Half 100baseT\/Full\r\nAdvertised auto-negotiation: Yes\r\nSpeed: 10Mb\/s\r\nDuplex: Half\r\nPort: MII\r\nPHYAD: 32\r\nTransceiver: internal\r\nAuto-negotiation: on\r\nSupports Wake-on: pumbg\r\nWake-on: d\r\nCurrent message level: 0x00000007 (7)\r\nLink detected: yes\r\n<\/pre>\n<p>\u4ee5\u4e0b\u793a\u8303\u4f8b\u5b50\u4e2d,\u5982\u4f55\u5f3a\u5236\u7f51\u5361\u901f\u7387\u8c03\u6574\u81f3100BaseTX:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n# ethtool -s eth0 speed 100 duplex full autoneg off\r\n# ethtool eth0\r\nSettings for eth0:\r\nSupported ports: &#x5B; TP MII ]\r\nSupported link modes: 10baseT\/Half 10baseT\/Full\r\n100baseT\/Half 100baseT\/Full\r\nSupports auto-negotiation: Yes\r\nAdvertised link modes: 10baseT\/Half 10baseT\/Full\r\n100baseT\/Half 100baseT\/Full\r\nAdvertised auto-negotiation: No\r\nSpeed: 100Mb\/s\r\nDuplex: Full\r\nPort: MII\r\nPHYAD: 32\r\nTransceiver: internal\r\nAuto-negotiation: off\r\nSupports Wake-on: pumbg\r\nWake-on: d\r\nCurrent message level: 0x00000007 (7)\r\nLink detected: yes\r\n<\/pre>\n<p>8.2 Monitoring Network Throughput(\u8bd1\u6ce8:\u7f51\u7edc\u541e\u5410\u91cf\u76d1\u63a7)<\/p>\n<p>\u63a5\u53e3\u4e4b\u95f4\u7684\u540c\u6b65\u5e76\u4e0d\u610f\u5473\u7740\u4ec5\u4ec5\u6709\u5e26\u5bbd\u95ee\u9898.\u91cd\u8981\u7684\u662f,\u5982\u4f55\u7ba1\u7406\u5e76\u4f18\u5316,\u8fd92\u53f0\u4e3b\u673a\u4e4b\u95f4\u7684\u4ea4\u6362\u673a,\u7f51\u7ebf,\u6216\u8005\u8def\u7531\u5668.\u6d4b\u8bd5\u7f51\u7edc\u541e\u5410\u91cf\u6700\u597d\u7684\u65b9\u5f0f\u5c31\u662f,\u5728\u8fd92\u4e2a\u7cfb\u7edf\u4e4b\u95f4\u4e92\u76f8\u53d1\u9001\u6570\u636e\u4f20\u8f93\u5e76\u7edf\u8ba1\u4e0b\u6765,\u6bd4\u5982\u5ef6\u8fdf\u548c\u901f\u5ea6.<\/p>\n<p>8.2.0 \u4f7f\u7528iptraf \u67e5\u770b\u672c\u5730\u541e\u5410\u91cf<\/p>\n<p>iptraf \u5de5\u5177(http:\/\/iptraf.seul.org),\u63d0\u4f9b\u4e86\u6bcf\u4e2a\u7f51\u5361\u541e\u5410\u91cf\u7684\u4eea\u8868\u76d8.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n#iptraf -d eth0\r\nFigure 1: Monitoring for Network Throughput\r\n<\/pre>\n<p>\u4ece\u8f93\u51fa\u4e2d\u53ef\u770b\u5230,\u8be5\u7cfb\u7edf\u53d1\u9001\u4f20\u8f93\u7387(\u8bd1\u6ce8:Outgoing rates)\u4e3a 61 mbps,\u8fd9\u5bf9\u4e8e100 mbps\u7f51\u7edc\u6765\u8bf4,\u6709\u70b9\u6162.<\/p>\n<p>8.2.1 \u4f7f\u7528netperf \u67e5\u770b\u7ec8\u7aef\u541e\u5410\u91cf<\/p>\n<p>\u4e0d\u540c\u4e8eiptraf \u88ab\u52a8\u7684\u5728\u672c\u5730\u76d1\u63a7\u6d41\u91cf,netperf \u5de5\u5177\u53ef\u4ee5\u8ba9\u7ba1\u7406\u5458,\u6267\u884c\u66f4\u52a0\u53ef\u63a7\u7684\u541e\u5410\u91cf\u76d1\u63a7.\u5bf9\u4e8e\u786e\u5b9a\u4ece\u5ba2\u6237\u7aef\u5de5\u4f5c\u7ad9\u5230\u4e00\u4e2a\u9ad8\u8d1f\u8377\u7684\u670d\u52a1\u5668\u7aef(\u6bd4\u5982file \u6216web server),\u5b83\u4eec\u4e4b\u95f4\u6709\u591a\u5c11\u541e\u5410\u91cf\u662f\u975e\u5e38\u6709\u5e2e\u52a9\u7684.netperf \u5de5\u5177\u8fd0\u884c\u7684\u662fclient\/server \u6a21\u5f0f.<br \/>\n\u5b8c\u6210\u4e00\u4e2a\u57fa\u672c\u53ef\u63a7\u541e\u5410\u91cf\u6d4b\u8bd5,\u9996\u5148netperf server \u5fc5\u987b\u8fd0\u884c\u5728\u670d\u52a1\u5668\u7aef\u7cfb\u7edf\u4e0a:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nserver# netserver\r\nStarting netserver at port 12865\r\nStarting netserver at hostname 0.0.0.0 port 12865 and family AF_UNSPEC\r\n<\/pre>\n<p>netperf \u5de5\u5177\u53ef\u80fd\u9700\u8981\u8fdb\u884c\u591a\u91cd\u91c7\u6837.\u591a\u6570\u57fa\u672c\u6d4b\u8bd5\u5c31\u662f\u4e00\u6b21\u6807\u51c6\u7684\u541e\u5410\u91cf\u6d4b\u8bd5.\u4ee5\u4e0b\u4f8b\u5b50\u5c31\u662f,\u4e00\u4e2aLAN(\u8bd1\u6ce8:\u5c40\u57df\u7f51) \u73af\u5883\u4e0b,\u4ececlient \u4e0a\u6267\u884c\u4e00\u6b2130\u79d2\u7684TCP \u541e\u5410\u91cf\u91c7\u6837:<br \/>\n\u4ece\u8f93\u51fa\u53ef\u770b\u51fa,\u8be5\u7f51\u7edc\u7684\u541e\u5410\u91cf\u5927\u81f4\u572889 mbps \u5de6\u53f3.server(192.168.1.215) \u4e0eclient \u5728\u540c\u4e00LAN \u4e2d.\u8fd9\u5bf9\u4e8e100 mbps\u7f51\u7edc\u6765\u8bf4,\u6027\u80fd\u975e\u5e38\u597d.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nclient# netperf -H 192.168.1.215 -l 30\r\nTCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to\r\n192.168.1.230 (192.168.1.230) port 0 AF_INET\r\nRecv Send Send\r\nSocket Socket Message Elapsed\r\nSize Size Size Time Throughput\r\nbytes bytes bytes secs. 10^6bits\/sec\r\n87380 16384 16384 30.02 89.46\r\n<\/pre>\n<p>\u4eceLAN \u5207\u6362\u5230\u5177\u590754G(\u8bd1\u6ce8:Wireless-G\u662f\u672a\u676554Mbps\u65e0\u7ebf\u7f51\u8054\u7f51\u6807\u51c6)\u65e0\u7ebf\u7f51\u7edc\u8def\u7531\u5668\u4e2d,\u5e76\u572810 \u82f1\u5c3a\u8303\u56f4\u5185\u6d4b\u8bd5\u65f6.\u8be5\u541e\u5410\u91cf\u5c31\u6025\u5267\u7684\u4e0b\u964d.\u5728\u6700\u5927\u5c31\u4e3a54 MBits\u7684\u53ef\u80fd\u4e0b,\u7b14\u8bb0\u672c\u7535\u8111\u53ef\u5b9e\u73b0\u603b\u541e\u5410\u91cf\u5c31\u4e3a14 MBits.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nclient# netperf -H 192.168.1.215 -l 30\r\nTCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to\r\n192.168.1.215 (192.168.1.215) port 0 AF_INET\r\nRecv Send Send\r\nSocket Socket Message Elapsed\r\nSize Size Size Time Throughput\r\nbytes bytes bytes secs. 10^6bits\/sec\r\n87380 16384 16384 30.10 14.09\r\n<\/pre>\n<p>\u5982\u679c\u572850\u82f1\u5c3a\u8303\u56f4\u5185\u5462,\u5219\u8fdb\u4e00\u6b65\u4f1a\u4e0b\u964d\u81f35 MBits.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n# netperf -H 192.168.1.215 -l 30\r\nTCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to\r\n192.168.1.215 (192.168.1.215) port 0 AF_INET\r\nRecv Send Send\r\nSocket Socket Message Elapsed\r\nSize Size Size Time Throughput\r\nbytes bytes bytes secs. 10^6bits\/sec\r\n87380 16384 16384 30.64 5.05\r\n<\/pre>\n<p>\u5982\u679c\u4eceLAN \u5207\u6362\u5230\u4e92\u8054\u7f51\u4e0a,\u5219\u541e\u5410\u91cf\u8dcc\u81f31 Mbits\u4e0b\u4e86.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n# netperf -H litemail.org -p 1500 -l 30\r\nTCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to\r\nlitemail.org (72.249.104.148) port 0 AF_INET\r\nRecv Send Send\r\nSocket Socket Message Elapsed\r\nSize Size Size Time Throughput\r\nbytes bytes bytes secs. 10^6bits\/sec\r\n87380 16384 16384 31.58 0.93\r\n<\/pre>\n<p>\u6700\u540e\u662f\u4e00\u4e2aVPN \u8fde\u63a5\u73af\u5883,\u8fd9\u662f\u6240\u6709\u7f51\u7edc\u73af\u5883\u4e2d\u6700\u69fd\u7cd5\u7684\u541e\u5410\u91cf\u4e86.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n# netperf -H 10.0.1.129 -l 30\r\nTCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to\r\n10.0.1.129 (10.0.1.129) port 0 AF_INET\r\nRecv Send Send\r\nSocket Socket Message Elapsed\r\nSize Size Size Time Throughput\r\nbytes bytes bytes secs. 10^6bits\/sec\r\n87380 16384 16384 31.99 0.51\r\n<\/pre>\n<p>\u53e6\u5916,netperf \u53ef\u4ee5\u5e2e\u52a9\u6d4b\u8bd5\u6bcf\u79d2\u603b\u8ba1\u6709\u591a\u5c11\u7684TCP \u8bf7\u6c42\u548c\u54cd\u5e94\u6570.\u901a\u8fc7\u5efa\u7acb\u5355\u4e00TCP \u8fde\u63a5\u5e76\u987a\u5e8f\u5730\u53d1\u9001\u591a\u4e2a\u8bf7\u6c42\/\u54cd\u5e94(ack \u5305\u6765\u56de\u57281\u4e2abyte \u5927\u5c0f).\u6709\u70b9\u7c7b\u4f3c\u4e8eRDBMS \u7a0b\u5e8f\u5728\u6267\u884c\u591a\u4e2a\u4ea4\u6613\u6216\u8005\u90ae\u4ef6\u670d\u52a1\u5668\u5728\u540c\u4e00\u4e2a\u8fde\u63a5\u7ba1\u9053\u4e2d\u53d1\u9001\u90ae\u4ef6.<br \/>\n\u4ee5\u4e0b\u4f8b\u5b50\u572830 \u79d2\u7684\u6301\u7eed\u65f6\u95f4\u5185,\u6a21\u62dfTCP \u8bf7\u6c42\/\u54cd\u5e94:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nclient# netperf -t TCP_RR -H 192.168.1.230 -l 30\r\nTCP REQUEST\/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET\r\nto 192.168.1.230 (192.168.1.230) port 0 AF_INET\r\nLocal \/Remote\r\nSocket Size Request Resp. Elapsed Trans.\r\nSend Recv Size Size Time Rate\r\nbytes Bytes bytes bytes secs. per sec\r\n16384 87380 1 1 30.00 4453.80\r\n16384 87380\r\n<\/pre>\n<p>\u5728\u8f93\u51fa\u4e2d\u770b\u51fa,\u8fd9\u4e2a\u7f51\u7edc\u652f\u6301\u7684\u5904\u7406\u901f\u7387\u4e3a\u6bcf\u79d24453 psh\/ack(\u5305\u5927\u5c0f\u4e3a1 byte).\u8fd9\u5176\u5b9e\u662f\u7406\u60f3\u72b6\u6001\u4e0b,\u56e0\u4e3a\u5b9e\u9645\u60c5\u51b5\u65f6,\u591a\u6570requests(\u8bd1\u6ce8:\u8bf7\u6c42),\u7279\u522b\u662fresponses(\u8bd1\u6ce8:\u54cd\u5e94),\u90fd\u5927\u4e8e1 byte.<br \/>\n\u73b0\u5b9e\u60c5\u51b5\u4e0b,netperf \u4e00\u822crequests \u9ed8\u8ba4\u4f7f\u75282K\u5927\u5c0f,responses \u9ed8\u8ba4\u4f7f\u752832K\u5927\u5c0f:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nclient# netperf -t TCP_RR -H 192.168.1.230 -l 30 -- -r 2048,32768\r\nTCP REQUEST\/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to\r\n192.168.1.230 (192.168.1.230) port 0 AF_INET\r\nLocal \/Remote\r\nSocket Size Request Resp. Elapsed Trans.\r\nSend Recv Size Size Time Rate\r\nbytes Bytes bytes bytes secs. per sec\r\n16384 87380 2048 32768 30.00 222.37\r\n16384 87380\r\n<\/pre>\n<p>\u8fd9\u4e2a\u5904\u7406\u901f\u7387\u51cf\u5c11\u5230\u4e86\u6bcf\u79d2222.<\/p>\n<p>8.2.2 \u4f7f\u7528iperf \u8bc4\u4f30\u7f51\u7edc\u6548\u7387<\/p>\n<p>\u57fa\u4e8e\u90fd\u662f\u9700\u8981\u57282\u7aef\u68c0\u67e5\u8fde\u63a5\u60c5\u51b5\u4e0b,iperf \u548cnetperf \u5f88\u76f8\u4f3c.\u4e0d\u540c\u7684\u662f,iperf \u66f4\u6df1\u5165\u7684\u901a\u8fc7windows size\u548cQOS \u8bbe\u5907\u6765\u68c0\u67e5TCP\/UDP \u7684\u6548\u7387\u60c5\u51b5.\u8fd9\u4e2a\u5de5\u5177,\u662f\u7ed9\u9700\u8981\u4f18\u5316TCP\/IP stacks\u4ee5\u53ca\u6d4b\u8bd5\u8fd9\u4e9bstacks \u6548\u7387\u7684\u7ba1\u7406\u5458\u4eec\u91cf\u8eab\u5b9a\u505a\u7684.<br \/>\niperf \u4f5c\u4e3a\u4e00\u4e2a\u4e8c\u8fdb\u5236\u7a0b\u5e8f,\u53ef\u8fd0\u884c\u5728server \u6216\u8005client \u4efb\u4e00\u6a21\u5f0f\u4e0b.\u9ed8\u8ba4\u4f7f\u752850001 \u7aef\u53e3.<br \/>\n\u9996\u5148\u542f\u52a8server \u7aef(192.168.1.215):<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nserver# iperf -s -D\r\nRunning Iperf Server as a daemon\r\nThe Iperf daemon process ID : 3655\r\n------------------------------------------------------------\r\nServer listening on TCP port 5001\r\nTCP window size: 85.3 KByte (default)\r\n------------------------------------------------------------\r\n<\/pre>\n<p>\u5728\u4ee5\u4e0b\u4f8b\u5b50\u91cc,\u4e00\u4e2a\u65e0\u7ebf\u7f51\u7edc\u73af\u5883\u4e0b,\u5176\u4e2dclient \u7aef\u91cd\u590d\u8fd0\u884ciperf,\u7528\u4e8e\u6d4b\u8bd5\u7f51\u7edc\u7684\u541e\u5410\u91cf\u60c5\u51b5.\u8fd9\u4e2a\u73af\u5883\u5047\u5b9a\u5904\u4e8e\u88ab\u5145\u5206\u5229\u7528\u72b6\u6001,\u5f88\u591a\u4e3b\u673a\u90fd\u5728\u4e0b\u8f7dISO images\u6587\u4ef6.<br \/>\n\u9996\u5148client \u7aef\u8fde\u63a5\u5230server \u7aef(192.168.1.215),\u5e76\u5728\u603b\u8ba160\u79d2\u65f6\u95f4\u5185,\u6bcf5\u79d2\u8fdb\u884c\u4e00\u6b21\u5e26\u5bbd\u6d4b\u8bd5\u7684\u91c7\u6837.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nclient# iperf -c 192.168.1.215 -t 60 -i 5\r\n------------------------------------------------------------\r\nClient connecting to 192.168.1.215, TCP port 5001\r\nTCP window size: 25.6 KByte (default)\r\n------------------------------------------------------------\r\n&#x5B; 3] local 192.168.224.150 port 51978 connected with\r\n192.168.1.215 port 5001\r\n&#x5B; ID] Interval Transfer Bandwidth\r\n&#x5B; 3] 0.0- 5.0 sec 6.22 MBytes 10.4 Mbits\/sec\r\n&#x5B; ID] Interval Transfer Bandwidth\r\n&#x5B; 3] 5.0-10.0 sec 6.05 MBytes 10.1 Mbits\/sec\r\n&#x5B; ID] Interval Transfer Bandwidth\r\n&#x5B; 3] 10.0-15.0 sec 5.55 MBytes 9.32 Mbits\/sec\r\n&#x5B; ID] Interval Transfer Bandwidth\r\n&#x5B; 3] 15.0-20.0 sec 5.19 MBytes 8.70 Mbits\/sec\r\n&#x5B; ID] Interval Transfer Bandwidth\r\n&#x5B; 3] 20.0-25.0 sec 4.95 MBytes 8.30 Mbits\/sec\r\n&#x5B; ID] Interval Transfer Bandwidth\r\n&#x5B; 3] 25.0-30.0 sec 5.21 MBytes 8.74 Mbits\/sec\r\n&#x5B; ID] Interval Transfer Bandwidth\r\n&#x5B; 3] 30.0-35.0 sec 2.55 MBytes 4.29 Mbits\/sec\r\n&#x5B; ID] Interval Transfer Bandwidth\r\n&#x5B; 3] 35.0-40.0 sec 5.87 MBytes 9.84 Mbits\/sec\r\n&#x5B; ID] Interval Transfer Bandwidth\r\n&#x5B; 3] 40.0-45.0 sec 5.69 MBytes 9.54 Mbits\/sec\r\n&#x5B; ID] Interval Transfer Bandwidth\r\n&#x5B; 3] 45.0-50.0 sec 5.64 MBytes 9.46 Mbits\/sec\r\n&#x5B; ID] Interval Transfer Bandwidth\r\n&#x5B; 3] 50.0-55.0 sec 4.55 MBytes 7.64 Mbits\/sec\r\n&#x5B; ID] Interval Transfer Bandwidth\r\n&#x5B; 3] 55.0-60.0 sec 4.47 MBytes 7.50 Mbits\/sec\r\n&#x5B; ID] Interval Transfer Bandwidth\r\n&#x5B; 3] 0.0-60.0 sec 61.9 MBytes 8.66 Mbits\/sec\r\n<\/pre>\n<p>\u8fd9\u53f0\u4e3b\u673a\u7684\u5176\u4ed6\u7f51\u7edc\u4f20\u8f93,\u4e5f\u4f1a\u5f71\u54cd\u5230\u8fd9\u90e8\u5206\u7684\u5e26\u5bbd\u91c7\u6837.\u6240\u4ee5\u53ef\u4ee5\u770b\u5230\u603b\u8ba160\u79d2\u65f6\u95f4\u5185,\u90fd\u57284 \u2013 10 MBits \u4e0a\u4e0b\u8d77\u4f0f.<br \/>\n\u9664\u4e86TCP \u6d4b\u8bd5\u4e4b\u5916,iperf \u7684UDP \u6d4b\u8bd5\u4e3b\u8981\u662f\u8bc4\u4f30\u5305\u4e22\u5931\u548c\u6296\u52a8.<br \/>\n\u63a5\u4e0b\u6765\u7684iperf \u6d4b\u8bd5,\u662f\u5728\u540c\u6837\u768454Mbit G\u6807\u51c6\u65e0\u7ebf\u7f51\u7edc\u4e2d.\u5728\u65e9\u671f\u7684\u793a\u8303\u4f8b\u5b50\u4e2d,\u76ee\u524d\u7684\u541e\u5410\u91cf\u53ea\u67099 Mbits.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n# iperf -c 192.168.1.215 -b 10M\r\nWARNING: option -b implies udp testing\r\n------------------------------------------------------------\r\nClient connecting to 192.168.1.215, UDP port 5001\r\nSending 1470 byte datagrams\r\nUDP buffer size: 107 KByte (default)\r\n------------------------------------------------------------\r\n&#x5B; 3] local 192.168.224.150 port 33589 connected with 192.168.1.215 port 5001\r\n&#x5B; ID] Interval Transfer Bandwidth\r\n&#x5B; 3] 0.0-10.0 sec 11.8 MBytes 9.90 Mbits\/sec\r\n&#x5B; 3] Sent 8420 datagrams\r\n&#x5B; 3] Server Report:\r\n&#x5B; ID] Interval Transfer Bandwidth Jitter Lost\/Total Datagrams\r\n&#x5B; 3] 0.0-10.0 sec 6.50 MBytes 5.45 Mbits\/sec 0.480 ms 3784\/ 8419 (45%)\r\n&#x5B; 3] 0.0-10.0 sec 1 datagrams received out-of-order\r\n<\/pre>\n<p>\u4ece\u8f93\u51fa\u4e2d\u53ef\u770b\u51fa,\u5728\u5c1d\u8bd5\u4f20\u8f9310M \u7684\u6570\u636e\u65f6,\u5b9e\u9645\u4e0a\u53ea\u4ea7\u751f\u4e865.45M.\u5374\u670945% \u7684\u5305\u4e22\u5931.<\/p>\n<p>8.3 Individual Connections with tcptrace<\/p>\n<p>tcptrace \u5de5\u5177\u63d0\u4f9b\u4e86\u5bf9\u4e8e\u67d0\u4e00\u5177\u4f53\u8fde\u63a5\u91cc,\u8be6\u7ec6\u7684TCP \u76f8\u5173\u4fe1\u606f.\u8be5\u5de5\u5177\u4f7f\u7528libcap \u6765\u5206\u6790\u67d0\u4e00\u5177\u4f53TCP sessions.\u8be5\u5de5\u5177\u6c47\u62a5\u7684\u4fe1\u606f,\u6709\u65f6\u5f88\u96be\u5728\u67d0\u4e00TCP stream\u88ab\u53d1\u73b0.\u8fd9\u4e9b\u4fe1\u606f<br \/>\n\u5305\u62ec\u4e86\u6709:<\/p>\n<p>1,TCP Retransmissions(\u8bd1\u6ce8:IP \u8f6c\u64ad) \u2013 \u6240\u6709\u6570\u636e\u5927\u5c0f\u88ab\u53d1\u9001\u6240\u9700\u7684\u5305\u603b\u989d<br \/>\n2,TCP Windows Sizes \u2013 \u8fde\u63a5\u901f\u5ea6\u6162\u4e0e\u5c0f\u7684windows sizes \u6709\u5173<br \/>\n3,Total throughput of the connection \u2013 \u8fde\u63a5\u7684\u541e\u5410\u91cf<br \/>\n4,Connection duration \u2013 \u8fde\u63a5\u7684\u6301\u7eed\u65f6\u95f4<\/p>\n<p>8.3.1 \u6848\u4f8b\u5b66\u4e60 \u2013 \u4f7f\u7528tcptrace<\/p>\n<p>tcptrace \u5de5\u5177\u53ef\u80fd\u5df2\u7ecf\u5728\u90e8\u5206Linux \u53d1\u5e03\u7248\u4e2d\u6709\u5b89\u88c5\u5305\u4e86,\u8be5\u6587\u4f5c\u8005\u901a\u8fc7\u7f51\u7ad9,\u4e0b\u8f7d\u7684\u662f\u6e90\u7801\u5b89\u88c5\u5305:http:\/\/dag.wieers.com\/rpm\/packages \/tcptrace.tcptrace \u9700\u8981libcap \u57fa\u4e8e\u6587\u4ef6\u8f93\u5165\u65b9\u5f0f\u4f7f\u7528.\u5728tcptrace \u6ca1\u6709\u9009\u9879\u7684\u60c5\u51b5\u4e0b,\u9ed8\u8ba4\u6bcf\u4e2a\u552f\u4e00\u7684\u8fde\u63a5\u8fc7\u7a0b\u90fd\u5c06\u88ab\u6355\u83b7.<br \/>\n\u4ee5\u4e0b\u4f8b\u5b50\u662f,\u4f7f\u7528libcap \u57fa\u4e8e\u8f93\u5165\u6587\u4ef6\u4e3abigstuff:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n# tcptrace bigstuff\r\n1 arg remaining, starting with 'bigstuff'\r\nOstermann's tcptrace -- version 6.6.7 -- Thu Nov 4, 2004\r\n146108 packets seen, 145992 TCP packets traced\r\nelapsed wallclock time: 0:00:01.634065, 89413 pkts\/sec analyzed\r\ntrace file elapsed time: 0:09:20.358860\r\nTCP connection info:\r\n1: 192.168.1.60:pcanywherestat - 192.168.1.102:2571 (a2b) 404&gt; 450&lt;\r\n2: 192.168.1.60:3356 - ftp.strongmail.net:21 (c2d) 35&gt; 21&lt;\r\n3: 192.168.1.60:3825 - ftp.strongmail.net:65023 (e2f) 5&gt; 4&lt;\r\n(complete)\r\n4: 192.168.1.102:1339 - 205.188.8.194:5190 (g2h) 6&gt; 6&lt;\r\n5: 192.168.1.102:1490 - cs127.msg.mud.yahoo.com:5050 (i2j) 5&gt; 5&lt;\r\n6: py-in-f111.google.com:993 - 192.168.1.102:3785 (k2l) 13&gt; 14&lt;\r\n<\/pre>\n<p>\u4e0a\u9762\u7684\u8f93\u51fa\u4e2d,\u6bcf\u4e2a\u8fde\u63a5\u90fd\u6709\u5bf9\u5e94\u7684\u6e90\u4e3b\u673a\u548c\u76ee\u7684\u4e3b\u673a.tcptrace \u4f7f\u7528-l \u548c-o \u9009\u9879\u53ef\u67e5\u770b\u67d0\u4e00\u8fde\u63a5\u66f4\u8be6\u7ec6\u7684\u6570\u636e.<br \/>\n\u4ee5\u4e0b\u7684\u7ed3\u679c,\u5c31\u662f\u5728bigstuff \u6587\u4ef6\u4e2d,#16 \u8fde\u63a5\u7684\u76f8\u5173\u7edf\u8ba1\u6570\u636e:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n# tcptrace -l -o1 bigstuff\r\n1 arg remaining, starting with 'bigstuff'\r\nOstermann's tcptrace -- version 6.6.7 -- Thu Nov 4, 2004\r\n146108 packets seen, 145992 TCP packets traced\r\nelapsed wallclock time: 0:00:00.529361, 276008 pkts\/sec analyzed\r\ntrace file elapsed time: 0:09:20.358860\r\nTCP connection info:\r\n32 TCP connections traced:\r\nTCP connection 1:\r\nhost a: 192.168.1.60:pcanywherestat\r\nhost b: 192.168.1.102:2571\r\ncomplete conn: no (SYNs: 0) (FINs: 0)\r\nfirst packet: Sun Jul 20 15:58:05.472983 2008\r\nlast packet: Sun Jul 20 16:00:04.564716 2008\r\nelapsed time: 0:01:59.091733\r\ntotal packets: 854\r\nfilename: bigstuff\r\na-&gt;b: b-&gt;a:\r\ntotal packets: 404 total packets: 450\r\nack pkts sent: 404 ack pkts sent: 450\r\npure acks sent: 13 pure acks sent: 320\r\nsack pkts sent: 0 sack pkts sent: 0\r\ndsack pkts sent: 0 dsack pkts sent: 0\r\nmax sack blks\/ack: 0 max sack blks\/ack: 0\r\nunique bytes sent: 52608 unique bytes sent: 10624\r\nactual data pkts: 391 actual data pkts: 130\r\nactual data bytes: 52608 actual data bytes: 10624\r\nrexmt data pkts: 0 rexmt data pkts: 0\r\nrexmt data bytes: 0 rexmt data bytes: 0\r\nzwnd probe pkts: 0 zwnd probe pkts: 0\r\nzwnd probe bytes: 0 zwnd probe bytes: 0\r\noutoforder pkts: 0 outoforder pkts: 0\r\npushed data pkts: 391 pushed data pkts: 130\r\nSYN\/FIN pkts sent: 0\/0 SYN\/FIN pkts sent: 0\/0\r\nurgent data pkts: 0 pkts urgent data pkts: 0 pkts\r\nurgent data bytes: 0 bytes urgent data bytes: 0 bytes\r\nmss requested: 0 bytes mss requested: 0 bytes\r\nmax segm size: 560 bytes max segm size: 176 bytes\r\nmin segm size: 48 bytes min segm size: 80 bytes\r\navg segm size: 134 bytes avg segm size: 81 bytes\r\nmax win adv: 19584 bytes max win adv: 65535 bytes\r\nmin win adv: 19584 bytes min win adv: 64287 bytes\r\nzero win adv: 0 times zero win adv: 0 times\r\navg win adv: 19584 bytes avg win adv: 64949 bytes\r\ninitial window: 160 bytes initial window: 0 bytes\r\ninitial window: 2 pkts initial window: 0 pkts\r\nttl stream length: NA ttl stream length: NA\r\nmissed data: NA missed data: NA\r\ntruncated data: 36186 bytes truncated data: 5164 bytes\r\ntruncated packets: 391 pkts truncated packets: 130 pkts\r\ndata xmit time: 119.092 secs data xmit time: 116.954 secs\r\nidletime max: 441267.1 ms idletime max: 441506.3 ms\r\nthroughput: 442 Bps throughput: 89 Bps\r\n<\/pre>\n<p>8.3.2 \u6848\u4f8b\u5b66\u4e60 \u2013 \u8ba1\u7b97\u8f6c\u64ad\u7387<\/p>\n<p>\u51e0\u4e4e\u4e0d\u53ef\u80fd\u786e\u5b9a\u8bf4\u54ea\u4e2a\u8fde\u63a5\u4f1a\u6709\u4e25\u91cd\u4e0d\u8db3\u7684\u8f6c\u64ad\u95ee\u9898,\u53ea\u662f\u9700\u8981\u5206\u6790,\u4f7f\u7528tcptrace \u5de5\u5177\u53ef\u4ee5\u901a\u8fc7\u8fc7\u6ee4\u673a\u5236\u548c\u5e03\u5c14\u8868\u8fbe\u5f0f\u6765\u627e\u51fa\u51fa\u95ee\u9898\u7684\u8fde\u63a5.\u4e00\u4e2a\u5f88\u7e41\u5fd9\u7684\u7f51\u7edc\u4e2d,\u4f1a\u6709\u5f88\u591a\u7684\u8fde\u63a5,\u51e0\u4e4e\u6240\u6709\u7684\u8fde\u63a5\u90fd\u4f1a\u6709\u8f6c\u64ad.\u627e\u51fa\u5176\u4e2d\u6700\u591a\u7684\u4e00\u4e2a,\u8fd9\u5c31\u662f\u95ee\u9898\u7684\u5173\u952e.<br \/>\n\u4e0b\u9762\u7684\u4f8b\u5b50\u91cc,tcptrace \u5c06\u627e\u51fa\u90a3\u4e9b\u8f6c\u64ad\u5927\u4e8e100 segments(\u8bd1\u6ce8:\u5206\u6bb5\u6570)\u7684\u8fde\u63a5:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n# tcptrace -f'rexmit_segs&gt;100' bigstuff\r\nOutput filter: ((c_rexmit_segs&gt;100)OR(s_rexmit_segs&gt;100))\r\n1 arg remaining, starting with 'bigstuff'\r\nOstermann's tcptrace -- version 6.6.7 -- Thu Nov 4, 2004\r\n146108 packets seen, 145992 TCP packets traced\r\nelapsed wallclock time: 0:00:00.687788, 212431 pkts\/sec analyzed\r\ntrace file elapsed time: 0:09:20.358860\r\nTCP connection info:\r\n16: ftp.strongmail.net:65014 - 192.168.1.60:2158 (ae2af) 18695&gt; 9817&lt;\r\n<\/pre>\n<p>\u5728\u8fd9\u4e2a\u8f93\u51fa\u4e2d,\u662f#16 \u8fd9\u4e2a\u8fde\u63a5\u91cc,\u8d85\u8fc7\u4e86100 \u8f6c\u64ad.\u73b0\u5728,\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u67e5\u770b\u5173\u4e8e\u8fd9\u4e2a\u8fde\u63a5\u7684\u5176\u4ed6\u4fe1\u606f:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n# tcptrace -l -o16 bigstuff\r\narg remaining, starting with 'bigstuff'\r\nOstermann's tcptrace -- version 6.6.7 -- Thu Nov 4, 2004\r\n146108 packets seen, 145992 TCP packets traced\r\nelapsed wallclock time: 0:00:01.355964, 107752 pkts\/sec analyzed\r\ntrace file elapsed time: 0:09:20.358860\r\nTCP connection info:\r\n32 TCP connections traced:\r\n================================\r\nTCP connection 16:\r\nhost ae: ftp.strongmail.net:65014\r\nhost af: 192.168.1.60:2158\r\ncomplete conn: no (SYNs: 0) (FINs: 1)\r\nfirst packet: Sun Jul 20 16:04:33.257606 2008\r\nlast packet: Sun Jul 20 16:07:22.317987 2008\r\nelapsed time: 0:02:49.060381\r\ntotal packets: 28512\r\nfilename: bigstuff\r\nae-&gt;af: af-&gt;ae:\r\nunique bytes sent: 25534744 unique bytes sent: 0\r\nactual data pkts: 18695 actual data pkts: 0\r\nactual data bytes: 25556632 actual data bytes: 0\r\nrexmt data pkts: 1605 rexmt data pkts: 0\r\nrexmt data bytes: 2188780 rexmt data bytes: 0\r\n<\/pre>\n<p>\u8ba1\u7b97\u8f6c\u64ad\u7387:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nrexmt\/actual * 100 = Retransmission rate\r\n1605\/18695* 100 = 8.5%\r\n<\/pre>\n<p>\u8fd9\u4e2a\u6162\u8fde\u63a5\u7684\u539f\u56e0,\u5c31\u662f\u56e0\u4e3a\u5b83\u67098.5% \u7684\u8f6c\u64ad\u7387.<\/p>\n<p>8.3.3 \u6848\u4f8b\u5b66\u4e60 \u2013 \u8ba1\u7b97\u8f6c\u64ad\u65f6\u95f4<\/p>\n<p>tcptrace \u5de5\u5177\u6709\u4e00\u7cfb\u5217\u7684\u6a21\u5757\u5c55\u793a\u4e0d\u540c\u7684\u6570\u636e,\u6309\u7167\u5c5e\u6027,\u5176\u4e2d\u5c31\u6709protocol(\u8bd1\u6ce8:\u534f\u8bae),port(\u8bd1\u6ce8:\u7aef\u53e3),time\u7b49\u7b49.Slice module\u4f7f\u5f97\u4f60\u53ef\u89c2\u5bdf\u5728\u4e00\u6bb5\u65f6\u95f4\u5185\u7684TCP \u6027\u80fd.\u4f60\u53ef\u4ee5\u5728\u4e00\u7cfb\u5217\u7684\u8f6c\u53d1\u8fc7\u7a0b\u4e2d,\u67e5\u770b\u5176\u4ed6\u6027\u80fd\u6570\u636e,\u4ee5\u786e\u5b9a\u627e\u51fa\u74f6\u9888.<br \/>\n\u4ee5\u4e0b\u4f8b\u5b50\u793a\u8303\u4e86,tcptrace \u662f\u600e\u6837\u4f7f\u7528slice \u6a21\u5f0f\u7684:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n# tcptrace \u2013xslice bigfile\r\n<\/pre>\n<p>\u4ee5\u4e0a\u547d\u4ee4\u4f1a\u521b\u5efa\u4e00\u4e2aslice.dat \u6587\u4ef6\u5728\u73b0\u5728\u7684\u5de5\u4f5c\u76ee\u5f55\u4e2d.\u8fd9\u4e2a\u6587\u4ef6\u5185\u5bb9,\u5305\u542b\u662f\u6bcf15\u79d2\u95f4\u9694\u5185\u8f6c\u64ad\u7684\u76f8\u5173\u4fe1\u606f:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n# ls -l slice.dat\r\n-rw-r--r-- 1 root root 3430 Jul 10 22:50 slice.dat\r\n# more slice.dat\r\ndate segs bytes rexsegs rexbytes new active\r\n--------------- -------- -------- -------- -------- -------- --------\r\n22:19:41.913288 46 5672 0 0 1 1\r\n22:19:56.913288 131 25688 0 0 0 1\r\n22:20:11.913288 0 0 0 0 0 0\r\n22:20:26.913288 5975 4871128 0 0 0 1\r\n22:20:41.913288 31049 25307256 0 0 0 1\r\n22:20:56.913288 23077 19123956 40 59452 0 1\r\n22:21:11.913288 26357 21624373 5 7500 0 1\r\n22:21:26.913288 20975 17248491 3 4500 12 13\r\n22:21:41.913288 24234 19849503 10 15000 3 5\r\n22:21:56.913288 27090 22269230 36 53999 0 2\r\n22:22:11.913288 22295 18315923 9 12856 0 2\r\n22:22:26.913288 8858 7304603 3 4500 0 1\r\n<\/pre>\n<p>8.4 \u7ed3\u8bba<\/p>\n<p>\u76d1\u63a7\u7f51\u7edc\u6027\u80fd\u7531\u4ee5\u4e0b\u51e0\u4e2a\u90e8\u5206\u7ec4\u6210:<br \/>\n1,\u68c0\u67e5\u5e76\u786e\u5b9a\u6240\u6709\u7f51\u5361\u90fd\u5de5\u4f5c\u5728\u6b63\u786e\u7684\u901f\u7387.<br \/>\n2,\u68c0\u67e5\u6bcf\u5757\u7f51\u5361\u7684\u541e\u5410\u91cf,\u5e76\u786e\u8ba4\u5176\u5904\u4e8e\u670d\u52a1\u65f6\u7684\u7f51\u7edc\u901f\u5ea6.<br \/>\n3,\u76d1\u63a7\u7f51\u7edc\u6d41\u91cf\u7684\u7c7b\u578b,\u5e76\u786e\u5b9a\u9002\u5f53\u7684\u6d41\u91cf\u4f18\u5148\u7ea7\u7b56\u7565.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>8.0 Network \u76d1\u63a7\u4ecb\u7ecd \u5728\u6240\u6709\u7684\u5b50\u7cfb\u7edf\u76d1\u63a7\u4e2d,\u7f51\u7edc\u662f\u6700\u56f0\u96be\u7684.\u8fd9\u4e3b\u8981\u662f\u7531\u4e8e\u7f51\u7edc\u6982\u5ff5\u5f88\u62bd\u8c61.\u5f53\u76d1\u63a7\u7cfb\u7edf [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-2076","post","type-post","status-publish","format-standard","hentry","category-skill"],"_links":{"self":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts\/2076","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/comments?post=2076"}],"version-history":[{"count":2,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts\/2076\/revisions"}],"predecessor-version":[{"id":5012,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts\/2076\/revisions\/5012"}],"wp:attachment":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/media?parent=2076"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/categories?post=2076"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/tags?post=2076"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}