ISUCON9出た、また惨敗
目次
チーム紹介と結果
去年に引き続き、チーム「ニューウェーブ」でpikatenor、enoughと一緒にISUCON9に出ました。今年で出場は2回目で言語はRubyを選択。結果から言うとスコアはFailで2年連続惨敗でした。
各々やったこと
僕が把握している限りで以下のことをそれぞれがやりました。
enough N+1をひたすら直していく。
pikatenor 複数台構成やpuma周り、nginxの設定。その他なんでも。
hayaten0415 Ansible流すこと。alpとpt-query-digestの結果を解析してpikatenorと一緒にインフラ周り直す。
当日使用したAnsibleは以下のもので、これは去年osyoyuが作ったものをforkしてISUCON9と我々のチーム用に修正したものです。昨年のosyoyuに感謝。
成長点
・enoughがSinatraに慣れたことでアプリのコード改善をゴリゴリできるようになったこと
・alpとpt-query-digestを導入してなんとなく取り掛かるのではなく、明確に当たりをつけて取り掛かれるようになったこと
明確な敗因
・複数台構成にしたときのnginxの設定
・puma周りの知見不足
午前中にN+1クエリ潰して、itemsテーブルのフルスキャンを潰せたものの、午後くらいから複数台構成を始めたところから昨年同様詰まってしまいました。 nginx.confの設定を間違えていることに気づかずに結局終了してしまいました。ベストスコアは午前に3110出してそれ以降は駄目でした。
来年に向けて
明らかに実力不足なのはもちろん、準備も足りてないので来年は3人でしっかり準備して出場したいという気持ちが強いです。MySQL8.0へのアップグレードを事前準備で練習していたにも関わらず当日は日和ってやめてしまいました。もし来年もMySQLであれば十分準備して8.0アップグレードに挑みたいです。
去年と同じノリで監視用にnetdataを選択していましたが、もっとかっこいいダッシュボードを作りたいという気持ちが出てきたので来年の僕がいい感じにやってくれるでしょう。
自分から見たISUCONについて
ISUCONに参加することでチームメンバーの成長、または自分の成長を実感できるので自分にとってはこれほどの楽しさを感じる瞬間はISUCON以外ではそうそうないです。これは間違いなく運営の皆さんのおかげで楽しめているので、運営の方々にはとても感謝しています。本当にありがとうございます。