April 11, 2009
最近、twitterがイケてるニュースを見る機会が増え、タイムラインの遅延も復活してきていますが、時同じくしてtwitterの携帯、iPhone向けサイトである「モバツイッター」も重くてタイムアウトなどが発生する状態になってしまいました。
以前のモバツイはデータベースに負荷が集中していたのですが、日々変わる、ツイッターの安定性の変化にあわせてモバツイの構成も変えておりましたが、今回の過負荷状態は、データベースはスカスカで、WebサーバのCPU負荷がほぼ100%に張り付いてしまい、処理待ちになってしまうというものでした。
モバツイに登録したことがあるユニークユーザーは3.2万人いますが、ここ最近の負荷上昇はユーザーが増えているというよりも、twitterへのアクティブ率が上がっているという感じがします。
負荷対策としてPHPのAPCキャッシュなどを見直しましたが全然改善しません。IO待ちよりも純粋なプログラムの重さを示す「ユーザー時間」の方が圧倒的に負荷が重いのですがどうにも。
単純に考えるとPHPおよびフレームワークと僕が作ってるモバツイのプログラムに問題があるということになりますが、そもそもPV的には、こんなもんなのかなという気もしています。
現在、モバツイのPVは、最もPVがあるツイッターのタイムラインを表示するページで毎日20万PVぐらいあるので、ざっくり月間600万PV以上ですが、現状のプログラムだと、CPUがAthlon x2 (4450B)のマシン一台でこなすのは不可能という状況です。
(参考:F's Garage:モバ ツイッター(mova twitter)のWebサーバをDellからHP ML115G5に入れ替えた。)
そういえばapacheのパフォーマンスチューニングなどの余地がまだまだありそうですが、本業も忙しい昨今、重い状況が続くのを避けたかったので、対策として、安価なWebサーバを一台追加して、2台で処理をするかと思いHPのML115G5という安価なサーバを追加購入しました。
今までロードバランサーを入れてなかったことや、同一のサーバにロードバランサーとApacheを入れることに対する一抹の不安があったので、ずっと悩んでいたのですが、「24時間365日 サーバ/インフラを支える技術」という本の、はてなCTOの伊藤直也さんの記事で、(Intelの)Quad Coreを使い切るのは難しいということや、無駄に冗長化しないなどが書いてあったのを見て、新しく購入したサーバにQuad CoreのCPUを搭載して、高性能でシングル構成なWebサーバを構築する方向でやってみることにしました。
それが今のモバツイの状況です。かなり普通に動くようになってると思います。
しかも今回はCPUパワーがネックだったので、ML115G5を買った人が通常購入する省電力CPUであるAMD Phenom 9350eではなく、それの約2倍の熱量を発生するAMD Phenom 9950BEという電気代バカ食いのハイパワーCPUを購入しました。CPU要因であれば、少しでもハイパワーにした方が幸せになれると思ったからです。
代償としては、もう24時間のエアコン稼働は欠かせません。CPU FANが交換できなかったので、夏場は危険がいっぱいのような気がする。
このCPUは最大で2.6GHzで動作するのですが、負荷に応じて4つのコアのクロックがそれぞれ自動調整されるらしく、/proc/cpuinfoを見てると、1.3GHzと2.6Ghzをいったりきたりしている感じ。まだまだ余裕があるようです。
今回のWebサーバ購入は完全に予想外で、今後、個人運営のモバツイッターがどこまで続けられるのか?どうしていくべきかについて考えさせられる一件でした。
僕はペパボにいる人なので、サービス運用的な観点からも、ビジネス的な観点からも、基本的な方向性はこのままのスタイルを継続していくべきである、というのは常に頭にあります。とは言え、今後の物理的なことを考えると、なかなか頭が痛いという状況。
今後、デジタルガレージ社もモバイルに力を入れていくということなので、自然とどおってことない状況になるかもしれないので、とりあえずは楽観視してますが、何かをしていかないといけないなぁとは思っています。
ということで・・・というわけでもないのですが、とりあえずモバツイッターについての寄付を募ってみようかなぁと。
別にサーバがキツイからお金ください、ではなくて、モバツイッターが便利なサービスだなぁということに対して、寄付していただけたら励みになってありがたいなーと思っています。
特にIT長者の方々、ご支援の方、よろしくお願いいたします(^^)
ebankのメルマネご希望の場合は、以下の宛先までお送りいただければ幸いです。
-----------------------------------
Shinichi Fujikawa
f-shin[at]milkstand.net
-----------------------------------
参考URL:寄付の募集を開始しました。 | MovaTwitter開発者blog
#しかし携帯から寄付できないんでスループットはかなり低いと思われ。結局、ebankのメルマネか、銀行口座晒して直接入金していただくのが一番簡単という話も。
p.s.そういえばモバツイが2周年を過ぎていました!今後ともよろしくお願いいたしますm(__)m