Hatena::Diary

なぷさく このページをアンテナに追加 RSSフィード

2008-10-29

ネットワーク側から見たヨドバシカメラ問題

ヨドバシカメラのサイトがリニューアルに失敗してレスポンスが著しく低下している。ただでさえ重いところに、「ほらほらみてみて、重くなってるよ!見に行ってみてよ」なんてGIGAZINEが煽ったり、yahooニュースに飛び火したりしてさらにリクエストが増えて、瀕死の重病人いよいよまさに往生せんとす、といった雰囲気である。

構築した会社は今頃針のむしろだろうし、ヨドバシ側の担当者もきっと現場からは「使い物にならんぞ!」と突き上げを食らい、上からは「なんでこんなところに依頼したんだ!」と怒られて社内キャリアはぶっ吹っ飛んだだろうし、まあ他人事ながら同情申し上げる。

すでにあちこちで、CMSが腐ってるとか構築会社の社長がすごいとかいろいろ言われているが、基本に立ち返って外側から見える現象をひとつずつチェックしてみよう。

1. DNSは問題なし

大阪吹田にあるどっかの会社のサーバでDNS引いてみた。

$ dig www.yodobashi.com

; <<>> DiG 9.3.2 <<>> www.yodobashi.com
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59946
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.yodobashi.com.             IN      A

;; ANSWER SECTION:
www.yodobashi.com.      30      IN      A       211.120.8.208

;; Query time: 5 msec
;; SERVER: 210.224.163.4#53(210.224.163.4)
;; WHEN: Wed Oct 29 22:41:28 2008
;; MSG SIZE  rcvd: 51

キャッシュレスポンス5msec。上等だ。

2. icmp応答/MTUも大丈夫

32kのpingも通るようだし問題ないだろう。

[root@www ~]# ping -s 32000 www.yodobashi.com
PING www.yodobashi.com (211.120.8.208) 32000(32028) bytes of data.
32008 bytes from www.yodobashi.com (211.120.8.208): icmp_seq=1 ttl=238 time=167 ms
32008 bytes from www.yodobashi.com (211.120.8.208): icmp_seq=2 ttl=238 time=167 ms
32008 bytes from www.yodobashi.com (211.120.8.208): icmp_seq=3 ttl=238 time=167 ms

その昔大手新聞社サイトがicmpを止めてADSLユーザに影響が出たのは記憶に新し・・・くもないか。rootのあるサーバがサンノゼにしかないのでちょっとRTTが遅いのはご愛嬌。

3. 表玄関も生きてるっぽい

GETリクエストを投げればHTTP/80で接続受付される。一番表に出ているロードバランサ(www.yodobashi.com, 211.120.8.209:80)は生きているようだ。Cookieを見るとBIGipServerPoolと書かれているので素直に受け取ればバランサはBig-IPだろう。

しかし待てど暮らせどコンテンツは返ってこない。バランサは健気にバックエンドサーバにリクエストを割り振ろうとているが、裏側の実サーバが負荷で半死半生といったところか。

バランサ側に問題がないのはまあ当然で、重負荷対応の大型バランサとなるとDualCore CPUの足回りを専用ASICでがっちり固めたようなごつい代物で、ピークで「毎秒」数十万のリクエストを難なくさばいてしまう。そんじょそこらの家電屋のHP程度であれば赤子の手をひねるようなものだろう。

4. 近くのサーバも生きてるっぽい

商品画像はimage.yodobashi.comで、これはakamaiのコンテンツデリバリを使っているようなので今回の問題の影響は受けていない。また、https://order.yodobashi.com/ec/shoppingcart/index.dohttps://order.yodobashi.com/ec/mailnews/index.doは無事のようだ。ショッピングカートサーバ(order.yodobashi.com,211.120.8.210:80) の裏側のサーバは元気な模様である。

IPアドレスから推測して恐らくは同一のネットワーク上、あるいは同一のロードバランサに収容しているかもしれないorder.yodobashi.comに問題がないということは、ボトルネックは純粋にwww.yodobashi.com/211.120.8.208:80の裏側にあることが推測される。

やっぱりCMSの問題?

外に出ているサービス群には総じて問題がなさそうだし、内側でもショッピングカート系は生きている。アイテムを入れるアクションや、決済関連の操作はスムーズに進むので、同じ裏方でも商品DBサーバが腐ってるというわけではなさそうだ。

逆に、http://www.yodobashi.com/cs/Satellite?blobcol=urldata&blobkey=id&blobtable=MungoBlobs&blobwhere=1172654511127&ssbinary=true のような埋め込み画像系はレスポンス低下の憂き目を見ているので、やはり原因はCMS側にあると結論付けられよう。

腐ったCMSをどう騙しながら使っていくのか、これからのヨドバシカメラの奮闘に期待したい。

参考サイト

「ヨドバシ・ドット・コム」がリニューアル直後から表示が遅すぎて激重になる大規模障害が発生、一体何が起きているのか? - GIGAZINE

ヨドバシドットコムのリニューアル失敗から学ぶべきたったひとつのこと