CentOS 6では、このテキストに/etc/tune-profiles/my-server/ktune.sysconfig
がありました(私はコードが何をしているかを説明するコメントを参照しています):
# This is the I/O scheduler ktune will use. This will *not* override anything
# explicitly set on the kernel command line, nor will it change the scheduler
# for any block device that is using a non-default scheduler when ktune starts.
# You should probably leave this on "deadline", but "as", "cfq", and "noop" are
# also legal values. Comment this out to prevent ktune from changing I/O
# scheduler settings.
ELEVATOR="deadline"
# These are the devices, that should be tuned with the ELEVATOR
ELEVATOR_TUNE_DEVS="/sys/block/{sd,cciss,vd,dasd,xvd}*/queue/scheduler"
しかし、CentOS 7はktune
を残したようです。デフォルトのI/Oスケジューラを変更する別の method が表示されます。
elevator
パラメータをGRUB_CMDLINE_LINUX
ファイルの/etc/default/grub
行に追加します。
# cat /etc/default/grub
...
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=vg00/lvroot rd.lvm.lv=vg00/lvswap elevator=noop"
...
そしてそれは続く。しかし、これはシステム全体の変更になります。 CentOS 6でのような、ELEVATOR
パラメーターで指定されたI/Oスケジューラーを取得するブロックデバイスを指定できるソリューションを探しています。 elevator_tune_devs
パラメータをGRUB_CMDLINE_LINUX
行に追加することを望んでいましたが、- this によると、そのようなカーネルパラメータはありません。私はこれができることを知っています:
echo 'noop' > /sys/block/hda/queue/scheduler
例えば、私は再起動後も続く何かを望んでいました。これまでの最善の解決策は、そのecho
コマンドをワンショットサービスに固定して、起動時に毎回実行されるようにすることですが、私はCentOS 6の解決策に似たよりクリーンな方法を望んでいました。
少なくとも2つの方法があります。
disk
オプション でカスタム調整プロファイルを使用する/etc/rc.local
に挿入するか、特定のsystemdサービスを作成します。EDIT:ここにtuned.conf
ファイルの例があります:
# tuned configuration
[main]
summary=ZFS General non-specialized tuned profile
include=balanced
[disk]
# Comma separated list of devices, all devices if commented out.
type=disk
devices=sda,sdb
elevator=noop
上記でリンクしたRHELチューニングガイドで説明されているように、デバイスリストを定義する方法はいくつかあります。
sd*
);