2009年11月1日日曜日

Ubuntu 9.10のリリース直後に遅かったわけ

このエントリーをはてなブックマークに追加
今回のUbuntu 9.10のリリースの際に、ftp.jaist.ac.jpが本来の性能を発揮できず、日本のUbuntuユーザの皆様にご迷惑をおかけして申し訳ありません。

今回性能を発揮できなかった理由は二つあります。一つは、ディスクアレイが一つ故障していたため、代わりにJAISTの学内インフラのEqualLogicのiSCSIストレージを借りていたこと。もう一つは、Firefoxのアップデートが突然Ubuntu 9.10のリリースの前日に降ってきたことです。

Firefoxのアナウンスの日付はUbuntuの二日前ですが、日本時間ではFirefoxが28日の正午、Ubuntuが29日の23:30です。Firefoxのアップデートが落ち着かないうちに、Ubuntu 9.10がリリースされることになってしまいました。それでも普段のftp.jaist.ac.jpなら問題なくさばけたはずです。誤算はiSCSIでした。

普通はiSCSIのイニシエータは、サービス用のネットワークインターフェイスとは別のインターフェイスを使って、ルータを介さずにターゲットに接続します。

しかし、今回は一時的な措置ということもあり、サービス用のインターフェイスで、しかもルータ越しに学内のEqualLogicにつないでいました。ftp.jaist.ac.jpはネットワーク的には学外にいるので防火壁越しです。それでもベンチマークでは壊れたFCのディスクアレイと同程度の性能は出ていたので、安心してのんびり次のストレージの計画を練っていました。

ところが、29日の夜にUbuntu 9.10のリリースに備えて計測したときに、少なくとも40MB/sは出るはずのiSCSIのリードが1.6MB/s程度しか出ていないことに気がつきました。

これは、Firefoxのアップデートの大量のアクセスがまだ続いていたことが原因でした。EqualLogicに載っていたFirefoxのアップデートは、すでにキャッシュプログラムがSSDに送り込んであります。iSCSIへのアクセスが多くて詰まったのではなく、大量のリクエストのせいでiSCSIを含む受信側の処理全体が詰まってしまったのです。

Sun Fire T2000は4つのGbEがあるのですが、ftp.jaist.ac.jpでは4つをデータリンク層ですべてアグリゲートしているのではなく、2つずつアグリゲートして別のルータにつないであります。結構な頻度でルータのファームウェアを更新しているので、その間にサービスが止まらないようにするためです。2つのリンクの負荷分散にはIPMPを使っています。そのため送信は2つのリンクに分散しますが、受信は1つのリンクで受けます。

T2000のネットワークインターフェイスの割り込みチャンネルは1つしかないので、1つのネットワークインターフェイスの割り込み処理を1つのコアで行います。したがって送信には4つのコアが使えますが、受信には2つしか使えません。普段は桁違いに送信が多いので、これで問題ないのですが、今回は受信側が詰まってしまいました。

UbuntuもEqualLogicに載っていたので、これではもたないと思ってUbuntu 9.10のISOイメージをリリース前にSSDに送り始めたのですが、間に合いませんでした。正常に配布できるようになったのは翌日の昼くらいだったと思います。今回は本当にすみません。

反省はしていますが、痛い目にあうのを覚悟の上で普通はやらない構成を試すことは、これからもやりますのであしからず:-P

0 件のコメント:

コメントを投稿