岡本です。 > naka です。 > > On Mon, 7 Jan 2002 16:50:01 +0900 > "fujiura" <hideki@xxxxxxxxxxx> wrote: > > > 皆さんのSSはどれくらいあつくなりますか? > > 自分のOBSSはIBM6Gを入れてケースも完全に閉じていますが、ほんのり暖かくなる > 程度です。ネジはそれなりに熱いですが... > > それほど煩雑に disk アクセスがあるわけでもないので、 hdparmを使ってマメに > 回転を止めるようにドライブの設定を変えています。 hdparmというのを初めて知って私も試して見ました。 うちのOBSSはメインがルータ用途、付随するサーバ機能をプラスしているぐらいで ファイルサーバみたいにディスクアクセスを必要としていませんから、ディスクが 止まっていてもぜんぜん問題ありません。 今回はその顛末を...。 最初このメールを読んで目標を立ててみました。 1. ほとんどアクセスがないので、遊んでいる時間は止めて静かにする これだけ。(笑) それでhdparm-4.6をInternetで拾ってきてインストール。 "-S 1 /dev/hda"をつけて起動。これで5秒アイドルになると自動的に止まって くれるようになりました。 簡単簡単、ルンルン、なんてのもつかの間。1分に1回のペースでHDDが起き上がりま す。 当初は「まぁ1分のうち10秒ぐらいだから...」なんてほおっておいたのですが、 これくらいのペースで寝たり起きたりしていると、逆に気になって気になって...。 1分に1回というと、うちの場合fetchmailがこの頻度で動いているので、まずこれを 調査してみました。 ソースを見たところ、メールが来ていないときに何かテンポラリで書き出すなんて ことはしていないことを確認。 fetchmailrcの変更を毎回確認しているみたいだったので、これをRAMディスクに 移動させて様子をみたけれども、まったく変化なし。 次に、straceでファイルアクセスを覗いてみると、name resolver関連で /etc/hostsなんかにアクセスしてる。でもReadOnly。(ココがミソだった:後述) 書き込みは一切なし。(長くなりそうな予感...) とりあえず/etc/hostsへのアクセスを止めさせるため、nscdを導入。 しかしぜんぜん/etc/hostsへのアクセスが止まない。ちゃんとnscdはキャッシュを 返しているのにもかかわらず。 (ここでわき道にそれる) glibc-2.1.3のソースを覗くと、gethostbyname内nscdからの戻り値サイズの 判断にバグがあることが判明。新しいglibc-2.2.5を落として確認してみると、 2001/9/11にパッチが差し込まれていた。つまり、OBSSデフォルトのglibc-2.1.3 では、nscdがhostsに対して効かない、無駄であることが判明。 ここで、 1. glibc-2.1.3にパッチをあてて入れ替える 2. glibc-2.2.5を入れる なんていうのを考えたのですが、面倒くさそうなので、安易に/etc/nsswitch.conf のhostsの順番をdns filesに変更して/etc/hostsへのアクセスを止めさせました。 これで様子を見たところ、1分に1回アクセスするというのがなくなり、HDDの アクセスは気にならなくなりました。 その後ReadOnlyでファイルアクセスしたときに、なぜHDDにアクセスするのか 調べたのですが、これはどうも「アクセス時間」を記録するためみたいだ ということがわかりました。これを回避するためには、対象ファイルがある ファイルシステムを「アクセス時間」を記録しないようにしてマウント すればよいそうです。 例: mount -o remount,rw,noatime / こうすれば読み込みだけでアクセスしたファイルがHDDを起こすということは なくなるようで、根本的な対策になるかと思います。 でもこれと引き換えに、find -atimeが効かなくなるんでしょうね。 まとめると、 1. mountオプションで「アクセス時間」の記録をやめると効果絶大 2. findコマンドで、最近アクセスがあってかつ残っているファイルを探すと 何のプロセスかあたりがつきやすい 3. プロセスにあたりがついたら、straceで追いかけてみる 4. name resolverだったら、/etc/nsswitch.confを変更するか、glibcにパッチを あてる ただし、書き込みがある場合は厄介です。 1. /proc/sys/vm/bdflushあたりのパラメータを変更する 2. RAMディスクに書き出す なんていうのが一般的でしょうか。2番のRAMディスクは、捨てていいファイルなら よいですが、システム終了時、また定期的にrsyncかなにかでHDD上に退避し、 システム起動時にまたRAMディスクに戻してやる必要があるかと思われます。 (Linuxならもっと簡単な方法があるのかな?) あと、ext2以外のファイルシステムの場合は、事情が違うようです。特に ジャーナリング機能を持つものなど。 私の場合、目標は高くなかったのがよかったのだと思いますが、Internetでは 「無音」「静音」を求めてかなり努力されている方の涙ぐましい努力のページが いくつかありました。 本気でやろうとすると、結構大変な世界ですね。 岡本剛和@横浜のチベット在住なので熱暴走心配なし?
Follow-Ups:
- [obu:01351] Re: 熱暴走Takekazu Okamoto
- [obu:01198] 熱暴走fujiura
- [obu:01210] Re: 熱暴走naka
- Prev by Subject: [obu:01305] OBS への開発希望調査 (was Re: Re: 対抗製品?
- Next by Subject: [obu:01307] Re: OBS への開発希望調査 (was Re: Re: 対抗製品?
- Previous by thread: [obu:01221] Re: 熱暴走
- Next by thread: [obu:01351] Re: 熱暴走
- Indexes:[Main][Thread]