「最大1100万ページ・ビュー止まりだったブログ・システムの処理性能を改善したところ,300万ページ・ビュー増の1400万ページ・ビューまで処理能力を高められた」。ブログ・サービスなどを手掛けるサイバーエージェントの佐藤真人氏(CAネットワーク新規開発局エンジニアG システムアーキテクト)は,今年4月から実施した,ブロク・システムの性能改善の成果についてこう語る。

 サイバーエージェントはこのブログ・システムを使ってブログ・サービス「アメブロ」を提供している。ところが今年3月ごろからブログ・システムに対するアクセス数やユーザー数が急増。「アクセスが集中する時間帯では,システムに高い負荷がかかり,処理が遅くなるといった問題が発生していた。そのため処理性能を高める取り組みを進める必要があった」と,佐藤氏は説明する。データベース・サーバーに性能改善を施した現在,サービス利用者が処理を待たされる事態は解消できているという。

 同社が進めた性能改善のポイントは,データベース処理の負荷を軽減させることに重点を置いたこと。システムの性能を調査したところ,1日のうちにアクセス数が急増する時間にだけ,データベース・サーバーの処理性能が悪化することが分かったからだ。

 調査のため,インサイトテクノロジーのOracleに特化したデータベース性能監視ツール「Performance Insight」を導入。Oracleを搭載したデータベース・サーバーが高負荷になる原因を追究した。その結果「無駄なデータベース処理が実行されていたことが分かった」(佐藤氏)。

 無駄なデータベース処理は大きく二つあった。一つが,1分間に1回の割合でデータベース上にある数千万行のレコードを参照する処理。本来ならば1日に1回実行すればよいもの。システム開発担当者がテスト作業のため,1分間に1回の割合で実行するように設定したままだった。そこで1日に1回実行するようにシステムを修正した。「この修正だけで,ピーク時のサーバーの処理量の20~30%ほどを削減できた」と佐藤氏は振り返る。

 もう一つの処理が,すぐに公開する必要のないブログ記事の投稿準備処理。高負荷になる時間帯でも記事の投稿準備処理が3分に1回の割合で定期的に行われていた。そこで高負荷になる時間帯を避けて処理が実行できるようにシステムを修正し,高負荷になる時間帯の処理量を抑えられるようにした。

 以上のような無駄な処理を減らしたうえで,5月までにサーバーに搭載するプロセッサの数をこれまでの倍に相当する8個に増設。その結果,「高負荷がかかる時間帯に,データベース・サーバーの処理能力の7倍ほどあった処理要求を,2倍以下に抑えることができた」と佐藤氏は語る。これらの取り組みが,1日に受け付けられるページ・ビューを300万ほど増やすことにつながった。

 同社はデータベースの処理性能の問題を解消したあとも改善作業は続けている。6月はじめからアプリケーション・サーバーならびにWebサーバーの処理性能の改善を実施。6月いっぱいで完了させる予定だ。