※この記事は翻訳されたものです。本記事の原文はこちら
– カスタマーサクセス担当ディレクター Dave Bermingham
この記事は、GCP(Google Cloud)にレプリケートされているディスクへの書き込みパフォーマンスに関して、私がGCPで発見したことをまとめたものです。
まず、背景を説明します。あるお客様が、同一リージョン内のGoogleゾーン間で同期ミラーリングのテストを行ったところ、DataKeeperが書き込みパフォーマンスに多大なオーバーヘッドを追加しているとの懸念を示されました。彼らが当初行ったテストは、Cドライブにビットマップファイルを置いたもので、これは永続SSDでした。この構成ではわずか約70MBpsで、ビットマップをエクストリームGCPディスクに移動しても、パフォーマンスは改善されませんでした。
ビットマップをローカルSSDに移動
私はビットマップをローカルのSSDに移すことを提案しましたが、お客様はビットマップに使用しているエクストリームディスクのレイテンシとスループットは、ローカルのSSDと同等かそれ以上であると考えていたので、違いが出るかどうか疑わしいと躊躇していました。
また、ローカルSSDの追加は、VMが最初にプロビジョニングされるときにしか行えないため、簡単な作業ではありません。
インスタンスタイプの選択
まず分かったのは、すべてのインスタンスタイプがローカルSSDをサポートしているわけではない、ということでした。たとえば、E2-Standard-8はローカルSSDをサポートしていません。最初のテストでは、C2-Standard-8インスタンスタイプに落ち着きましたが、これは「コンピューティングの最適化」と考えられます。
500 GBの永続SSDを接続し、書き込みパフォーマンスのテストを開始したところ、すぐにディスクの書き込み速度が最大速度の240MBpsではなく、140MBps程度しかないことがわかりました。お客様も同じことを確認しました。困惑しましたが、とりあえず別のインスタンスタイプを試してみることにしました。
2つ目のインスタンスタイプには、N2-Standard-8を選択しました。このインスタンスタイプでは、ディスクを複製しない場合、最大スループット速度である240MBpsまで出すことができました。プロビジョニングしたローカルSSDにビットマップを移動し、同期ミラー(DataKeeper v8.8.2)上で同じテストを繰り返したところ、以下のような結果が得られました。
結果
Diskspdのテストパラメーター
diskspd.exe -c96G -d10 -r -w100 -t8 -o3 -b64K -Sh -L D:\data.dat
diskspd.exe -c96G -d10 -r -w100 -t8 -o3 -b8K -Sh -L D:\data.dat
diskspd.exe -c96G -d10 -r -w100 -t8 -o3 -b4K -Sh -L D:\data.dat
MBps
データ
書き込みサイズ | MB/s | MBps パーセントオーバーヘッド |
---|---|---|
64k-Mirror | 240.01 | 0.00% |
64k-NoMirror | 240.02 | |
8k-Mirror | 58.87 | 39.18% |
8k-NoMirror | 96.8 | |
4k-Mirror | 29.34 | 21.84% |
4k-NoMirror | 37.54 |
書き込みサイズ | AvgLat | AvgLat オーバーヘッド |
---|---|---|
64k-Mirror | 6.247 | -0.02% |
64k-NoMirror | 6.248 | |
8k-Mirror | 3.183 | 39.21% |
8k-NoMirror | 1.935 | |
4k-Mirror | 3.194 | 21.88% |
4k-NoMirror | 2.495 |
結論
書き込みサイズ64kと4kでは、オーバーヘッドは同期レプリケーションでは「許容範囲」と見なされる程度でした。一方、8kの書き込みサイズでは平均レイテンシーは3.183msとかなり低いものの、オーバーヘッドはより大きくなっていました。