原文を参照したい方はこちら。
データベースの復元にかかる時間を50%も削減する方法は?
ロンドンで行われた.Next 2018の最中にNutanixはコアデータパス内でのパフォーマンスの改善をアナウンスしました。これは最大で2倍のパフォーマンス改善をもたらすとのことです。以下では実際の現実世界での改善について例を上げたいと考えています。X-Rayを利用して1TBのデータを既存のデータベース内に復元する操作をシミュレーションしました。64K,128K,256K,1MBに分割されるとはいえ、IOのサイズは非常に大きなものとなり、1TBのデータセットに対するアクセスパターンは100%ランダムなものとなります。
code:
bssplit=64k/20:128k/20:256k/20:512k/20:1m/20
通常、大きなIOサイズを用いたストレージのベンチマークはそれに応じた結果になります。これはストレージのバックエンドでの取扱が比較的簡単なものだからです。最初にかける負荷としては現実的なものとなりますが、今回は100%ランダムなパターンの場合での復元をシミュレーションしたいと考えました。
今回のケースでは1TBを取り込みきるまでの時間は半分になりました。比較の対象となっているのは自律化エクステントストア(Autonomous Extent Store - AES)が有効になったNutanix AOS 5.10と以前の従来からのエクステントストアです。
この改善ははAESによって、エクステントストアへの挿入が直接、より高速に行えるようになったことで実現しました。
スループットが重要になるランダムなワークロードにおいては、AESはoplogをスキップする方が早いかどうかを検知することができます。OplogをスキップすることでAESはリモートのoplogまでのネットワークの往復を削減することができ - 代わりにエクステントストアにRF2のコピーを作るだけになります。これとは反対に継続的に巨大なランダムIOがoplog内に流れ混んでくる場合には、10Gbitネットワークですらもボトルネックになる可能性が出てきます。より高速なネットワークがある場合でも、AESはCPUとSSDの稼働率を抑えることで効果を上げることができます。残念なことに私のラボには10Gbitネットワークしかありません!
このテストを行うために必要なX-Rayファイルはgithub上に公開されています。