鐢變簬TCP鍗忚鑳藉鎻愪緵绔埌绔殑鍙潬浼犺緭錛屽洜姝よ澶ч噺鐨勭綉緇滃簲鐢ㄧ▼搴忎嬌鐢ㄣ€備絾鏄紝鍙潬鎬х殑寤虹珛鏄浠樺嚭浠d環(huán)鐨勩€俆CP鍗忚淇濊瘉鍙潬鎬х殑鎺柦錛屽寤虹珛騫剁淮鎶よ繛鎺ャ€佹帶鍒舵暟鎹湁搴忕殑浼犻€掔瓑閮戒細(xì)娑堣€椾竴瀹氱殑緗戠粶甯﹀銆?/p>
Netperf鍙互妯℃嫙涓夌涓嶅悓鐨凾CP嫻侀噺妯″紡錛?/p>
1錛?鍗曚釜TCP榪炴帴錛屾壒閲忥紙bulk錛変紶杈撳ぇ閲忔暟鎹?/p>
2錛?鍗曚釜TCP榪炴帴錛宑lient璇鋒眰/server搴旂瓟鐨勪氦鏄擄紙transaction錛夋柟寮?/p>
3錛?澶氫釜TCP榪炴帴錛屾瘡涓繛鎺ヤ腑涓€瀵硅姹?搴旂瓟鐨勪氦鏄撴柟寮?/p>
UDP娌℃湁寤虹珛榪炴帴鐨勮礋鎷咃紝浣嗘槸UDP涓嶈兘淇濊瘉浼犺緭鐨勫彲闈犳€э紝鎵€浠ヤ嬌鐢║DP鐨勫簲鐢ㄧ▼搴忛渶瑕佽嚜琛岃窡韙瘡涓彂鍑虹殑鍒嗙粍錛屽茍閲嶅彂涓㈠け鐨勫垎緇勩€?/p>
Netperf鍙互妯℃嫙涓ょUDP鐨勬祦閲忔ā寮忥細(xì)
1錛?浠巆lient鍒皊erver鐨勫崟鍚戞壒閲忎紶杈?/p>
2錛?璇鋒眰/搴旂瓟鐨勪氦鏄撴柟寮?/p>
鐢變簬UDP浼犺緭鐨勪笉鍙潬鎬э紝鍦ㄤ嬌鐢╪etperf鏃惰紜繚鍙戦€佺殑緙撳啿鍖哄ぇ灝忎笉澶т簬鎺ユ敹緙撳啿鍖哄ぇ灝忥紝鍚﹀垯鏁版嵁浼?xì)涓㈠け锛宯etperf灝嗙粰鍑洪敊璇殑緇撴灉銆傚洜姝わ紝瀵逛簬鎺ユ敹鍒板垎緇勭殑緇熻涓嶄竴瀹氬噯紜紝闇€瑕佺粨鍚堝彂閫佸垎緇勭殑緇熻緇煎悎寰楀嚭緇撹銆?/p>
鍦╱nix緋葷粺涓紝鍙互鐩存帴榪愯鍙墽琛岀▼搴忔潵鍚姩netserver錛屼篃鍙互璁﹊netd鎴杧inetd鏉ヨ嚜鍔ㄥ惎鍔╪etserver銆?/p>
褰搉etserver鍦╯erver绔惎鍔ㄤ互鍚庯紝灝卞彲浠ュ湪client绔繍琛宯etperf鏉ユ祴璇曠綉緇滅殑鎬ц兘銆俷etperf閫氳繃鍛戒護(hù)琛屽弬鏁版潵鎺у埗嫻嬭瘯鐨勭被鍨嬪拰鍏蜂綋鐨勬祴璇曢€夐」銆傛牴鎹綔鐢ㄨ寖鍥寸殑涓嶅悓錛宯etperf鐨勫懡浠よ鍙傛暟鍙互鍒嗕負(fù)涓ゅぇ綾伙細(xì)鍏ㄥ眬鍛戒護(hù)琛屽弬鏁般€佹祴璇曠浉鍏崇殑灞€閮ㄥ弬鏁幫紝涓よ€呬箣闂翠嬌鐢?-鍒嗛殧錛?/p>
netperf [global options]-- [test-specific options] |
榪欓噷鎴戜滑鍙В閲婇偅浜涘父鐢ㄧ殑鍛戒護(hù)琛屽弬鏁幫紝鍏跺畠鐨勫弬鏁拌鑰呭彲浠ユ煡璇etperf鐨刴an鎵嬪唽銆?/p>
-H host 錛氭寚瀹氳繙绔繍琛宯etserver鐨剆erver IP鍦板潃銆?/p>
-l testlen錛氭寚瀹氭祴璇曠殑鏃墮棿闀垮害錛堢錛?/p>
-t testname錛氭寚瀹氳繘琛岀殑嫻嬭瘯綾誨瀷錛屽寘鎷琓CP_STREAM錛孶DP_STREAM錛孴CP_RR錛孴CP_CRR錛孶DP_RR錛屽湪涓嬫枃涓垎鍒瀹冧滑璇存槑銆?/p>
鍦ㄥ悗闈㈢殑嫻嬭瘯涓紝netserver榪愯鍦?92.168.0.28錛宻erver涓巆lient閫氳繃灞€鍩熺綉榪炴帴錛?00M Hub錛夈€?/p>
嫻嬭瘯鎵歸噺錛坆ulk錛夌綉緇滄祦閲忕殑鎬ц兘
鎵歸噺鏁版嵁浼犺緭鍏稿瀷鐨勪緥瀛愭湁ftp鍜屽叾瀹冪被浼肩殑緗戠粶搴旂敤錛堝嵆涓€嬈′紶杈撴暣涓枃浠訛級銆傛牴鎹嬌鐢ㄤ紶杈撳崗璁殑涓嶅悓錛屾壒閲忔暟鎹紶杈撳張鍒嗕負(fù)TCP鎵歸噺浼犺緭鍜孶DP鎵歸噺浼犺緭銆?/p>
1錛?TCP_STREAM
Netperf緙虹渷鎯呭喌涓嬭繘琛孴CP鎵歸噺浼犺緭錛屽嵆-t TCP_STREAM銆傛祴璇曡繃紼嬩腑錛宯etperf鍚憂etserver鍙戦€佹壒閲忕殑TCP鏁版嵁鍒嗙粍錛屼互紜畾鏁版嵁浼犺緭榪囩▼涓殑鍚炲悙閲忥細(xì)
./netperf -H 192.168.0.28 -l 60 TCP STREAM TEST to 192.168.0.28 Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^6bits/sec 87380 16384 16384 60.00 88.00 |
浠巒etperf鐨勭粨鏋滆緭鍑轟腑錛屾垜浠彲浠ョ煡閬撲互涓嬬殑涓€浜涗俊鎭細(xì)
1錛?榪滅緋葷粺錛堝嵆server錛変嬌鐢ㄥぇ灝忎負(fù)87380瀛楄妭鐨剆ocket鎺ユ敹緙撳啿
2錛?鏈湴緋葷粺錛堝嵆client錛変嬌鐢ㄥぇ灝忎負(fù)16384瀛楄妭鐨剆ocket鍙戦€佺紦鍐?/p>
3錛?鍚戣繙绔郴緇熷彂閫佺殑嫻嬭瘯鍒嗙粍澶у皬涓?6384瀛楄妭
4錛?嫻嬭瘯緇忓巻鐨勬椂闂翠負(fù)60縐?/p>
5錛?鍚炲悙閲忕殑嫻嬭瘯緇撴灉涓?8Mbits/縐?/p>
鍦ㄧ己鐪佹儏鍐典笅錛宯etperf鍚戝彂閫佺殑嫻嬭瘯鍒嗙粍澶у皬璁劇疆涓烘湰鍦扮郴緇熸墍浣跨敤鐨剆ocket鍙戦€佺紦鍐插ぇ灝忋€?/p>
TCP_STREAM鏂瑰紡涓嬩笌嫻嬭瘯鐩稿叧鐨勫眬閮ㄥ弬鏁板涓嬭〃鎵€紺猴細(xì)
鍙傛暟 | 璇存槑 |
-s size | 璁劇疆鏈湴緋葷粺鐨剆ocket鍙戦€佷笌鎺ユ敹緙撳啿澶у皬 |
-S size | 璁劇疆榪滅緋葷粺鐨剆ocket鍙戦€佷笌鎺ユ敹緙撳啿澶у皬 |
-m size | 璁劇疆鏈湴緋葷粺鍙戦€佹祴璇曞垎緇勭殑澶у皬 |
-M size | 璁劇疆榪滅緋葷粺鎺ユ敹嫻嬭瘯鍒嗙粍鐨勫ぇ灝?/td> |
-D | 瀵規(guī)湰鍦頒笌榪滅緋葷粺鐨剆ocket璁劇疆TCP_NODELAY閫夐」 |
閫氳繃淇敼浠ヤ笂鐨勫弬鏁幫紝騫惰瀵熺粨鏋滅殑鍙樺寲錛屾垜浠彲浠ョ‘瀹氭槸浠€涔堝洜绱犲獎(jiǎng)鍝嶄簡榪炴帴鐨勫悶鍚愰噺銆備緥濡傦紝濡傛灉鎬€鐤戣礬鐢卞櫒鐢變簬緙轟箯瓚沖鐨勭紦鍐插尯絀洪棿錛屼嬌寰楄漿鍙戝ぇ鐨勫垎緇勬椂瀛樺湪闂錛屽氨鍙互澧炲姞嫻嬭瘯鍒嗙粍錛?m錛夌殑澶у皬錛屼互瑙傚療鍚炲悙閲忕殑鍙樺寲錛?/p>
./netperf -H 192.168.0.28 -l 60 -- -m 2048 TCP STREAM TEST to 192.168.0.28 Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^6bits/sec 87380 16384 2048 60.00 87.62 |
鍦ㄨ繖閲岋紝嫻嬭瘯鍒嗙粍鐨勫ぇ灝忓噺灝戝埌2048瀛楄妭錛岃€屽悶鍚愰噺鍗存病鏈夊緢澶х殑鍙樺寲錛堜笌鍓嶉潰渚嬪瓙涓祴璇曞垎緇勫ぇ灝忎負(fù)16K瀛楄妭鐩告瘮錛夈€傜浉鍙嶏紝濡傛灉鍚炲悙閲忔湁浜嗚緝澶х殑鎻愬崌錛屽垯璇存槑鍦ㄧ綉緇滀腑闂寸殑璺敱鍣ㄧ‘瀹炲瓨鍦ㄧ紦鍐插尯鐨勯棶棰樸€?/p>
2錛?UDP_STREAM
UDP_STREAM鐢ㄦ潵嫻嬭瘯榪涜UDP鎵歸噺浼犺緭鏃剁殑緗戠粶鎬ц兘銆傞渶瑕佺壒鍒敞鎰忕殑鏄紝姝ゆ椂嫻嬭瘯鍒嗙粍鐨勫ぇ灝忎笉寰楀ぇ浜巗ocket鐨勫彂閫佷笌鎺ユ敹緙撳啿澶у皬錛屽惁鍒檔etperf浼?xì)鎶ュ嚭閿欐彁绀哄Q?/p>
./netperf -t UDP_STREAM -H 192.168.0.28 -l 60 UDP UNIDIRECTIONAL SEND TEST to 192.168.0.28 udp_send: data send error: Message too long |
涓轟簡閬垮厤榪欐牱鐨勬儏鍐碉紝鍙互閫氳繃鍛戒護(hù)琛屽弬鏁伴檺瀹氭祴璇曞垎緇勭殑澶у皬錛屾垨鑰呭鍔爏ocket鐨勫彂閫?鎺ユ敹緙撳啿澶у皬銆俇DP_STREAM鏂瑰紡浣跨敤涓嶵CP_STREAM鏂瑰紡鐩稿悓鐨勫眬閮ㄥ懡浠よ鍙傛暟錛屽洜姝わ紝榪欓噷鍙互浣跨敤-m鏉ヤ慨鏀規(guī)祴璇曚腑浣跨敤鍒嗙粍鐨勫ぇ灝忥細(xì)
./netperf -t UDP_STREAM -H 192.168.0.28 -- -m 1024 UDP UNIDIRECTIONAL SEND TEST to 192.168.0.28 Socket Message Elapsed Messages Size Size Time Okay Errors Throughput bytes bytes secs # # 10^6bits/sec 65535 1024 9.99 114127 0 93.55 65535 9.99 114122 93.54 |
UDP_STREAM鏂瑰紡鐨勭粨鏋滀腑鏈変袱琛屾祴璇曟暟鎹紝絎竴琛屾樉紺虹殑鏄湰鍦扮郴緇熺殑鍙戦€佺粺璁★紝榪欓噷鐨勫悶鍚愰噺琛ㄧずnetperf鍚戞湰鍦皊ocket鍙戦€佸垎緇勭殑鑳藉姏銆備絾鏄紝鎴戜滑鐭ラ亾錛孶DP鏄笉鍙潬鐨勪紶杈撳崗璁紝鍙戦€佸嚭鍘葷殑鍒嗙粍鏁伴噺涓嶄竴瀹氱瓑浜庢帴鏀跺埌鐨勫垎緇勬暟閲忋€?/p>
絎簩琛屾樉紺虹殑灝辨槸榪滅緋葷粺鎺ユ敹鐨勬儏鍐碉紝鐢變簬client涓巗erver鐩存帴榪炴帴鍦ㄤ竴璧鳳紝鑰屼笖緗戠粶涓病鏈夊叾瀹冪殑嫻侀噺錛屾墍浠ユ湰鍦扮郴緇熷彂閫佽繃鍘葷殑鍒嗙粍鍑犱箮閮借榪滅緋葷粺姝g‘鐨勬帴鏀朵簡錛岃繙绔郴緇熺殑鍚炲悙閲忎篃鍑犱箮絳変簬鏈湴緋葷粺鐨勫彂閫佸悶鍚愰噺銆備絾鏄紝鍦ㄥ疄闄呯幆澧冧腑錛屼竴鑸繙绔郴緇熺殑socket緙撳啿澶у皬涓嶅悓浜庢湰鍦扮郴緇熺殑socket緙撳啿鍖哄ぇ灝忥紝鑰屼笖鐢變簬UDP鍗忚鐨勪笉鍙潬鎬э紝榪滅緋葷粺鐨勬帴鏀跺悶鍚愰噺瑕佽繙榪滃皬浜庡彂閫佸嚭鍘葷殑鍚炲悙閲忋€?/p>
嫻嬭瘯璇鋒眰/搴旂瓟錛坮equest/response錛夌綉緇滄祦閲忕殑鎬ц兘
鍙︿竴綾誨父瑙佺殑緗戠粶嫻侀噺綾誨瀷鏄簲鐢ㄥ湪client/server緇撴瀯涓殑request/response妯″紡銆傚湪姣忔浜ゆ槗錛坱ransaction錛変腑錛宑lient鍚憇erver鍙戝嚭灝忕殑鏌ヨ鍒嗙粍錛宻erver鎺ユ敹鍒拌姹傦紝緇忓鐞嗗悗榪斿洖澶х殑緇撴灉鏁版嵁銆傚涓嬪浘鎵€紺猴細(xì)
1錛?TCP_RR
TCP_RR鏂瑰紡鐨勬祴璇曞璞℃槸澶氭TCP request鍜宺esponse鐨勪氦鏄撹繃紼嬶紝浣嗘槸瀹冧滑鍙戠敓鍦ㄥ悓涓€涓猅CP榪炴帴涓紝榪欑妯″紡甯稿父鍑虹幇鍦ㄦ暟鎹簱搴旂敤涓€傛暟鎹簱鐨刢lient紼嬪簭涓巗erver紼嬪簭寤虹珛涓€涓猅CP榪炴帴浠ュ悗錛屽氨鍦ㄨ繖涓繛鎺ヤ腑浼犻€佹暟鎹簱鐨勫嬈′氦鏄撹繃紼嬨€?/p>
./netperf -t TCP_RR -H 192.168.0.28 TCP REQUEST/RESPONSE TEST to 192.168.0.28 Local /Remote Socket Size Request Resp. Elapsed Trans. Send Recv Size Size Time Rate bytes Bytes bytes bytes secs. per sec 16384 87380 1 1 10.00 9502.73 16384 87380 |
Netperf杈撳嚭鐨勭粨鏋滀篃鏄敱涓よ緇勬垚銆傜涓€琛屾樉紺烘湰鍦扮郴緇熺殑鎯呭喌錛岀浜岃鏄劇ず鐨勬槸榪滅緋葷粺鐨勪俊鎭€傚鉤鍧囩殑浜ゆ槗鐜囷紙transaction rate錛変負(fù)9502.73嬈?縐掋€傛敞鎰忓埌榪欓噷姣忔浜ゆ槗涓殑request鍜宺esponse鍒嗙粍鐨勫ぇ灝忛兘涓?涓瓧鑺傦紝涓嶅叿鏈夊緢澶х殑瀹為檯鎰忎箟銆傜敤鎴峰彲浠ラ€氳繃嫻嬭瘯鐩稿叧鐨勫弬鏁版潵鏀瑰彉request鍜宺esponse鍒嗙粍鐨勫ぇ灝忥紝TCP_RR鏂瑰紡涓嬬殑鍙傛暟濡備笅琛ㄦ墍紺猴細(xì)
鍙傛暟 | 璇存槑 |
-r req,resp | 璁劇疆request鍜宺eponse鍒嗙粍鐨勫ぇ灝?/td> |
-s size | 璁劇疆鏈湴緋葷粺鐨剆ocket鍙戦€佷笌鎺ユ敹緙撳啿澶у皬 |
-S size | 璁劇疆榪滅緋葷粺鐨剆ocket鍙戦€佷笌鎺ユ敹緙撳啿澶у皬 |
-D | 瀵規(guī)湰鍦頒笌榪滅緋葷粺鐨剆ocket璁劇疆TCP_NODELAY閫夐」 |
閫氳繃浣跨敤-r鍙傛暟錛屾垜浠彲浠ヨ繘琛屾洿鏈夊疄闄呮剰涔夌殑嫻嬭瘯錛?/p>
./netperf -t TCP_RR -H 192.168.0.28 -- -r 32,1024 TCP REQUEST/RESPONSE TEST to 192.168.0.28 Local /Remote Socket Size Request Resp. Elapsed Trans. Send Recv Size Size Time Rate bytes Bytes bytes bytes secs. per sec 16384 87380 32 1024 10.00 4945.97 16384 87380 |
浠庣粨鏋滀腑鍙互鐪嬪嚭錛岀敱浜巖equest/reponse鍒嗙粍鐨勫ぇ灝忓鍔犱簡錛屽鑷翠簡浜ゆ槗鐜囨槑鏄劇殑涓嬮檷銆?娉細(xì)鐩稿浜庡疄闄呯殑緋葷粺錛岃繖閲屼氦鏄撶巼鐨勮綆楁病鏈夊厖鍒嗚€冭檻鍒頒氦鏄撹繃紼嬩腑鐨勫簲鐢ㄧ▼搴忓鐞嗘椂寤訛紝鍥犳緇撴灉寰€寰€浼?xì)楂樹簬瀹為檯鎯呭嘃c(diǎn)€?/p>
2錛?TCP_CRR
涓嶵CP_RR涓嶅悓錛孴CP_CRR涓烘瘡嬈′氦鏄撳緩绔嬩竴涓柊鐨凾CP榪炴帴銆傛渶鍏稿瀷鐨勫簲鐢ㄥ氨鏄疕TTP錛屾瘡嬈TTP浜ゆ槗鏄湪涓€鏉″崟鐙殑TCP榪炴帴涓繘琛岀殑銆傚洜姝わ紝鐢變簬闇€瑕佷笉鍋滃湴寤虹珛鏂扮殑TCP榪炴帴錛屽茍涓斿湪浜ゆ槗緇撴潫鍚庢媶闄CP榪炴帴錛屼氦鏄撶巼涓€瀹氫細(xì)鍙楀埌寰堝ぇ鐨勫獎(jiǎng)鍝嶃€?/p>
./netperf -t TCP_CRR -H 192.168.0.28 TCP Connect/Request/Response TEST to 192.168.0.28 Local /Remote Socket Size Request Resp. Elapsed Trans. Send Recv Size Size Time Rate bytes Bytes bytes bytes secs. per sec 131070 131070 1 1 9.99 2662.20 16384 87380 |
鍗充嬌鏄嬌鐢ㄤ竴涓瓧鑺傜殑request/response鍒嗙粍錛屼氦鏄撶巼涔熸槑鏄劇殑闄嶄綆浜嗭紝鍙湁2662.20嬈?縐掋€俆CP_CRR浣跨敤涓嶵CP_RR鐩稿悓鐨勫眬閮ㄥ弬鏁般€?/p>
3錛?UDP_RR
UDP_RR鏂瑰紡浣跨敤UDP鍒嗙粍榪涜request/response鐨勪氦鏄撹繃紼嬨€傜敱浜庢病鏈塗CP榪炴帴鎵€甯︽潵鐨勮礋鎷咃紝鎵€浠ユ垜浠帹嫻嬩氦鏄撶巼涓€瀹氫細(xì)鏈夌浉搴旂殑鎻愬崌銆?/p>
./netperf -t UDP_RR -H 192.168.0.28 UDP REQUEST/RESPONSE TEST to 192.168.0.28 Local /Remote Socket Size Request Resp. Elapsed Trans. Send Recv Size Size Time Rate bytes Bytes bytes bytes secs. per sec 65535 65535 1 1 9.99 10141.16 65535 65535 |
緇撴灉璇佸疄浜嗘垜浠殑鎺ㄦ祴錛屼氦鏄撶巼涓?0141.16嬈?縐掞紝楂樿繃TCP_RR鐨勬暟鍊箋€備笉榪囷紝濡傛灉鍑虹幇浜嗙浉鍙嶇殑緇撴灉錛屽嵆浜ゆ槗鐜囧弽鑰岄檷浣庝簡錛屼篃涓嶉渶瑕佹媴蹇冿紝鍥犱負(fù)榪欒鏄庝簡鍦ㄧ綉緇滀腑錛岃礬鐢卞櫒鎴栧叾瀹冪殑緗戠粶璁懼瀵筓DP閲囩敤浜嗕笌TCP涓嶅悓鐨勭紦鍐插尯絀洪棿鍜屽鐞嗘妧鏈€?/p>
http://www.ibm.com/developerworks/cn/linux/l-netperf/Java version 1.6.0_13
Java HotSpot(TM) Client VM
11.3-b02
Sun Microsystems Inc.
Direct access using member field:
47 125 47 46 46
average time = 66 ms.
Reference access to member field:
109 109 110 94 109
average time = 106 ms.
Reflection access to member field:
13094 12984 13063 13062 13094
average time = 13051 ms.
Java version 1.6.0_13
Java HotSpot(TM) Client VM
11.3-b02
Sun Microsystems Inc.
Direct call using member field:
47 31 109 109 31
average time = 70 ms.
Direct call using passed value:
16 16 16 31 15
average time = 20 ms.
Call to object using member field:
46 47 47 47 32
average time = 43 ms.
Call to object using passed value:
15 16 31 16 16
average time = 20 ms.
Reflection call using member field:
812 782 844 844 844
average time = 829 ms.
Reflection call using passed value:
938 953 954 1031 953
average time = 973 ms.
Java version 1.6.0_13
Java HotSpot(TM) Client VM
11.3-b02
Sun Microsystems Inc.
Direct Object creation:
62 47 78 32 93
average time = 63 ms.
Reflection Object creation:
125 94 94 109 187
average time = 121 ms.
Direct byte[8] creation:
125 187 94 172 94
average time = 137 ms.
Reflection byte[8] creation:
266 171 187 188 219
average time = 191 ms.
Direct byte[64] creation:
250 172 156 125 203
average time = 164 ms.
Reflection byte[64] creation:
281 219 203 203 219
average time = 211 ms.