2010年7月24日土曜日

パイプ経由のログ出力はCPUを浪費する

このエントリーをはてなブックマークに追加
Apache HTTP Serverでログをパイプ経由でプログラムに出力すると、リクエストを処理するたびにログを処理するプログラムへのコンテキストスイッチが起こります。そのためアクセスが増えたときにCPUをかなり浪費します。UltraSPARC T1は32個のコンテキストを保持できて、1クロックでコンテキストスイッチできるので問題ないと思っていました。しかし、CPUの使用率が100%に達して、さらに負荷が掛かる状況になると違いました。

ftp.jaist.ac.jpにはパイプ経由のログ出力が3つあります。エラーログとアクセスログのrotatelogsへの出力と、以前紹介したSSDキャッシュのためのプログラムへの出力です。アクセスが多いときには最後の1つを止めていました。これを止めないと13,500クライアント、660リクエスト/秒が限界で、ロードアベレージが10,000を超えます。止めれば17,000クライアント、790リクエスト/秒までいけます。rotatelogsをやめてファイルにログを直接出力するようにすれば、さらに余力ができるはずです。今後はFirefoxのアップデートで欧米からのアクセスがなくなるので、そこまで逼迫することはないでしょうけど。

2010年7月22日木曜日

Mozilla.orgのミラーサーバの選択方法が変わりました

このエントリーをはてなブックマークに追加
何度か紹介していますが、Mozilla.orgのミラーサーバの選択は、各サーバのウェイトと地域に基づいて行われており、アジアのトラフィックの15%はアジアのサーバに割り当てられています。しかし、この設定では日本からグルジアやトルコにつながる確率も上がるため、ダウンロードの高速化にはあまり貢献しません。

北アメリカとヨーロッパはこの比率が50%になっていました。しかし、本日未明にこの地域の人達が、ほとんどのミラーサーバはこれらの地域にあるのだから100%でいいのではないかと言い出して、その通りに設定されました。

アジアは域内の接続性がよくないので単に比率を高めても意味がありません。それはMozilla.orgの担当者も認識していて、中国は別の一つの地域にしてあると言うのです。それなら日本も一つの地域にして、日本のトラフィックは100%日本に振ってくれないかと提案したら、この提案が通りました。

今日からはFirefoxやThunderbirdのダウンロードやアップデートは、国内のミラーサーバを介して行われるようになります。そして国内のミラーサーバの管理者は、深夜に北アメリカやヨーロッパから押し寄せるトラフィックに悩まされずに安眠できるわけです。これはうれしい。