DNSとかProxyとか、色々任せてるサーバーがあるのだが、最近どうもiPod touch (件のサーバーにDNSとProxyで頼ってる)からのネット接続が遅いと思ったら、サーバーのload averageが60以上になってた。
といっても、namedやsquid3の処理が過大になっているわけではなく、大量のプロセスを走らせているのは、sargである。squid3自体の負荷はAtom D510でせいぜい20%(デュアルコア、HT無効で200%中)といったところなのだが、squidのlog解析ソフトであるsargの処理がなかなか終わらない状態になっているのだ。
今までは問題なく集計できていたのになぜ?と更に調べると、squidが吐き出すログが、一日あたり約5000000行に達していた!ゼロがいっぱいだと読みにくいので書き直すと、500万行である。なんとか解析を終えたと思われる直前数日分を見ると、ログが250万行の日で接続ユーザー数は2000人、5GBのデータを送り出している(Proxyなので、サーバーはほぼ同じだけ受信もしている)。sargはこれだけのログを、ユーザー別(正確には接続元別)に集計し、アクセスの多いサイトやユーザーをリストにまとめようとする。そこでおそらく大量のsort処理が発生し、しかも、その程度の作業はすぐ終わるもんだと思っているのか知らないが、大量のプロセスを並列処理しようと一度に開始してしまっているのだ(多分)。だが残念なことに非力なAtomプロセッサーではそれが中々終わらない。ちなみに、FX-8350で250万行のログを処理させてみたら(SSDとかメモリ速度とか、CPU以外にも色々差はあるが)、それでも30分ほどかかった。
とりあえず、一度サーバーを再起動させて、無効にしてたHyper-Threadingを有効にし、sargの設定も集計項目を減らしたりして対処してみたが、今のところは経過観察中である。
ちなみに、一昨日の夜から昨日の朝にかけて、「へびろぐ」の画像が一部無いが、原因は上記の内容ではなく、カメラを接続してあるRaspberry Piが原因不明のダウンをしたことによる。
Post a Comment