netperf

/

netperfの概要と使い方

タグ netperf


概要

  • ネットワークのスループット, レイテンシなどのパフォーマンスを測定するツール
  • サーバクライアントモデルで、測定対象のサーバにもnetperfがインストールされている必要がある
  • UDPTCPなどのプロトコルを指定することができる
  • サーバモードで公開が必要なポートはTCP/UDP双方12865,12866

インストール

debian(non-free)

$ sudo apt install netperf

バイナリからのインストール

debian系

$ sudo apt install autotools-dev automake texinfo
$ git clone https://github.com/HewlettPackard/netperf.git
$ cd netperf
$ ./autogen.sh
$ ./configure --enable-demo
$ make
$ sudo make install

測定方法

スループット

$ netperf -H <hostname> -t TCP_STREAM -v 2 -- -o throughput
  • 単位はMBytes/secである

TCPのレイテンシ

$ netperf -H <hostname> -t TCP_RR -v 2 -- -o min_latency,mean_latency,max_latency,stddev_latency,transaction_rate

UDPのレイテンシ

$ netperf -H <hostname> -t UDP_RR -v 2 -- -o min_latency,mean_latency,max_latency,stddev_latency,transaction_rate

ローカルサーバに対するベンチマーク結果

  • 結果
    • 有線LAN > 無線LAN > ipv6ipv4
    • UDPTCP
  • 考察
    • ローカルエリアであれば有線が最強
    • 意外とipv6とipv4のパフォーマンス差はない
    • UDPのほうが僅かにTCPより早いがほぼ差はない(回線の調子のほうが遥かに重要)

カナダ(モントリオール)OCIの無料インスタンスに対するベンチマーク結果

  • 結果
    $ netperf -H 155.248.227.92 -t TCP_STREAM -v 2 -- -o throughput  
    9890.57,12.14
    $ netperf -H 2603:c023:4001:4b7e:647e:bedb:693f:94d0 -t TCP_STREAM -v 2 -- -o mean_latency,throughput
    1775.90,71.27
    
  • 考察
    • IPv6のほうがかなり早い

参考