ディスク設定の最適化
SSDディスクおよび回転式ディスクの最適な設定を構成します。
ほとんどのLinuxディストリビューションにおいて、デフォルトのディスク構成は適切ではありません。ソリッド・ステート・ドライブ(SSD)または回転式ディスクの設定を最適化するには、以下の手順を実行します。
注: SSDディスクまたは回転式ディスクの最適化設定を実行します。いずれかのストレージ・タイプで両方の手順は実行しないでください。
SSDの最適化
SSDの最適な設定を確認するには、以下の手順を実行します。
SysFS
回転フラグがfalse
(ゼロ)に設定されていることを確認します。この設定によって、オペレーティング・システムによるあらゆる検知がオーバーライドされてドライブがSSDと見なされます。
- SSDストレージから作成されたすべてのブロック・デバイス(mdarraysなど)に、同じ回転フラグ設定を適用します。
lsblk
を実行してデバイスを決定します。lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 253:0 0 32G 0 disk | |-sda1 253:1 0 8M 0 part |-sda2 253:2 0 32G 0 part /
この例では、現在のデバイスは
sda1
とsda2
です。- リストされているデバイスごとに、IOスケジューラーを
deadline
とnoop
のいずれかに設定します。例を次に示します。echo deadline > /sys/block/device_name/queue/scheduler
ここで、device_nameは、設定を適用するデバイスの名前です。
- deadlineスケジューラーはIOレイテンシーを最小化する要求を最適化します。確信が得られない場合はdeadlineスケジューラーを使用します。
echo deadline > /sys/block/device_name/queue/scheduler
- 対象となるブロック・デバイスがIOの最適化を実行する高度なIOコントローラーよりも下位のSSDアレイである場合は、
noop
スケジューラーが適しています。echo noop > /sys/block/device_name/queue/scheduler
- deadlineスケジューラーはIOレイテンシーを最小化する要求を最適化します。確信が得られない場合はdeadlineスケジューラーを使用します。
nr_requests
値を設定して、キューに入れることが可能な読み取り要求と書き込み要求の最大数を示します。マシン・サイズ 値 大型マシン echo 128 sys/block/device_name/queue/nr_requests
小型マシン echo 32 sys/block/device_name/queue/nr_requests
- ブロック・デバイスの
readahead
値を8KBに設定します。この設定によって余分なバイトを読み込まないようにオペレーティング・システムに通知が行われ、IO時間が増加して、ユーザーが要求しなかったバイトによってキャッシュが汚染される可能性があります。
注: SSDのRAIDの推奨readahead
設定は、RAIDインストールで使用されていないSSDの設定と同じです。- 編集するために/etc/rc.localを開きます。
- 以下の行を追加して起動時の
readahead
を設定します。touch /var/lock/subsys/local echo 0 > /sys/class/block/sda/queue/rotational echo 8 > /sys/class/block/sda/queue/read_ahead_kb
- /etc/rc.localを保存して閉じます。
回転式ディスクの最適化
- 先読み値が65536に設定されていないことを確認します。
sudo blockdev --report /dev/spinning_disk
readahead
を128に設定します。これは推奨値です。sudo blockdev --setra 128 /dev/spinning_disk