マルチパスSASコントローラーを備えた2台のマシンがあり、それぞれに12台の物理ディスクが接続されています。
I/O速度の奇妙さを調べていたところ、/ dev/mpath/mpath * p1がさまざまな方法でdm-13からdm-24にマップされる1台のマシンで、dm-13とdm-14にioがあることに気付きました。 「cfq」のスケジューラーが配置されています。そのリストの他のdmデバイスには「none」があり、変更できないようです。
他のデバイスは異なるdm- *マッピングのセットとして提示されており、それらにはcfqセットがあると思います。
他のマシンでは、/ dev/mpath/mpath * p1にあるように選択されたデバイスのいずれにも、スケジューラーが設定された対応するdmデバイスがありません。
私はここで私の要素から少し外れていますが、iostatは最初のボックスのdm-13とdm-14でいくつかのリクエストがマージされていることを示しており、どちらのボックスでも他のリクエストはマージされていないことを示しているので、これにいくらかの代償を払っています。
私は間違った穴を掘っていますか、それともこれは問題ですか?もしそうなら、「none」が現在リストされている唯一のオプションである場合、echo cfq > /sys/block/dm-15/queue/scheduler
は効果がないので、どうすれば修正できますか?
私は自分の質問に対する答えを見つけました。
/ dev/mapper/mpathaがディスク全体で、/ dev/mapper/mpathap1がそのディスクの最初のパーティションである、少し変わったセットアップがあります。
/ dev/mapper/mpath?p1デバイスを使用してソフトウェアRAIDアレイを構築したため、これらにはスケジューラがありません。実際には、実際の基盤となるディスクである/ dev/mapper/mpathaデバイスに依存するためです。
すべての/ dev/mapper/mpath?デバイスにはスケジューラーがあり(これを「期限」に変更しました)、すべての/ dev/mapper/mpath?p1デバイスにはありません。これもLVMの動作と同じです。基盤となるディスクにはスケジューラがありますが、論理パーティションへの個々のマッピングにはありません。
これがRedHatまたはCentOSの場合は、tuned-adm
ユーティリティを使用して、プロファイルを「enterprise-storage」プロファイルにシフトしてください。
tuned-adm profile enterprise storage