私が管理するLinuxシステムのほとんどは、ハードウェアRAIDコントローラー(主にHP Smartアレイ)を備えています。それらはすべてRHELまたはCentOSを実行しています。
SASディスク(Smartアレイ、Perc、LSIなど)とバッテリーバックアップまたはフラッシュバックアップキャッシュを備えたハードウェアRAIDコントローラーを組み込んだセットアップのパフォーマンスを最適化するのに役立つ実世界の調整可能パラメータを探しています。RAID 1 + 0および複数のスピンドル(4+ディスク)を想定します。
低遅延および金融取引アプリケーション用のLinuxネットワーク設定の調整にはかなりの時間を費やしています。ただし、これらのオプションの多くは十分に文書化されています(送信/受信バッファーの変更、TCPウィンドウ設定の変更など)。エンジニアはストレージ側で何をしていますか?
歴史的に、私はI / Oスケジューリングエレベータに変更を加えてきました。最近、アプリケーション内のパフォーマンスを改善するためにdeadline
とnoop
スケジューラを選択しました。RHELバージョンが進歩するにつれて、SCSIおよびCCISSブロックデバイスのコンパイル済みデフォルトも変更されていることにも気付きました。これは、時間の経過とともに推奨されるストレージサブシステム設定に影響を与えてきました。ただし、明確な推奨事項を確認してからしばらく経ちました。そして、OSのデフォルトが最適ではないことを知っています。たとえば、128kbのデフォルトの先読みバッファは、サーバークラスのハードウェアでの展開には非常に小さいようです。
次の記事では、ブロックキューの先読みキャッシュとnr_requestsの値を変更した場合のパフォーマンスへの影響について説明します。
http://zackreed.me/articles/54-hp-smart-array-p410-controller-tuning
http://www.overclock.net/t/515068/tuning-a-hp-smart-array-p400-with -linux-why-tuning-really-matters
http://yoshinorimatsunobu.blogspot.com/2009/04/linux-io-scheduler-queue-size-and.html
たとえば、HP SmartアレイRAIDコントローラーの推奨される変更は次のとおりです。
echo "noop" > /sys/block/cciss\!c0d0/queue/scheduler
blockdev --setra 65536 /dev/cciss/c0d0
echo 512 > /sys/block/cciss\!c0d0/queue/nr_requests
echo 2048 > /sys/block/cciss\!c0d0/queue/read_ahead_kb
ストレージパフォーマンスを改善するために、他に何を確実に調整できますか?
生産シナリオでsysctlおよびsysfsオプションを具体的に探しています。