shinobe179の日記

@shinobe179 の技術メモ・やらかし録

【ISUCON】ISUCON10予選突破した話と、インフラ担当としての振り返り

はじめに

先日開催されたISUCON10で、私が所属する某チームは予選を突破しました。:tada: なぜかチームメンバーの誰もブログを書かないので、決勝に備えて某チームのインフラ担当たる自分のことだけでも振り返っておこうと思います。

※注意: 自分のことしか書かないので、チームとしてどうやって点数を上げていった的な話は他のメンバーに任せます。他のメンバーも何も、諸般の事情で所属チーム非公開なんですけれども。

よかったこと

Netdata

これまでのISUCONでもNetdataは使ってきたんですが、オリジナルのダッシュボードを作っての参加ははじめてでした。これで方針が決まったりしてて、正直バチボコに"効いた"と思っています。公開したときほとんど反応なかったけど、これ使って決勝出たんでよろしければお手にとってみてください。決勝に向けて改善の予定もあります(後述)。

github.com

befs-anne.hatenablog.com

ミドルウェアさばき

アプリ2名インフラ1名(私)みたいな割り振りだったので、インフラのオペレーションは(事前事後の連絡・相談はするものの)私に一任されていました。今回毎週平日1回、予選が近くなってからは追加で土曜日まる1日練習に費やしていたし、事前によくあるオペのチートシートも作ってあったので、これまでのISUCONとは比べようもないくらいスピードと正確さが上がっていたと思います。ほとんどググらなかったです。

課題

解析力の向上

Netdataはよかったですが、今のところ代表的なコンピュータリソースの確認しかできていません。予選ではそれで十分だったわけですが、決勝はより踏み込んだ解析に対応するために、例えばMySQLのCache hit rateやBuffer poolなどの指標も可視化できるように改良するつもりです。

また、ベンチマーカーが吐くネットワークパケットの解析もあまりできませんでした。WireSharkだけだと結構無理があるので、別のツールを作っているところです。これも間に合えばGithubで公開しちゃおうかと思っています。

また、可視化だけしてもしょうがないので、それらを利用するための事前知識も養おうと思っています。こちらも(ネットワークはこれまで積み重ねてきたものである程度なんとかなりそうなので)MySQLが主になる予定です。この本、おすすめです。

さいごに

決勝進出は本当にメンバーの力によるところが大きいなと思っていますが、手前味噌ながら私もそれなりに貢献できたんじゃないかと思います。決勝参加者の皆さん、対戦よろしくお願いします。持てるリソース全ツッパして、悔いのない戦いをしたいです。最後のISUCONですからね。ん……?最後のISUCON……でしたよね……?