ソフトウェアエンジニアの日常の雑記

日々思ったことをまとめます

Linux(Fedora)でSSDとHDDを併用した時にやっておいた方がいいかもしれない設定

LinuxSSDとHDDのハイブリッドで運用してるんだけど、HDDの遅さに引きづられてる?みたいな場面が結構あるので、下記の設定を試したら、結構バランスがよくなったのでメモ

マウント

SSDのマウントは discard,defaults,noatime オプションをつける
再起動で消えるキャッシュ等はtmpfsに逃すこと

UUID=xxxxx / ext4 discard,defaults,noatime 1 1
tmpfs /tmp tmpfs defaults,rw 0 0
tmpfs /home/ユーザ名/.cache tmpfs rw,defaults,size=200M 0 0

こんな感じ

IOスケジューラ

SSDとHDDでIOスケジューラを分けたほうがいいと感じたので、分けよう

# cat /sys/block/sda/queue/scheduler
noop deadline [cfq]

こんな感じになっていると思うが、cfqはHDDの方に最適化されてるぽいからSSDの方はnoopを使う
下記を実行する

# echo "noop" > /sys/block/sda/queue/scheduler
# cat /sys/block/sda/queue/scheduler
[noop] deadline cfq

※sda が SSDだとして

これでSSDはnoopになった。
この設定は一時的なものだから起動スクリプトに設定をしないと動きません。

# cd /etc/init.d/
# vi user_boot
==========================
#!/bin/sh
. /etc/init.d/functions
case "$1" in
start)
echo "noop" > /sys/block/sda/queue/scheduler
;;
esac
exit 0
==========================

雑ですけど、こんなファイル作って下記のように設定すれば起動時に設定されます。

# cd /etc/rc2.d/
# chmod +x ../init.d/user_boot
# ln -s ../init.d/user_boot S95boot