ablog

不器用で落着きのない技術者のメモ

Oracle + ext3 を使う時の「オレオレ」ベストプラクティス

以下のベストプラクティスは過去の記事に書いてるけど、設定方法を書いてなかったので、調べて書いてみた。

  • 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
# 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'

参考


追記(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