大規模サイトの性能改善作業とは、どういうものなのか。リクルートの中古車情報サイト「カーセンサーnet」を全面リニューアルした体験を基に、その実態をレポートする。新システムはオープン2カ月前の時点で、目標性能に遠く及ばないことが判明。最終的に、Linuxカーネルのある処理方式が性能劣化の原因だと分かった。

 「ブラウザーの表示に10秒もかかる。処理できるアクセス件数も全然足りない。これでは話にならない」――。

 2010年夏。中古車情報サイト「カーセンサーnet」の全面リニューアルで、性能検証を担当していた私はあぜんとした。リニューアルオープンを間近に控えながら、新システムの性能が遅すぎることが判明したのだ。

 そこから私の2カ月にわたる苦闘が始まった。検証作業は連日深夜まで続き、性能試験の実施回数は約100回に及んだ。その中で、性能が出ない理由が一つひとつ判明していった。ファイル共有システム「NFS」の設定、Webサーバー「Apache」のパラメーター、PHPアプリケーションのキャッシュ設定など。修正によって性能は改善していったが、それでも目標には届かない。

 手を尽くした結果、Linuxカーネルのソースコードまで調査することになった。そして、ようやく見つけた。LinuxカーネルのNFS関連のコードに性能劣化の原因が潜んでいたのだ。回避策を施すと、性能は劇的に改善した(図1)。

図1●「カーセンサーnet」のリニューアルで実施した性能改善策
[画像のクリックで拡大表示]

 私が勤務するリクルートでは、仕事探し、住宅、旅行、グルメなど数多くの大規模サイトを運営している。どれも機能が複雑化し、アクセスが増えるにつれ、性能関連のトラブルが増えてきていた。そこで2010年4月、私の属する性能検証チームが組織された。今回の連載では、カーセンサーnetのリニューアルで、我々がどのように性能問題を解決したかをレポートしたい。

3年目の若手に任された

 私は今回のリニューアルで、性能検証のリーダーになったのだが、実は新卒3年目の若手である。リクルートの情報システム部門への配属以来、担当はずっとシステムインフラ。社内で「LinuxOS勉強会」などを主催してきた。好奇心と負けん気の強さだけは自信がある。

 とはいえ経験不足は否めない。それぞれ得意な技術分野を持つチームのメンバーと協力しながら、絶対に目標を達成してやると決意していた。開発チームが作った新システムの性能を検証し、チューニングを施すのだ。

この先は会員の登録が必要です。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら