以下のベストプラクティスは過去の記事に書いてるけど、設定方法を書いてなかったので、調べて書いてみた。
- I/O スケジューラ: deadline
# vi /boot/grub/grub.conf kernel /vmlinuz-2.6.18-128.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet elevator=deadline # shutdown -r now
- ブロックサイズ(-b)毎に inode(-i) を作成する
# mke2fs -c -b 4096 -i 4096 -j -m 1 /dev/sda1
- fschk が走らないようにする
# tune2fs -c -1 -i 0 /dev/sda1
- ジャーナリングモード: ordered & relatime
# mount -t ext3 -o data=ordered,relatime /dev/sda1 /u02
relatime はカーネル2.6.20以降。relatime を使えない場合は noatime を使う。
↓は fstab に書く場合の例
# cat /etc/fstab ... LABEL=/u01 /u01 ext3 defaults,noatime,data=ordered 1 2
- 設定確認方法
# tune2fs -l /dev/sda1 # dumpe2fs /dev/sda1 # ls /dev/sd[a-z][0-9]* | xargs -n1 tune2fs -l | egrep 'Maximum mount count|Check interval'
参考
- http://www.linux.or.jp/JM/html/util-linux/man8/mount.8.html
- http://homepage.mac.com/chartscape/LANDISK/PostHackkit.html
- カーネル2.6を採用した唯一の企業向けLinux OS「SLES9」
- Linux Kernel 2.6のI/Oスケジューラー | Unofficial DB2 BLOG
- 最新のFedoraとUbuntuではrelatimeもnoatimeもいらない? - 科学と非科学の迷宮
追記(2010/05/05):
こんな確認方法もあるな。
# df -t ext3|awk '{print $1}'|xargs -n1 tune2fs -l| egrep 'Maximum mount count|Check interval' Maximum mount count: -1 Check interval: 0 (<none>) Maximum mount count: -1 Check interval: 0 (<none>) ...
関連
追記(2009/12/07):
現在のI/Oスケジューラが何になってるか確認する方法
# cat /sys/block/sda/queue/scheduler