
顧客は、RAID-50 の 16 X 450GB 10K を搭載した PS6000X SAN で Sybase ASE 15 のパフォーマンスが低下していることに気づきました。サーバーは、ESX 4.0.0,256968 で 2003 Server R2 64 ビットを実行している Dell R710 です。
私は sqlio を使用して、ドライブ上の 4KB ブロックの順次書き込みパフォーマンスをベンチマークしました。
sqlio -kW -t1 -s600 -dE -o1 -fsequential -b4 -BH -LS sqliotestfile.dat
結果は 1900 IOPS です。ただし、Sybase が小さな挿入の持続的なワークロードを実行している場合、SAN HQ は一貫して 590 IOPS (および 100% 4K 書き込みアクティビティ) を示します。また、書き込みレイテンシが 1 ミリ秒未満から 1.2 ミリ秒に増加していることも示しています。
Sybase での監視とテストにより、パフォーマンスの問題は IO に関連しており、特にログへの書き込みに長い待機時間があることが示されました。
SAN は書き込みキャッシュが有効になっていることを示します。
SAN は 4K のシーケンシャル書き込みアクティビティに対してどの程度の IOPS に対応できる必要がありますか? また、書き込みキャッシュを有効にすると、コントローラーは 4K の書き込みをより効率的にバッチ処理するべきではないでしょうか?
また、ESX 上の Sybase に関するヒントがあればいただければ幸いです。
答え1
シーケンシャル IO は、表示されているものよりも高速であると予想されますが、持続的な 4K 100% ランダム書き込み IO は、そのセットアップでは約 500~600 IOPS になります (14 個のアクティブ ディスク、10K SAS、RAID 50 を想定)。そのため、私が尋ねる質問は、ボリューム上の IO パターンが本当にシーケンシャルであるとどのように確認するのかということです。
PS600X によって提供される他のボリュームは何か、またそれらは何に使用されているか。Equallogic アレイでは、同じアレイ上のボリューム間の IO パターンを分離することは実際には許可されていません。同じディスクから切り出された別のボリュームがあり、ランダムな IO トラフィックが発生している場合は、それが原因である可能性があります。
答え2
まず最初に、テストファイルのサイズは実際のデータベースと同等ですか?そうでない場合は、シークタイムが差別化要因ここ。
ログ ボリュームに VMware 準仮想化 SCSI アダプタをまだ使用していない場合は、試してみることをお勧めします。これは魔法の解決策ではありませんが、特定のワークロードではメリットがあります。通常、少しの遅延が発生しますが、多数の書き込みを処理するときに全体的なスループットが向上します。
実現可能であれば、そしてそれが非常に面倒なことであることは承知していますが、同じサーバーの物理インスタンスを SAN に直接接続し、ESX を考慮に入れずに同じテストを実行することを検討してください。2 つの異なる場所と製品からの IOPS 数値を読み取っているため、これも考えられる要因の 1 つであると考えます。とはいえ、数値が 3 倍もずれているとは思いません。