サバフェスに参加したよ!前篇
11月に1週間も開催されたCloud Server Festa 2013 Autumn(サバフェス)に参加しました。
その参戦記でも書いてみます。12/11に表彰式もある*1しね。
なんで参加したか?
はい、賞金20万円に釣られました!
ということは置いといて、チューニンガソンが面白そうだなと思っていたのですが、前回参加しそびれた後、次が開催されなかったので、同じようなものが開催されたなと言う事で参加しました。
どんな内容
一言でいうと「WordPressを5台構成で如何に早くできるか」です。
環境は、以下です。
- IDCフロンティアさんのクラウドで、サーバのスペックはM8までを5台まで使用可能。
- OSは、CentOS6.4 64bit、WebサーバはApacheかNginxのみ、DBはMySQL。
- WordPressのソースは一切触らず、プラグインも禁止。
細かいレギュレーションは、ここ(http://serverfesta.info/?page_id=11)に書いています。
最初にしたこと
「参加の手引き」に従ってWordPressをインストールしましたが、とりあえず、PHPとMySQLはCentOS標準のバージョンから新しいものを入れました。
PHPは最新を入れました。
MySQLは5.6も考えたのですが、設定ファイルの場所が変わっているのと、どこかでBenchMarkがあまり変わらないのを見たので5.5を入れました。
それと、ベンチマークの確認です。
サバフェスのレギュレーションでは、2時間に1回しかベンチマークが走らないので、スコア確認をやりにくいのです。
一旦、負荷のアクセスログを確認しました。アクセスは単純で、最初にGETが1分、POSTは2分で、アクセス先も固定されていました。
GETは"/"で、POSTは"/wp-comments-post.php"にアクセスが来ていました。
とりあえずGETの対策
GETの後にPOSTというアクセスだったので、GETはキャッシュを返しても問題なさそうでした。
Varnishを入れてスコアを見るとGETで80,000位行ってました。ただ、WebサーバがApacheとNginxのみという制限がどこまで影響するかわからなかったので、VarnishをやめてNginx+PHP-FPMを入れました。Nginxでも80,000程度のスコアが出てました。
VarnishもNginxもまともに触ったことが無かったので、ちょっと苦労してました。
後半戦になる
他の参加者のスコアを見ると、GETが400,000越えのスコアも出ていました。POSTに至っては、2,000,000を超えるという化け物級のスコアだし。
まったく勝てる気がしない、、、
そうしたらtwitterの公式アカウントで、
@netmarkjp 本日レギュレーションに(「4.競技終了後」)最終計測の詳細追記しました。URL DBをtruncate→ベンチ計測→POSTの書込みを確認、といった流れです。懸念点がありましたら明日技術担当に確認してみます。
2013-11-21 00:07:59 via HootSuite to @netmarkjp
もしかして、意味が分からないスコアは、ステータスだけ返してる???
もう一度、ベンチマークのリクエストを確認すると、大量GET->大量POST->5secのwait->最後にGET となっていたので、最後のGETでPOSTの結果を確認していると推測。
何故ならGETがキャッシュのみを返していたため、POSTのスコアが0になってました。
確認用GETリクエストのwaitが5sec程度なので、キャッシュも5secに調整したら、POSTのスコアが戻りました。
正直、GETはこれ以上思いつかないので、POSTをどうにかしようと対応しだしました。
っとなったのですが、そろそろ面倒になってきたので、これ以上は後編に書きます。
では!
*1:まあ、表彰される順位ではないでしょう、、、