SQL Server 2022 RC 1 時点の情報となり、今後の Preview / 一般提供開始時には変更されている可能性もあります。
SQL Server 2022 の新機能として、Intel QAT (Quick Assist Technology) を使用した、バックアップの高速化とバックアップの負荷をハードウェアにオフロードするという機能があります。
Intel QAT を使用する場合、Intel® QuickAssist Adapter Family for Servers のようなハードウェアを使用しなくてはいけないのかと思っていたのですが、この機能はソフトウェアモードでも使用することができ、ハードウェア圧縮が使用できない場合でもソフトウェアで処理ができるようになっていました。
この機能を使用した場合の処理特性についてまとめておきたいと思います。
ソフトウェアモードでの有効化
ソフトウェアモードでの有効化の方法については 統合された高速化とオフロードを構成する に記載されている手順を実施することで使用することができます。
- 記載されているドライバーをインストール
- サーバーを再起動
- 「sp_configure ‘hardware offload enabled’, 1;」で設定を有効化
- 「ALTER SERVER CONFIGURATION SET HARDWARE_OFFLOAD = ON (ACCELERATOR = QAT, MODE = SOFTWARE)」でソフトウェアモードでの強制を有効化
- SQL Server を再起動
このような手順を実施することで、ハードウェアアクセラレーターが搭載されていない環境でも Intel QAT を使用した圧縮を使用することができるようになります。
Intel QAT を使用した場合の処理性能への影響
次のようなクエリを使用して、バックアップを実行してみます。
-- 従来のバックアップ BACKUP DATABASE wordpress TO DISK = 'E:\Backup\wordpress_MS_XPRESS.bak' WITH COMPRESSION (ALGORITHM = MS_XPRESS), INIT, FORMAT GO -- Intel QAT BACKUP DATABASE wordpress TO DISK = 'E:\Backup\wordpress_QAT_DEFLATE.bak' WITH COMPRESSION (ALGORITHM = QAT_DEFLATE), INIT, FORMAT GO
従来の圧縮が「MS_XPRESS」となり、Intel QAT を使用した圧縮が「QAT_DEFLATE」となります。
このような処理順で実行した場合の処理時間/ ファイルサイズが次のようになります。
MS_XPRESS
データベース ‘wordpress’ の 2136464 ページ、ファイル 1 のファイル ‘wordpress_Data’ を処理しました。
データベース ‘wordpress’ の 2 ページ、ファイル 1 のファイル ‘wordpress_Log’ を処理しました。BACKUP DATABASE により 2136466 ページが 39.266 秒間で正常に処理されました (425.078 MB/秒)。
3.75 GB (4,035,936,256 バイト)
QAT_DEFLATE
データベース ‘wordpress’ の 2136464 ページ、ファイル 1 のファイル ‘wordpress_Data’ を処理しました。
データベース ‘wordpress’ の 2 ページ、ファイル 1 のファイル ‘wordpress_Log’ を処理しました。BACKUP DATABASE により 2136466 ページが 31.547 秒間で正常に処理されました (529.087 MB/秒)。
3.33 GB (3,583,221,760 バイト)
QAT を使用したほうがバックアップのスループットが高く、100MB/sec 程度高速に処理を行うことができ、10 秒近く処理時間に差が出ていることが確認できます。
ファイルサイズについても QAT のほうが少なくなる傾向があるようですね。
バックアップ中の CPU 使用時間が次のグラフとなります。
前半が QATを使用していない / 後半が QAT を使用している状態の CPU 使用時間となるのですが、今回取得したバックアップであれば、CPU 負荷についても Intel QAT を使用したほうが低いというような傾向となっているようですね。
ソフトウェアモードで使用した場合、どれぐらい効果が出るのか疑問ではあったのですが、ハードウェアアクセラレーターを搭載していない場合でも、Intel QAT を使用することにメリットが出るケースがるようです。
Intel QAT を使用したバックアップのリストア
Intel QAT を使用したバックアップを、同一の環境上にリストアする場合は、問題なくリストアができました。
それでは、Intel QAT 向けの設定をしていない環境に、Intel QAT を使用したバックアップをリストアしようとした場合はどうなるでしょうか?
Intel QAT の設定を行っていない環境にリストアをしようとした場合には次のエラーが発生します。
メッセージ 17441、レベル 16、状態 3、行 4
This operation requires Intel(R) QuickAssist Technology (QAT) libraries to be loaded.メッセージ 3013、レベル 16、状態 1、行 4
RESTORE DATABASE が異常終了しています。
Intel QAT を使用して取得したバックアップのリストアについては、QAT のライブラリがロードできる (= QAT のドライバーがインストールされている) 環境の必要があるようです。
QAT を使用したバックアップを他の環境にリストアする場合には、リストアができるように準備をしておく必要があるようですね。
Intel QAT はバックアップを高速化 / 負荷低減のた目に活用することができる機能です。環境によってどの程度性能に影響が出るかは変わってくると思いますが、ソフトウェアモードでもある程度の効果は出るようですので、ハードウェアを用意できない環境でも活用を検討してもよいのかもしれませんね。
[…] https://blog.engineer-memo.com/2022/10/10/sql-server-2022-new-features-intel-qat-%e3%82%92%e4%bd%bf%… […]
【後で読みたい!】SQL Server 2022 New Features: Intel QAT を使用したバックアップの高速化 | Tak's Bar
11 10月 22 at 07:19