MS SQLデータベースを利用するアプリケーションのパフォーマンスについて不満を言うクライアントがいます。彼らは、パフォーマンスの問題がアプリケーション自体の責任であるとは考えていません。
SmartアレイE200i RAIDコントローラーには128MBのキャッシュがあり、キャッシュは読み取り75%/書き込み25%に設定されています。書き込みキャッシュを有効にするように設定されたディスクアレイ。
最近、 このガイド に基づいて [〜#〜] sqlio [〜#〜] を使用してディスクパフォーマンステストを実行しました。テストに10 GBのファイルを使用したところ、シーケンシャル読み取りの平均速度は最大60 MB /秒(メガバイト/秒)、ランダム読み取りの平均速度は最大30 MB /秒でした。これらの数値は、サーバーが実行する必要があるものと同等ですか?パーより良いですか?恐ろしい?すごい?
サーバーのセットアップ/ RAIDコントローラー構成に関する追加情報:
3つの146 GB SAS 10k RPM 3.0 GB /秒(モデルHP DG146BABCF)ドライブがあり、RAID 5アレイに構成されています。これらは、オペレーティングシステムデータとページングファイルを含むログとデータの両方がすべて同じ物理ディスクアレイ上にある(OSデータが分離された2つの論理ドライブが存在する)アレイのストライプサイズは64kに設定されています。使用可能な総容量は273ですGB。
HP Advanced Data Guardがオフになっています。再構築と拡張の優先度は中に設定されています。表面スキャンの遅延は15秒です。コントローラには、キャッシュボードとバッテリパックがあります。
不可解なものが多すぎます。たとえば、ディスクはどのように設定されますか?ログとデータが同じディスクを共有している場合、データ領域からのランダムI/Oはログトラフィックを妨害します。これはほとんどがシーケンシャルI/Oであり、同じディスク上のビジーランダムアクセスワークロードに不釣り合いに影響されます。
構成についてもう少し洞察がなければ、何が問題を引き起こしている可能性があるのか実際には言えません。
たとえば、64kのストライプと15kのドライブを備えた4ディスクのRAID-5またはRAID-10の場合、RAIDから60MB /秒オフにするのが適切です。各ドライブは、ディスクの1回転あたり1つの64kストライプを読み取り(15kドライブの場合は約250 /秒)、ドライブあたり15MB /秒になります。
15kディスクの平均シーク時間は、ディスク全体で約3msです。 (たとえば)146GBまたは300GBのディスクとキャッシュからの少しの助けを借りたRAIDボリューム上のほとんど連続した10GBファイルでは、30MB /秒が上記のように構成されたディスクアレイの妥当な数値であることがわかりました。これは、ディスクの2回転ごとに読み取られたデータを平均化することを示します。
それは、ML350で見られると合理的に期待できる構成について頭から考えることです。しかし、それが実際の構成と一致するかどうかはわかりません。そのため、観察があなたのケースに関連しているかどうかについては、コメントできません。
L200s here およびRyan here によって文書化されているように、E200iのパフォーマンスは悪名高い。オプションのバッテリーキット(BBWC)が接続されていること、およびHPアレイコンフィギュレーションユーティリティがバッテリーのステータスに問題がないことを確認します。 (HPアレイ構成ユーティリティで、中央の構成ビューにあるコントローラーをクリックし、右側の[共通タスク]メニューで[詳細情報]を選択します)。このバッテリを配置すると、ディスクコントローラのパフォーマンスが大幅に向上します。
しかし、最善の策は、E200を「適切な」HP SmartArrayコントローラーと交換することです。512MBのBBWCを備えたP400またはP600を使用すると、速度が大幅に向上します。
データベースのバッキングストアとして「疑似劣化」Raid5を使用することはできません。 AFAIKは、可能な限り遅いディスク構成です。ローエンドのコントローラーを追加すると、状況は改善されません。
Hitachi AMSの所有者はこの投稿を無視できます(4disk raid5 = 300MB/s以上)。残りはおそらく適用されます。
以下は、同様のハードウェアを使用して行ったベンチマークと、いくつかの相違点です。パフォーマンスヒットの一部は、パーティションが正しく配置されていないためだと思います(Windows 2003では、デフォルトでパーティションが正しく配置されていません)。次のコマンドを実行します。開始オフセットが32256の場合、ずれています。
wmicパーティションgetインデックス、ブロックサイズ、名前、startingoffset
パーティションを適切に調整するには、DISKPARTユーティリティを使用する必要があります。
テストハードウェア:
HP DL380 G5
2ソケット、合計4コア
16 GBのRAM
HP P400コントローラ
512MBキャッシュ
25%読み取り/ 75%書き込み
10K RPM HDD
Windows Server 2003、32ビット
5分のテストサイクル
結果(メガバイト/秒):
(RS:順次読み取りRR:ランダム読み取りWS:順次書き込みWR:ランダム書き込み)
RAID 5 3 HD:
RS 180
RR 180
WS 120
WR 130
Raid5 4 HD:
RS:240
RR:260
WS:175
WR:180
Raid5 5 HD:
RS:310
RR:320
WS:210
WR:225
SmartアレイE200iには、バックアップバッテリ書き込みキャッシュがインストールされていますか? Smart ArrayコントローラーでBBWCを使用しないと、パフォーマンスが大幅に低下します。
あなたが取ったデータ速度の測定値に関しては、私はハイエンドのデスクトップシステムから60 MB /秒を見たとは言えません。ただし、 データレートの読み取り値は嘘になる可能性があります !より良い比較のために使用したツールのパラメーターを投稿します。
短い答え=書き込みキャッシュを有効にしますが、HP CLIを介して書き込みキャッシュを0%に設定します。 [ctrl slot = 0 modify cacheratio = 100/0 | ctrl slot = 0 modify dwc = enable]オンにしますが、使用しないでください。
Open-e DSS V6サーバーをE200i RAIDコントローラ、128MB BBWC、および6 x 1.5 TB 7200 RPM RAID 10アレイのドライブ。iSCSIファイルI/Oボリュームで100未満のiostatを使用して、初期化率が高くなりました。3Ware9550カードを使用した同様の構成で、1000を超えるiostatを生成しているため、解決しようとしていました何が問題でしたか?.
少しの調査により、こことExperts-Exchangeの記事( http://www.experts-exchange.com/Storage/Hard_Drives/Q_24947953.html )に誘導されました。 RAID 5プロセッサと書き込みキャッシュは、このコントローラにとって厄介なコンポーネントのようです。私はRAID 5を使用していなかったため、Open-eがソフトウェアに簡単に配置できるHPコントローラーCLIを介して読み取り/書き込みキャッシュを実験しました。
CLIが非常に低速で実行されていたため、コマンドの応答に1分かかりました。最後に、上記のコマンドにより、アレイのパフォーマンスが期待どおりになりました。現在、ほぼ1000のiostatが表示されており、CLIは正常に応答しています。はい、書き込みキャッシュを有効にして、0%に設定する必要があります。他の組み合わせは機能しないようです。書き込みキャッシュを無効にするオプションを使用しても、許容できるパフォーマンスを提供できませんでした。