最終更新: 2006-09-13 (水) 05:37:48
このページをDeliciousに追加 このページをはてなブックマークに追加 このページをlivedoor クリップに追加 このページをYahoo!ブックマークに追加

玄箱のディスクアクセスの抑制

目次

HDD のスピンダウンについて

noflushd デーモンを走らせて、 長時間アクセスがない時は HDD をスピンダウンするように設定する *1。 さらに、余計なディスクアクセスがなるべく発生しないように、 いくつかの設定を行う。 これにより、以下のような効果が期待できる。

  • 消費電力を減らす
  • HDD の発熱を抑える
  • 静穏性を高める

ただし、スピンアップを頻繁に行うと HDD の寿命を縮めるので、 玄箱をファイルサーバや Web サーバにしていて、 HDD を頻繁に読み書きしているような場合には、 この設定は行わない方が良いかもしれない *2

noflushd のインストール

noflushd のパッケージをインストール。

# aptitude install noflushd

インストール時の質問には、以下のように答える。

Default idle timeout in minutes:
5
Disks to monitor for inactivity:
/dev/hda

後で設定を変更する場合は /etc/default/noflushd を書き換える。

syslogd の設定

syslogd が1時間ごとに、以下のようなメッセージを /var/log/syslog に出力している *3

-- MARK --

/etc/init.d/sysklogd に以下の設定を追加。

SYSLOGD="-m 0"

cron の設定

cron が15分ごとに、以下のようなメッセージを /var/log/syslog に出力している。

Sep 12 19:53:01 kuro-box /USR/SBIN/CRON[285]:
	(mail) CMD (  if [ -x /usr/lib/exim/exim3 -a -f /etc/exim/exim.conf ]; then /usr/lib/exim/exim3 -q ; fi)

とりあえず、/etc/cron.d/exim の以下の行をコメントアウト。

08,23,38,53 *     * * *     mail   if [ -x /usr/lib/exim/exim3 -a -f /etc/exim/exim.conf ]; then /usr/lib/exim/exim3 -q ; fi

cron が1時間ごとに、以下のようなメッセージを /var/log/syslog に出力している。

Sep 5 20:17:01 kuro-box /USR/SBIN/CRON[538]:
	(root) CMD ( run-parts --report /etc/cron.hourly)

とりあえず、/etc/crontab の以下の行をコメントアウト。

17 *   * * *   root    run-parts --report /etc/cron.hourly

Samba の設定

Samba サーバをインストール した場合、 以下のファイルが頻繁に更新される。

  • /var/cache/samba/browse.dat

さらに、ネットワークドライブへの割り当てを行うと、 以下のようなファイルも時々更新されてしまう。

  • /var/log/samba/log.??????
  • /var/run/samba/sessionid.tdb
  • /var/run/samba/locking.tdb

これらのファイルを RAM ディスクに逃がすため、/etc/fstab に以下の設定を追加。

tmpfs           /var/cache/samba tmpfs  defaults                        0 0
tmpfs           /var/log/samba   tmpfs  defaults                        0 0
tmpfs           /var/run/samba   tmpfs  defaults                        0 0

PHP の設定

PHP をインストール した場合、 30分ごとにセッション破棄の処理が行われ、 以下のディレクトリやファイルへのアクセスが発生する。

  • /var/lib/php5
  • /usr/lib/php5/maxlifetime
  • /etc/php5/*/php.ini

/var/lib/php5 を RAM ディスクに逃がしてもダメなので、 この処理が1日1回だけ行われるように、/etc/cron.d/php5 を以下のように変更。

09 6 * * *     root   [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs -r -0 rm

設定変更を有効にする。

# /etc/init.d/cron reload
*1 laptop mode を使っても同様のことができるはずだが、試してみたところうまく動かなかった。
*2 とはいえ、玄箱は冷却が弱いので、HDD の発熱を抑えた方が長寿命につながる可能性もある。
*3 以前は20分ごとに出力されていたはず。どこかで変更されたのだろうか?

(Counter:1, Today:1, Yesterday:0)
トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   最終更新のRSS