3月 192009
 

自宅サーバが安定しない。」と、ずっと書き続けてきたのだけど、昨日 csup したら 7.1-STABLE が 7.2-PRERELEASE になっていたので、サーバが凍り付く前にリブートしてバージョンアップでけた。

と、言うことで最近のサーバは uptime 12days を記録し、去年の 10 月以来最高の記録となりました;-)。

ちなみに さくらインターネット が自社のサーバを 7.1-RELEASE にアップグレードするってアナウンス出したので思わずサポートに「7.1-RELEASE はフリーズしてしまうけど、サービスにおいて大丈夫ですか?安定してくれないとイヤだなぁ。」と書いたら「検証の結果、凍りつくハードウェアも確かにあったけど、サービスに利用しているハードウェアは大丈夫なのでバージョンアップします。」との事でした。でもって回避策も考えているそうな。

で、うちのサーバがどうして安定したか。と言えば OS の改修とか色々考えられるのですが、現在のうちのサーバの稼働状況を見てみると以下のような感じです。

・DNS サーバ
・ウェブサーバ(httpd-2.2.9) port:80 最大プロセスが 140 個程度
・ウェブサーバ(httpd-2.2.9) port:8080 最大プロセスが 20 個程度
・メールサーバ(sendmail)
・POP3/IMAP4 サーバ(courier-imap-4.4.1)
・自宅網内用 SAMBA サーバ
・cvsupd
・IPv6 ルータ(dtcps,dtcpc)

こんな感じでしょうか。サーバ部分とルータ部分が存在しているのですが、PPPoE はブロードバンドルータにやらせています。

さて、安定させるために行ったことは大体以下です。

・IPv6 ルータを別のマシンで行うようにする
・ダメもとでスケジューラを SCHED_ULE から SCHED_4BSD に変更
・httpd を prefork から worker に変更

こんな感じでしょうか。ただ、これらの事象がサーバの安定に貢献できたのか、さだかではありません。

httpd をプロセス起動からスレッド起動に変更したおかげで ps -ax で見た感じはかなり少なくなりました。 ps -axH | wc -l すると大体 300 近い数が存在しているので、この状態を高負荷状態と行って良いのかもイマイチ不明です。

ただ、ロードアベレージはそんなに高くは無いし、CPU クロックもいつも最高速で回っている。と言うのでもありません。この辺りの情報は MRTG で取得しています。なのでやはり、プロセスやスレッド回りで OS 的に何かあったのかなぁ?と考えてしまうのでありました。

httpd を prefork から worker に変更したのが一番大きいのかなぁ?あ、きっと OS 側に修正が入ったのでしょうねぇ。csup するたんびに kern_ とかのソースが更新されていると嬉しくなっていましたし。< 僕;-)。