現在位置: ホーム / みらくるブログ / #12 pktgenで平均遅延時間を計測する

#12 pktgenで平均遅延時間を計測する

これまで使ってきたDPDKベースのパケットジェネレータpktgenで平均遅延時間、および、しきい値を超えたパケット割合の計測方法を紹介します。

セットアップ

これまでよく使ってきた次の構成で説明をしていきます。ホスト1、および、2の構築については、それぞれ第1回、および、第2回を参照ください。pktgenについては第4回に記載しています。

04-flow-1.png

ホスト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)

遅延時間
(us)

96 16
128 17
256 18
512 22
1024 31
1400 36

11-delay-chart.png