7月3日,カブドットコム証券のWebサイトに,予想外のアクセスが押し寄せた。ピーク時の2倍の負荷まで耐えられるシステムに3~4倍の負荷が集中。SLA(サービス・レベル契約)で定めた5分を超える遅延が発生してしまった。翌日に備え急きょ,ハード/ソフト両面から高負荷対策に取り組んだ。

(福田 崇男=tafukuda@nikkeibp.co.jp)

 7月3日朝,カブドットコム証券が運用するオンライン証券取引用サーバーのCPU負荷率を示すグラフが跳ね上がった。それぞれ3台あるWebサーバー,アプリケーション・サーバーのすべてである。想定していた処理容量をはるかに超えている。

 折しも,米国株の上昇などを受け,日経平均株価は前日の7月2日に9500円台を回復。一時は昨年9月以来の9800円台にまで急伸した。今年最大の上げ幅,上昇率である。その結果,個人投資家を中心に取引数が一気に急増した。

 ところが,これほどのCPU負荷は予想の範囲外。取引はすでに始まっており,即座にシステムを増強するのは難しい。しかし,明朝に備えて,早急に手を打つ必要がある。カブドットコム証券COO(最高執行責任者)の斎藤 正勝氏は急ぎ,対策チームを編成した。

増強計画を立てた矢先の出来事

写真1●不測のアクセス増に見舞われたカブドットコム証券のWebサイト
写真2●カブドットコム証券 システム統括部長兼業務開発課長の阿部 吉伸氏
 カブドットコム証券は,11万4000の取引口座を抱えるネット専門の証券会社(写真1[拡大表示])。主にWindowsサーバーを使い,数年に渡って「止まらない」システムを構築/運用してきた。しかし7月3日については,「これほどCPU負荷が急増するのは初めてだった」(システム統括部長兼業務開発課長の阿部 吉伸氏)という(写真2)。

 株式取引サイトのアクセス傾向は,独特である。朝9時の取引開始に合わせ,アクセスが急増。ピークを迎える。取引所の昼休みを挟み,午後2時前に第二のピークがあり,以後は翌朝までアクセスは少ないままである。

 カブドットコム証券は,9時前後のピークに合わせ,CPU負荷が2倍になっても取引ができるよう,システムを設計。口座を開設した顧客とは,発注から5分以内に約定,つまりシステム上で取引を成立できることを保証するSLA(サービス・レベル契約)を結んでいる。5分以内に約定できなかった場合,それにより逸した利益は,カブドットコム証券が補償する。

 約定金額や口座数は順調に伸びており,それに合わせてシステム増強計画を立てていた。CPU負荷がシステム容量の50%に達したら,システムを増強するようにしている。6月15日には,負荷テストを実施して性能を確認。7月以降について,「4~6月のアクセス傾向を分析して,増強計画を立てた」(斎藤氏)矢先だった。

普段の3倍以上の取引が発生

 しかし7月3日,株価の急伸を受けてサイトに発生したCPU負荷は,普段のピーク時の3~4倍(図1[拡大表示])。実に1万5000顧客が同時にログインしていた。当日の東証1部の出来高は,普段の6億~7億株をはるかに上回る約21億株にも達した。

 同社ならではのシステム構成も影響した。Windows Server2000に搭載したApplication Centerの機能によりサーバー負荷を分散させていたが,アプリ・サーバーのCPU負荷増大により,負荷分散がうまく機能しなくなった。

 さらに追い打ちをかけたのが,東証システムの遅延である。顧客からの注文を受け付けると,アプリケーション・サーバーは,東証の売買システムに発注する仕組み(図2[拡大表示])。東証システムの処理が完了して,はじめて顧客の約定処理が完了する。

図1●カブドットコム証券の想定をはるかに上回るCPU負荷が発生した
当初から,普段の2倍のCPU負荷がかかっても耐えられる設計にしてあった。ところが,7月3日には,普段の3~4倍と,予想を上回る負荷が発生した。
図2●アクセス集中でサーバーの負荷が高まり,レスポンスが低下
7月3日朝にアクセスが急増し,Webサイトの負荷が高まった。さらに,東証システムからの応答が遅かったことも,レスポンス低下に拍車をかけた。
図3●レスポンス低下を解消するため,ハード/ソフト両面から対策を講じた
通常時ピークの3~4倍にも達した負荷に耐えるために,できるだけの手を打っておく必要があった。2グループの対策チームを編成し,ハードウエアとソフトウエアの両面からアプローチした。

 ところが7月3日は,東証システムにも,約定処理が過度に集中。そのためか,発注しても応答がない。顧客の注文がサーバーのキュー(待ち行列)にどんどんたまり,サーバーの高負荷と相まって,処理が遅延した。

 顧客によっては最大で13分程度待たされるケースもあった。SLAに従い,受け取れるはずだった利益分を補償した。

ハード/ソフトの2チームを編成

 カブドットコム証券は,午後のピークが過ぎた14時,翌日に備えて高負荷対策に着手した。2倍の負荷まで耐えられるシステムを,3~4倍の負荷に耐えられるようにしなくてはならない。しかも,期限は明朝だ。

 そこで,対策チームを2つに分け,異なるアプローチでシステム増強に取り組んだ(図3[拡大表示])。ハードウエア対策チームは,増設用のサーバー機を調達。ソフトウエア対策チームは,アプリケーションをチューニングし,性能を向上させる。2通りの取り組みにより,システム全体の処理容量を最大限まで向上させる狙いである。

 「今から振り返ると,心理面での効果もあった」(斎藤氏)。明朝までの増強は至上命題であり,対策チームにとってプレッシャは大きい。しかし,2チームを編成することで,互いに別のアプローチでも対策を進めているという安心感がある。余計なプレッシャに悩まされずに済んだ。