以前にも少し触れたubuntu-laptop-modeのパラメータと関連するkernelの設定をいじったので内容をメモ。
ubuntu-laptop-modeは小さなスクリプトと設定ファイルでLinuxカーネルの設定やHDDの設定を行い、HDDをスピンダウンさせるためのものです。
設定ファイルは/etc/default/ubuntu-laptop-modeでaptでインストールした後、同ディレクトリにあるubuntu-laptop-mode.defaultをコピーして作成します。手動で操作する時はubuntu-laptop-mode start/stopとします。
設定項目を列記すると以下のようになります。
先読みに関するもの
- READAHEAD (default: 4096 [KB])
先読みをどれくらいのサイズ行うかの設定。先読みを行うことで将来のディスクの動作を減らす可能性がある。反面大きすぎるとディスクの性能が大幅に低下します。
blockdev --setra を使用してブロックデバイスのドライバの設定を変更しています。
- DIRTY_RATIO (default: 40 [%])
未保存のデータがどれ位になったらプロセスが書き込みを始めるかの全メモリに対する最大パーセンテージ - DIRTY_BACKGROUND_RATIO (default: 5 [%])
バックグラウンドのカーネル内デーモンがどれ位のメモリを未保存データが使ったら書き込みを始めるかの最大パーセンテージ
- MAX_AGE (default: 600 [秒])
書き込みされてからどれくらいの時間が経過したらディスクに書き込むかの値。
このパラメータに影響されるのは、書き込まれてからの時間、書き込みプロセスの動作間隔、
ファイルシステムにより、データのコミット時間。
具体的には - /proc/sys/vm/dirty_writeback_centisecs [writebackが起こる間隔]
- /proc/sys/vm/dirty_expire_centisecs [ライトされてからどれ位で掃き出すか]
- ext3とreiserfsの場合mount時のcommitパラメータ
- NOATIME (default: 1 [Booleam])
パーティションをマウントする時にアクセス時間を更新しないようにするためのnoatimeオプションをつけて再マウントするかどうか。1=再マウント,0=しない
- DO_HD (default: 0 [Boolean])
ハードディスクにパラメータをセットするかどうか(0=しない,1=する)
0だと次のSPINDOWNパラメータは未使用となる
hdparmを使用し、HDDのAPM機能とアコースティック管理も最高に設定
- SPINDOWN (default:12 [5sec])
hdparmでハードディスクがアイドルがどれくらい続くとスピンダウンするかの指定。
短くしすぎるとアップダウンを繰り返し、ハードディスクを痛めるので注意。
私のしてる設定は DIRTY_RATIO、DIRTY_BACKGROUND_RATEをデフォルトの1.5〜2倍程度、MAXAGEは当分起こらないように6000とか60000の大きな値に。SPINDOWNは120(10分)として微妙に長めに。
ディスクのスピンダウンに関する設定は、実はLaptopだけではなく、自宅サーバなどのスモールサーバでもかなり有効ですし、基本的にprocやマウント方法なので他のLinuxでも当然同じように設定出来ます。24時間運転なPCでは2.5inch HDDで適当にSpindownするのがグリーンでいいかもです。