netperfの概要と使い方
概要
- ネットワークのスループット, レイテンシなどのパフォーマンスを測定するツール
- サーバクライアントモデルで、測定対象のサーバにも
netperf
がインストールされている必要がある UDP
やTCP
などのプロトコルを指定することができる- サーバモードで公開が必要なポートは
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
>ipv6
≒ipv4
UDP
≒TCP
- 考察
- ローカルエリアであれば有線が最強
- 意外と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のほうがかなり早い