256bitの殺人メニュースマートフォン用の表示で見る256bitの殺人メニューインフラエンジニアだったソリューションアーキテクトなくわののブログ。こちらのBlogは個人の意見となっていて会社とは全く関係ありません。[twitter:@kuwa_tw]めんどくさがりが重い腰を上げて何かをアウトプットすることにどれほどの意味があるのかを試してみたいブログでもある。この広告は、90日以上更新していないブログに表示しています。ISUCONなんで勝負!!!って盛り上がっちゃうんでしょうね。はい、乙カレー様です。ISUCON4に初参戦してきました!ISUCON毎回みてて面白そうだなーと思っていたんですがなんとなく気が引けたり予定が合わなかったりで出れてなかったのですが、会社でTOTECに参加して6位になったりしてちょっと悔しかったり面白かったりしてきたので今回初参加してきました。記憶が薄くなってしまったので思い出しつつ書いていきます。@kei2100の3人メンバーででてきました。言語はNode.jsです。チームでやったこと(覚えてる限り)とりあえずサーバ環境を見たり、デフォルト状態のRubyのベンチ結果、デフォルトのNode.jsの結果までみて、Nginxのログと、general_log出したりしてクエリ確認してみる。DBはusersとlogin_logしかテーブル無い。idの複合インデックスを入れてみたタイミングでだいたいMySQLはまあいいんじゃねって感じになった。あとは様子見つつアプリの確認などしつつmy.cnfやサーバのリソース確認していた。MySQLバージョンアップDBが大したことなかったので5.7にあげてみたけどほぼ意味なかった。静的ファイル切り出しNginx側で静的ファイルの切り出しをして、Nginxで返すように変更。tmpfs化MySQLのデータ領域のtmpfs化OSパラメータ系my.cnfnginx.confkernelパラメータの変更ハッシュ計算のスキップDBにハッシュ値を入れたセッションのキャッシュ化memcached導入この段階の点数30000超えてる位だったと思う。ラッキーパンチ17時半くらいからmemcachedにセッションキャッシュ入れたりしつつ平行して@namikawaさんがbenchmakerの最適値を見たりしてたのですが、その中で期せずしてこれに引っかかって不当に高い点になっていたというのがありました。その時はなんか実行が長いなとは思ってたのですが、元々1分で終わる前提っていう仕様をしらなかったのもあって、そうかーなんかすげーけどとりあえず時間も無いしそれはそれでやってこうってなりまして。その結果5位に入ってしまいました。62000くらいだったと思います。自体が動作しなかったりすることが確認され、失格といたしました。自体が動作しなかったりすることが確認され、失格といたしました。自体が動作しなかったりすることが確認され、失格といたしました。皆さんわかってますよね。tmpfs入れてちゃんとデータの保存ができるようになってなかったのです、、、かなしい。ラッキーパンチでもくやしい。benchmaker2での追試32000でした。これでは本戦出れないですのでまあ良かったかなーって清々しい気分です。