みらくるブログ
C++の時間ライブラリchronoでの現在時刻の取得時間
2017年04月20日
C++11では、時間に関するライブラリchronoが追加されました。これによりポータビリティの高い方法で時間の計測が可能になりました。一方、短い時間を計測する場合、時刻取得関数そのものの実行時間が気になります。chronoの現在時刻の取得のための時間を簡易的に計測しました。
#12 pktgenで平均遅延時間を計測する
2017年03月29日
#11 DPDKのパケットロスを抑制する
2017年03月29日
#10 VFIO (No-IOMMU mode)でDPDKを使う
2017年03月28日
第9回で説明したVFIOを使うにはホストマシンがIOMMUをサポートしている必要があります。一方、igb_uioは、カーネルがバージョンアップするたびに再ビルドが必要になります。VFIOドライバのNo-IOMMUモードを使うと、IOMMUを持たないマシンでも、カーネル標準のドライバを使って、DPDKを動作できます。今回はその方法を説明します。
#9 VFIOでDPDKを使う
2017年03月28日
これまでは、DPDKに付属のigb_uioというドライバを使って、DPDKがユーザー空間でNICを制御していました。今回は、カーネルに付属しているvfio-pciというドライバを使います。igb_uioを使っていると、カーネルがバージョンアップするたびに再ビルドが必要ですが、vfio-pciはカーネル標準のドライバなので、このような作業が不要です。
#8 QEMU/KVMをvhostuserでOpen vSwitchに接続
2017年03月14日
vhostuser機構を使ってQEMU/KVMとOpen vSwitchを接続します。この方式は共有メモリによってパケットをVMに転送するので、従来のvhostnetやtapを使った方式より性能が向上することが期待されます。これまで使用してきたCentOS7.3上にQEMU 2.6をインストールします。また、VMとしてUbuntu 16.04を用い、その中でDPDK 17.02をビルドして使用しました。また、評価時にはOVSのPMDがポーリングするポートをカスタマイズします。