#12 pktgenで平均遅延時間を計測する
セットアップ
これまでよく使ってきた次の構成で説明をしていきます。ホスト1、および、2の構築については、それぞれ第1回、および、第2回を参照ください。pktgenについては第4回に記載しています。
ホスト1でpktgenを起動します。注意として、送信処理のCPUと受信処理のCPUを同じにする必要があります。例えば以下のように起動します。引数1.0と1.1は、それぞれ、CPU1でポート0を処理する、および、CPU1でポート1を処理することを意味します。
$ sudo ./pktgen -- -m "1.0,1.1"
起動後、表示をlatencyモードにします。
Pktgen> page latency
すると画面の一部が次のように変化します。
Latency usec : 0 0
Jitter Threshold : 50 50
Jitter count : 0 0
Total Rx pkts : 0 0
Jitter percent : 0 0
以下のコマンドにより遅延時間を計測できるようになります。allの部分はポート番号です。allはすべてのポートを意味します。0、1など個別に指定することもできます。
Pktgen> latency all on
このパケットジェネレータの制限として、平均遅延時間の計測は、パケットサイズが96B以上のときのみです。そのため、パケットサイズを96Bにします。
Pktgen> set all size 96
計測
start 0で送信を開始すると、遅延時間(Latency)が表示されます。筆者の環境では16us(マイクロ秒)でした。
Latency usec : 0 16
Jitter Threshold : 50 50
Jitter count : 0 11
Total Rx pkts : 0 112878560
Jitter percent : 0 0
なお、Jitter count行には、Jitter Threshold行のジッター時間を超過したパケットの数が表示されています。Jitter percentはその割合です。
Jitter Threshold(しきい値)を変更してみます。一旦、送信を停止し、jitterコマンドで敷居値を平均より少し大きい17usに設定します。clrコマンドで統計情報をリセットして、送信を開始します。
Pktgen> stp
Pktgen> jitter all 17
Pktgen> clr
Pktgen> start 0
すると、Jitter countはさきほどより大きくなり、Jitter percentも33%になりました。
Latency usec : 0 16
Jitter Threshold : 17 17
Jitter count : 0 24317079
Total Rx pkts : 0 71634123
Jitter percent : 0 33
パケットサイズと遅延時間
ここでは、応用例としてパケットサイズを増やすことで遅延時間がどう変化するか調べてみました。グラフにするとほぼ線形に遅延時間が増加していることが分かります。
パケット サイズ(B) |
遅延時間 |
96 | 16 |
128 | 17 |
256 | 18 |
512 | 22 |
1024 | 31 |
1400 | 36 |