夕方ころにメッセが来ました。送り主は百式管理人。ネットワークのルーティングを調べるコマンドに関して教えてほしいとのこと。どうも百式が遅くてしょうがないらしく、ネットワーク周りを調べていたようです。いつもお世話になっている百式管理人氏なので、ちょっと手伝ってみる。
いろいろ調べたのですが、結局ネットワークの問題ではなく、Apache のチューニングをいじって解決。PV に対して MaxClients の設定が甘かったみたい。
このコマンドの出力はどうなってるとか、ログに変な記録残ってないかとかメッセでやりとりしながら診断していたのですが、なんかコマンドの出力が変だなあと思ったら向こうは BSD。大学の LAN 管理では BSD を触ってましたが、かれこれ 3 年いじってないのでさすがに忘れています。手元には Linux しかなかったので、not GNU/Linux but BSD なコマンドで手こずりました。
MaxClients が少ないという結論に至るまでに、ちょっと時間がかかってしまったのですがその主な原因は僕の勘違い。
Linux だと、
$ ps auxw | grep httpd | egrep -v "(root|grep)" | wc -l
とかで httpd のプロセス本数を数えれば、1プロセス 1コネクションの Apache 1.3 系 (or 2.0 の prefork worker) なので、MaxClient の数が足りてるかどうかがだいたいわかります。
が、BSD の場合 ps aux の出力が違うというのに気づかず、結果が「5」とか「6」とかいう数値になっており、「コネクション数は問題ないなあ」と思い込んでしまいました。ここで間違った先入観を持ってしまったので、Apache への接続数に問題を絞り込むまでに時間を要してしまいました。迂闊。
結局、
$ netstat -a | grep http | wc -l
として、接続数が天井つついてることに気づいたのですが。もっと早く気づけオレて感じですね。(笑)
安定して動いてるようで、何より。さーて、何おごってもらおうかな。w