ISUCON3&ISUCON7をやってみた
模擬ISUCONしたよ
しかしタイトルに、、、とついているのは微妙な結末になったからなのでした。
この日は本番どおりに10時~18時で時間を取っていたものの、メンバー全員が遅れる連絡をしてからのスタートになりました。笑
ISUCON3はt1.microでは厳しい
本番はm3.xlargeなのですが、今回僕らはAWS無料枠のt1.microにしたのでした。
ここでお金をケチったせいで、開始したもののいざ1回目のベンチマーカーを回す段階になって、メモリ不足に陥っていて計測できくなっていることが発覚。
この日、僕はアプリケーション担当だったので詳細は分かりませんが、id:isoflabonによると、Ruby実装を動かすのに少し手間取ったようです。
・mysqlがエラーを起こしていたこと
・nginxが初期では起動していなかったこと(Apatchが動いていた)
・nginxの設定がされていなかったこと
・言語の切り替えがsupervisorという不慣れな切り替え方法だったこと
(・centosが6だったこと)
要因としてはこんな感じだったみたいです。
この時点で開始から2時間は経過していたので、今日のところは今後の課題を洗い出して作戦会議をしようということになりました。
ISUCON7をローカルで動かす
以前やりかけていたISUCON7も多少触りました。
アプリケーションコードの変更を加えたとき、ローカルで動作確認できると便利だよねということになりDockerで環境構築をしました。
KitematicというGUIツールをポチポチしていけば簡単なのですね。
この辺もid:isoflabonがよしなにやってくれて色々と勉強になりました。
install.shを作る
ISUCONに必要なシェルスクリプトとして、install.sh, deploy.sh, benchmark.shなどがあると思いますが、事前に準備しておいてそのまま使えるのはinstall.shだけですよね。
デプロイやベンチは本番に適宜書き換える必要が出てくるかと思います。
そこでinstall.shだけ作りました。
ちなみにこの日emacsがきちんとインストールされていて動くのかを確認するために、初めてemacsを触りましたw
ISUCON予選突破への道のり遠すぎ
計測ツールの使い方や、ミドルウェアの設定、アプリケーションコードの改善の仕方 などなど課題は山積みです。
しかし最近楽しさを感じているので、なんとか本番までにもう少し賢くなりたいです。