MRTGでサーバを監視するときには、普通はサーバにnet-snmpをインストールしてSNMPで情報を取得します。しかし、TCPのコネクション数が1万を超えると、snmpdがTCP-MIBのコネクションの情報を収集するためにCPUを浪費します。以前紹介したようにキャッシュを増やすと、かなり改善されますが浪費はします。TCP-MIBを外したsnmpdを作るという手もありますが、ftp.jaist.ac.jpではMRTGをローカルで動かしているのでSNMPにこだわる必要はありません。
日本最強の看板を下ろしたミラーサーバftp.jaist.ac.jpの管理者の一人が、
このサーバにまつわるよしなしごとを語ります。
English versions of some posts on another blog.
2009年9月14日月曜日
net-snmpのC10K問題(後編)
なぜsnmpdがリクエストに答えないのか突き止めるべく、まずprstat (topみたいなやつ)で様子を見てみたら、snmpdが3%以上のCPU使用率でトップに君臨していました。この使用率は32CPUで計算されているので、本当は8コアのUltraSPARC T1にはかなりの重荷です。
いったい何をそんなに忙しくしているのかとtrussで追ってみたら、ひたすらファイル記述子6番からgetmsgでメッセージを読んでいました。このメッセージの読み込みが忙しくてリクエストに答えるひまがないようです。
いったい何をそんなに忙しくしているのかとtrussで追ってみたら、ひたすらファイル記述子6番からgetmsgでメッセージを読んでいました。このメッセージの読み込みが忙しくてリクエストに答えるひまがないようです。
net-snmpのC10K問題(前編)
昔C10K問題というのが話題になりました。Y2K問題をもじった名前なので2000年から数年間くらいですね。インターネットのバックボーンが1Gbpsに到達した。GbEを備えた1GHzのCPUのサーバが安価に手に入るようになった。しかし、10,000クライアントを同時にさばこうとすると、ハードウェアではなくOSがボトルネックになるという問題です。
登録:
投稿 (Atom)