読者です 読者をやめる 読者になる 読者になる
本格SEもすなる、技術ブログといふものを、駄目SEもしてみむとて、するなり

サバフェスに参加したよ!前篇

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をインストールしましたが、とりあえず、PHPMySQLCentOS標準のバージョンから新しいものを入れました。

  • PHP 5.5.6(@remi-php55)
  • MySQL 5.5.34(@remi)

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の公式アカウントで、

とか言っている。
もしかして、意味が分からないスコアは、ステータスだけ返してる???
もう一度、ベンチマークのリクエストを確認すると、大量GET->大量POST->5secのwait->最後にGET となっていたので、最後のGETでPOSTの結果を確認していると推測。
何故ならGETがキャッシュのみを返していたため、POSTのスコアが0になってました。
確認用GETリクエストのwaitが5sec程度なので、キャッシュも5secに調整したら、POSTのスコアが戻りました。

正直、GETはこれ以上思いつかないので、POSTをどうにかしようと対応しだしました。
っとなったのですが、そろそろ面倒になってきたので、これ以上は後編に書きます。
では!

*1:まあ、表彰される順位ではないでしょう、、、