2008/12/09(Tue)小規模サーバーの静音化
2008/12/09 20:16
実は世代的にはかなり前のもう10年くらい前に作られたHDDだし。
で、気になるレベルであるが、30秒置きくらいに何か書いている感じ。
スピンダウン時間設定が全くの無駄じゃないか!カリカリうるさいし……。
というわけで、静音化にチャレンジしてみました。
ちなみにOSはFedora 7 PPCです。
ログ周り
まずは、どのプロセスがアクセスしてるかを突き止める。とりあえず勝手に書き込まれる系と言えばログなので、/var/log辺りを$ ls -altする。
と、
# ls -alt /var/log/ 8364 -rw------- 1 root root 12501 2008-12-09 18:54 messages drwxr-xr-x 2 root root 4096 2008-12-09 18:54 httpd -rw------- 1 root root 594965 2008-12-09 18:54 cron -rw------- 1 root root 3539 2008-12-09 18:53 secure -rw-r--r-- 1 root root 146292 2008-12-09 18:51 lastlog -rw-rw-r-- 1 root utmp 5760 2008-12-09 18:51 wtmp drwxr-xr-x 13 root root 4096 2008-12-09 04:40 . …messages, secure, lastlog, wtmpは今ログインしたばっかりから仕方ないということにして、httpdとcronに注目。
中身を見てみる。
- httpd
- 自分しか使わないし、変なポートでひっそり開けてるだけなので、ログもそれほどない。
- cron
- やっぱこいつか…。
> /dev/null 2>&1してても、コマンドを実行したというログは以下のように残る模様。
Dec 9 18:54:01 zircon CROND[21913]: (root) CMD (wget -O - 'http://dyn.value-dommain.com/cgi-bin/dyn.fcg?XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' > /dev/null 2>&1)
cronの/var/log/cronログ出力の止め方
最初ログを書いてのがcronさんだと思ってたが、実はsyslogさんだった。(というわけで、crontabにログをどうこうするコマンドは無い。)
以下を編集。
# vim /etc/rsyslog.conf - cron.*/var/log/cron + #cron.*/var/log/cron
設定を有効化。 # service rsyslog restartこれをやるとcronの全てのログが止まるようなので、各自の事情に合わせてどうぞ。
サービス系
次に、常駐系のサービス。ま、常時立ち上がってるんだからこれしかないですね。
ntpd
ntpdがdriftfileというのを吐くとHDDにアクセスされるらしいので、それを削除。# vim /etc/ntp.conf - driftfile /var/lib/ntp/drift + #driftfile /var/lib/ntp/drift
ntp.confを再ロード # service ntpd restart
不必要と思われるものをばっさばっさ切ります。
なんか静音化というより別の方向に走ってる気もしますが、使ってないものを立ち上げておくのも無駄なのでねぇ。この際。
Bluetoothついてない # service bluetooth stop # chkconfig bluetooth off もはやISDN使ってない # service isdn stop # chkconfig isdn off NFSも使う予定ない # service nfslock stop # chkconfig nfslock off yumのアップデートは手動でOK # service yum-updatesd stop # chkconfig yum-updatesd off スマートカード認証もしない # service pcscd stop # chkconfig pcscd off
一通り終わったら、とりあえず$ top -d1とやって、1秒ごとにプロセスの挙動を見てみる。
細かい起動オプションまで見たければ、cを押すと引数まで表示されるのでオススメ。
次なるターゲットはというと、別の窓で# hdparm -y /dev/hdaとやってみて、HDDがいったん止まった後、再び回転が始りかけたとき、CPUの負荷が上がったものを疑えばよい。
まだ勝手にHDDが回り始めるので、原因は何かとtopをにらんでいたら、automountというプロセスだった。
文字通り、デバイスをオートマウントしてくれるプロセスだが、サーバー機にはUSB挿したりする機会もないので、切っちゃっていいや、ということで、切る。
automountばいばいー # service autofs stop # chkconfig autofs off
ここまでやってみると、パタッとまるで動いていないんじゃないかという位、静かになった。
これで夜も安眠できそうですね。
追記
最近またうるさくなってきたので、さらにサービスを止めることに。デスクトップ用途向けらしいのでConsoleKit # service ConsoleKit stop # chkconfig ConsoleKit off コンソールログインしないのでコピペdaemonとか要らない(sshのみ) # service gpm stop # chkconfig gpm off 印刷類しない # service cups stop # chkconfig cups off avahiいらない(Macとかで使われているネットワークサービス) # service avahi-daemon stop # chkconfig avahi-daemon off IPv6使ってない # service ip6tables stop # chkconfig ip6tables off HAL(デバイス監視とかD-busのためのモジュール?)いらない # service haldaemon stop # chkconfig haldaemon off NFS関連使わない # service rpcbind stop # service rpcgssd stop # service rpcidmapd stop # chkconfig rpcbind off # chkconfig rpcgssd off # chkconfig rpcidmapd off udev(ハードウェアの自動認識関連?なにも増やさないので要らん。) # service udev-post stop # chkconfig udev-post off IBM Power RAID用のサービスらしいiprdump, iprinit, iprupdate # service iprdump stop # service iprinit stop # service iprupdate stop # chkconfig iprdump off # chkconfig iprinit off # chkconfig iprupdate off netfs 起動時とかにファイルシステムにリモートマウントしないのでいらん # service netfs stop # chkconfig netfs off SELinux使ってない # service restorecond stop # chkconfig restorecond off
で、現状動いているものはこのような感じ。
# chkconfig --list | grep ":on" anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off hdparm 0:off 1:off 2:on 3:on 4:on 5:on 6:off httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off kudzu 0:off 1:off 2:off 3:on 4:on 5:on 6:off messagebus 0:off 1:off 2:on 3:on 4:on 5:on 6:off network 0:off 1:off 2:on 3:on 4:on 5:on 6:off ntpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off sendmail 0:off 1:off 2:on 3:off 4:on 5:on 6:off sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off