catatsuyとはスマートフォン用の表示で見るcatatsuyとはこの広告は、90日以上更新していないブログに表示しています。さんの3人で『チームフリー素材+α』というチーム名でISUCON5に参加しました。catatsuy.hateblo.jpcatatsuy.hateblo.jp去年とチーム名が微妙に違いますが、チームメンバーは同じです。+αには去年準優勝で得た30万円の賞金を表しているらしいです。2015今年も無事、本選に出場できたのでとりあえず安心しています。isucon.net今年も去年と同様にGolang実装に切り替えてから作戦を練るつもりでしたが、今年は予選マニュアルよりGolang実装には『微細なバグがあり初期状態でベンチマークのチェックを通過しません』とありました。そのためGolang実装でベンチマークをずっと通せず、戦えずに予選敗退という最悪の展開が予想できました。そこで最初からベンチマークを通せる状況だったRuby実装で各ルーティングの速度を確認してからGolang実装に切り替える戦略にしました。14:00くらいまでベンチマークを通せなければRuby実装で戦おうという話もしていました。他にもGCPで最初に立てたインスタンスがなぜかsshできなくなったので、即座にもう1つインスタンスを立ててあっさり前のインスタンスを捨てたりとかして最初少し手間取りました。開発環境構築手法を最初に調査する予定だったので、その一環で初期データのmysqldumpを取りました。今回のインスタンスはディスクのIOが極端に遅いのに加えてデータ量が多いという特徴があり、dumpがしばらく終わらないという問題が起こったりしました。うちのチームはdumpを取ったおかげで手元でほぼ完璧な開発環境を構築することができましたが、手元の環境構築はあきらめたチームも多かったようです。今から考えると折角のクラウド環境なのでデータを抜く用の性能の出るインスタンスを立てるなどをすればもっとすぐに終わらせることもできたと思います。とっさにそこまで思いつくのが難しいのもISUCONの醍醐味かなと思います。今回は初期実装でもベンチマークが通らなかったのですが、事前にやる予定になっていたものを黙々とやりました。GolangのアプリケーションをUNIXドメインソケットでもbindできるようにnginxからアプリケーションをUNIXドメインソケット経由でproxyするこの辺りをやってもベンチマークは安定しませんでした。away(うろ覚え)というエラーが発生して500番台を返すようになりました。そこで直るかは分かりませんでしたが、ここでMySQLとの通信をUNIXドメインソケット経由にすることになりました。このときにはまったのは/etc/my.cnfに設定されているソケットファイルが実際には使われていないということでした。ここはすぐにDebianの設定ファイルが使われていることに気付いたので、実際に使われているソケットファイルに変更しました。MySQLの通信をUNIXドメインソケット経由にしたことでようやくベンチマークが安定しました。当初の予定では最初に作る予定だったデプロイスクリプトもほぼ同時に動かせるようになりました。デプロイスクリプトが予定より遅れていたのはGolang実装を使わない可能性がこのときはまだあったためです。判断が迫られるところもISUCONです。ベンチマークを通せたことで、このままGolang実装で行くことになりました。Googleという文字列を含んではいけないところです。インスタンス上の各ユーザーのauthorized_keysには含まれているので、単純にcatするとこれを含んでしまいます。なんとこうなると謎のpythonのデーモンが勝手に書き換えて全部削除してしまう!のでデプロイ出来なくなります。このことは事前の練習で気づいていたので、本番でははまらずに済みました。ベンチマークを通せてからやっていったことを1つ1つ書いていくと、かなり長くなってしまうのでやった変更を箇条書きで書いていきます。今年は初期実装が去年より多く、やることが色々ありました。今から改めて本番でやったコードを見ると無駄な処理がちらほら見つかったのでもっと時間が欲しくなるような戦いだったと思います。そもそも各言語での参考実装を作るのも如何にも大変そうで、運営の大変さが分かる大会でした。表示するものが多いインデックスページの具体的にどこがどの程度遅いのかなど、具体的なプロファイリングは取らなかったのですが、今回は取った方が効率の良い戦いができたのかなとも思います。自分だとどうしても全体を見通す力とか、どこをどういう変更すれば速くなるのかなどを即座に的確に判断することができなくてほとんどチームに貢献できませんでした。本選ではもっと活躍できるように頑張りたいと思います。今回の予選の復習を頑張るつもりです。#isuconTweet広告を非表示にする関連記事2016-12-202016年を振り返る毎年やっているので今年も振り返っていきます。#isucon(注:このエントリーはポエムです。個人的な感想なのと、技術...2016-05-18社内ISUCONをやった3ヶ月以上ずっと趣味で社内ISUCONの問題を作っていました。ブロ...2015-11-03ISUCON5本選で8位と惨敗しましたISUCON5本選で惨敗しました。(1)検索はてなブログをはじめよう!catatsuyさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。