APRESIA Technical Blog

Xeon D-1746のQAT有効化とIPSec高速化

はじめに

インテル クイック・アシスト・テクノロジー (QAT)とは、データの圧縮や暗号化、復号化を高速に行うことができるアクセラレーション機能です。QATは一部のXeonプロセッサーに統合されています。
本記事では、Xeon D-1747でQATを有効にし、IPSecのスループットがどの程度向上するか確認した結果を紹介します。

テスト環境

構成
  • サーバ(Supermicro SYS-510D-10C-FN6P)
    • OS:Ubuntu 20.04
    • CPU Xeon D-1747
    • メモリ:64GB
  • VPNルータ(NEC UNIVERGE IX3315)
  • パケットジェネレータ(IXIA)

QAT ドライバのインストール

QATドライバを下記ページからダウンロードします。 https://www.intel.com/content/www/us/en/download/19734/intel-quickassist-technology-driver-for-linux-hw-version-1-x.html
ディレクトリQATを作成し、ドライバを展開します。
mkdir QAT
cd QAT
tar xfvz ../QAT.L.4.22.0-00001.tar.gz
configureを実行します。QATをLinux Kernel Crypt Frameworkに組み込むため--enable-qat-lkcfをオプションに指定します
./configure --enable-qat-lkcf
足りない機能があれば、configureのメッセージから対応するpackageをaptでインストールします。 今回は下記のpackageをインストールしました。
  • build-essential
  • pkgconf
  • libudev-dev
  • libnl-3-dev
  • libnl-genl-3-dev
  • yasm
コンパイルしてインストールします。
make
sudo make install
qatサービスが有効になっていることを確認します。
systemctl status qat
QATが有効になっていることを確認します。
kokomo@kokomo120:~/tmp/QAT$ cat /proc/crypto | grep qat
driver : qat-rsa
module : intel_qat
driver : qat_aes_cbc_hmac_sha512
module : intel_qat
driver : qat_aes_cbc_hmac_sha256
module : intel_qat
driver : qat_aes_xts
module : intel_qat
driver : qat_aes_ctr
module : intel_qat
driver : qat_aes_cbc
module : intel_qat

測定結果



図の構成で、サーバのstrongswanとVPNルータをIPSec(AES256-CBC)で接続し、パケットジェネレータからパケットを流してQAT有効/無効時のスループットを測定しました。 本環境では最大18%のスループットの向上が見られました。

  • 測定結果(QAT有効時)
パケットジェネレータ1受信レート パケットジェネレータ2受信レート 試験条件
1750Mbps - パケットジェネレータ1←2方向2Gbps
- 2000Mbps パケットジェネレータ1→2方向2Gbps
1432Mbps 1981Mbps パケットジェネレータ1/2双方向2Gbps
 
  • 測定結果(QAT無効時)
パケットジェネレータ1受信レート パケットジェネレータ2受信レート 試験条件
1473Mbps - パケットジェネレータ1→2方向2Gbps
- 1910Mbps パケットジェネレータ1←2方向2Gbps
1362Mbps 1807Mbps パケットジェネレータ1→2方向2Gbps