ISUCON8参加メモ
2018/11/01
毎年参加しているISUCONに参加したのでメモ
(後で気分がノッたら細かく書くかも)
今回はe-plus的なチケット予約サービスでした。
イベントがいっぱいあって座席指定でチケット予約しまくり、キャンセルしまくり。
見たところ
・レギュレーションとマニュアル読む
・ソース読む
・httpのアクセスログ吐かしてどんなリクエストが来てるかちゃんと見る
・SQLの全クエリとslowクエリを集計して、重そうなところとかインデックス聞いてないところを見る
・CPUのロードとか見る → 今回サーバのスペックが割と低かったのでボトルネックはわかりやすく出てた
やったこと
・WEB2台、DB1台のシンプルな構成
・今回は参考実装がちゃんと用意されていたのでPHP(ぺちぱーばっかだし)
・h2oにさよならしてnginxに → h2o早いって聞いたけどnginxの方がスコア上がったw
・ミドルウェア間のつなぎはソケット通信に
・gzip1-9 → あんまかわんない
・インデックス貼る
・オーダー数が多くて思いメソッドの書き換え(get_eventsとかget_event)
・得点が高くてリクエスト数が多いアクションのクエリを書き換え(予約とキャンセル)
・循環型レプリケーション
→我が闇の循環型レプリケーションについてはこちら
割と全然やりきれなくて、後半のやつは特に三人の変更がイマイチうまくいかないままコリジョンしてたので、スコアは伸びず最高で1207
終わる直前にコピペミスしたせいで、スコアでませんでしたごめんなさいγ(´・ω・)γ
(そもそもそんな上がってなかったけど)
と思ったけどそもそも追試のリブートで死んでたっぽい
ってか、ついに名前略されてるしw
終わってみての感想としては、実力うんぬん以上に準備が足りていない
いつもいつもそうだから、「次回はこれ準備していこう」って話し合ってるんだけど、なんやかんや先送りして当日バタバタパターンが多い
次からは頑張るγ(´・ω・)γ
そして、全体的にISUCONの環境がすごく良くなっているのを感じた。
参考実装もちゃんと動いてコードもわかりやすいし(課題っぽいところ除く)、マニュアル類も整っているし、インスタンスも安定しているし、ベンチマークもキューを投げて1秒後には走り始める。
課題のバランスもかなり良くできていたように思う。(結果出せなかったけど)
凄く快適だった。
他のイベントだとベンチマークにキューを投げてから数十分たってもベンチが回らないから、
「いつだ?いつくる?」
「むしろ、ベンチ終わったら次のキュー入れとこ。その間に改善」
「もうすぐベンチくるぞー!反映いそげー!」
とかやってたくらい
自分でチューニング系の大会を主催したこともあるので、そこら辺の大変さは凄くよくわかる。
環境整備大変だったと思うけど、運営の皆様本当にありがとうございました。
中々スコア出せないけどこういうイベント大好きです。
今後も是非続けてください。