ISUCON11 予選突破しました!

UA-51307251-1

ISUCON11に参加しました

ISUCONへの参加は今回で3回目。前回の参戦記はこちら

結果は全体598組中、13位で予選通過しました!スコア(参考値)は181765でした

はじめに

メンバーについて

前回と同じで、自分(aru03)とqitoiの2人で参加。

役割については、前回同様

  • インフラ・アプリ:qitoi
  • DB・アプリ:aru03

言語選定について

goを選択。ISUCON9から参加しておりますが、年々goの利用率は上がっていますね

事前練習について

2~3週間ほど前から各々で過去問さわりました。2人でのリハーサルは計2回行いました。

去年に引き続き、リハーサル環境の準備もろもろqitoiがやってくれたので感謝

当日タイムライン

09:15slack通話開始
09:40オープニング確認
10:00競技開始
10:10 [ベンチマーク実行]1778
10:15環境構築・ssh_configの共有・ ソースコードをgit管理
10:20DBスキーマとレコード数の共有
10:25レギュレーション・マニュアル読み合わせ
11:30デプロイジョブ設定
11:30ツール導入
・alp
・pprof
・pt-query-digest
・prometheus・grafana
11:35index追加
ALTER TABLE isu_condition ADD INDEX jia_isu_uuid_idx(jia_isu_uuid);
11:35[ベンチマーク実行]15574
11:45 index追加
ALTER TABLE isu_condition ADD INDEX jia_isu_uuid_sort(jia_isu_uuid, timestamp desc);
11:45 [ベンチマーク実行]22578
12:??何か入れた気がするが忘れた、、
12:10[ベンチマーク実行]29162
12:33getTrendの発行クエリにlimit1追加
12:45[ベンチマーク実行]52759
13:03getTrendのN+1一部改善
13:05[ベンチマーク実行]50829
13:32isu_association_configのオンメモリ化
13:32[ベンチマーク実行]50829
13:48index追加(getTrendの発行クエリがcovering index効くように)
ALTER TABLE isu ADD INDEX character_idx(character, jia_isu_uuid, id);
13:50[ベンチマーク実行]68357
14:40generateIsuGraphResponseの範囲を1日に制限
postIsuConditionのinsertをbulk insert & 非同期で実行
14:42 [ベンチマーク実行]86211
16:40getIsuList,getTrendの最新1件取得の結果をredisにキャッシュ
16:41[ベンチマーク実行]141759
16:52不要トランザクション削除
DB分割(isu_conditionとそれ以外)
16:53 [ベンチマーク実行]146839
17:24nginxログ・pprof・slowログを出力しないようにする
18:30[ベンチマーク実行]187830
18:45競技終了

※アプリケーションサーバの分散、nginxでのアイコン画像キャッシュなどもいれましたが、どのタイミングでいれたかは忘れてしまいました、、

振り返り

  • 個人的なところでは、13:32のオンメモリ化以降、何をするべきかが分からなくなってしまって、手が止まる場面が多かった。alp,pt-query-digest,grafanaあたりは結構見ていたが、alpをしっかり見ていれば、次の手を早めに思いついたかもしれない。
  • index追加で降順indexはっているが、これは効いていない。generated columnで昇順index用のカラム作成した方がよく、過去のisuconでも出た問題だったので、これはもったいなかった
  • drop probabilityは0.85でfinish。0にしたかった
  • 本選頑張る


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中