メインメニュー
最近の投稿
記事カテゴリ一覧
Apple Store(Japan) Apple Store(Japan)

2008年1月20日(日曜日)

daemontoolsがCPUを使い過ぎる件

カテゴリー: - spiky @ 11時24分43秒 このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをTagClickに追加

以前から気になっていたのですが、なかなか時間が取れなかったのと、そもそもの根本原因を突き止めきれなかったのでほったらかしにしていたdaemontoolsの負荷の問題がようやく解決しそうです。

MacOS X 10.4 (Tiger)をwebサーバやらメールサーバに使っているのですが、qmailを使うときに定番の、プロセス監視プログラム"daemontools"が異常にCPUの負荷を食うのです。

そのおかげで、ApacheからMySQLへのアクセスが異常に遅くなりタイムアウトする事しばしばで、ブラウザでページを見たときにページが表示されないという状況が多々発生し、サーバとしてはまったく使い物にならない状況でした。

なので、マシンを再起動した後にはかならずsvscanbootやらsvscanやら、superviseなどをいちいち全部手でkillし、とりあえず運転をしていたのですが、これではdaemontoolsを使っている意味が全くありません(汗)

たぶん何か問題があるはず、と思い、いろいろと調べていたのですが、まさかTigerのカーネルにバグがあるとは思いもよりませんでした。サーバとかではなく、普通の個人ユースでは問題にならないはなしですもんね。

ひょんなことで、知人の方の日記でその事を知り、「そうそう!まさにそれ!」と飛びついたのでした。

どーもはなからTigerを疑う事をしなかったので、見つけきれなかったようです。

以下のURLによると、"named fifoのPOLLINが常にPOLLNVALを返すので、daemontoolsはスリープする事無く、CPUリソースを食いつぶしながら延々とループを繰り返す"のだそうです。

supervise broken on MacOS 10.4 (Tiger)

なるほどー。svscan.cのソース最後の方にあるsleep(5)をだめもとでsleep(30)にしてみましたが、なんの効果もなかった訳だ(汗)

さっそく/package/admin/daemontools/compile以下で

% make clean
% make

してから、/package/admin/daemontools/command以下にある実行イメージを全て入れ替えて、daemontoolsの再起動。

% /package/admin/daemontools/command/svscanboot &

その後、アクティビティモニタでCPU負荷を見てみると、daemontoolsを動かす前と動かした後で殆ど負荷の高さに変化が見られません!ばっちりです!

これでようやく再起動したときや、UPSがサーバを再起動したときにサービスがきちんと復旧できそうで安心しました。


このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをTagClickに追加

コメント

このコメントのRSS

TrackBack URL : http://www.sailweb.net/modules/wordpress/2008/01/20/163/trackback/

この投稿には、まだコメントが付いていません

 

 

コメントの投稿

改行や段落は自動です
URLとメールアドレスは自動的にリンクされますので、<a>タグは不要です。
以下のHTMLタグが使用可能です。
<a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <br> <code> <em> <i> <strike> <strong>

 


ご注意 : セッティングにより、コメント投稿から実際に閲覧できるようになるまで暫く時間が掛かる場合があります。 再投稿の必要はありませんので、表示されるまでお待ち下さい。

42 queries. 0.143 sec.
Powered by WordPress Module based on WordPress ME & WordPress

sailweb検索
Apple Store(Japan)
月別過去記事
なかのひと

ホーム -  ブログ -  フォトギャラリー -  リンク -  お問い合わせ
Powered by sailweb.net ? 2005-2007 sailweb.net
Theme Designed by OCEAN-NET