会社のメンバーで初ISUCONに参加しました(ISUCON13レポ)
こんいす〜!ISUCON13に参加しました!
せっかくなので、この熱が冷めないうちにレポを書いておこうと思います。
技術的な内容はあまりないです、パッション多めです。
今回、初参加3人チームでした。チーム名は「ゴタンダ・トコロテンズ」です(Chat GPT命名らしい)。
きっかけ
nipeさんと1on1で「ISUCON出てみたいんですよね〜」と話したところ、「ええやん出よう」ということになり、gotchinも興味があるとのことだったので会社メンバーで出ようZE☆と決めました。
目指せ予選突破!と言っていたのですが、今回は予選がなかったので目指せ優勝!になりました。やはり目指す山は高くなければ。
事前の練習・素振りなど
主に業務時間中にやっていました。わりとがっつり時間を取らせていただいたので会社には感謝です。
2023/5/18〜2023/6/29:ISUCON本の輪読会
2023/07/06:private-isuで準備・測定をやってみる
2023/07/21:private-isuをそれぞれ1人でやってみる
2023/08/10:書籍を見ながらprivate-isuをやってみる
2023/09/21:isucon 12 finalで初動の練習をする
2023/10/05:9/21の続き
2023/10/20:private-isuを使って、3人で実際に初動の練習をする
2023/11/16:10/20の続き、当日の流れ確認
ISUCON夏祭り
今回、ISUCONに出るぞーということで、ISUCON夏祭りなるものに参加しました。
元々ハンズオン目当てで行ったのですが、ハンズオンでは具体的な話もありつつ実際に手を動かしながらイメージを掴むことができたのがよかったです。事前にprivate-isuをやっていて概要は把握できていたので、書籍以外の内容に集中できました。Dockerで詰まりまくったが。
また、トークセッションもとてもためになりました。特に、「NaruseJunの戦略とコミュニケーション」では実際にISUCON12のやり取りを見ることができ、具体的なイメージが湧きました。
あとは、イベント自体が豪華すぎてISUCONすげーってなりました。
ISUCON当日
当日はパンやおにぎりを用意しておきました。おやつ用のシゲキックスは早々に食べ尽くしてしまったのでもっと買っておけばよかった……。
9時集合予定だったのですが、9時に誰もいなかったので私はシャワーを浴びたりしていました。自由だ。
はじめは、とりあえずマニュアルを読みながら初期設定をやっていきました。その後は、1人1台担当で試行錯誤しながらスコアが上がったら他2台に設定を配布するという感じでした。git管理にする準備を事前にしていたのがかなり効きました。
事前のやることリストの準備やAnsibleの設定などをnipeさんが用意してくださったのですが、めちゃくちゃ便利でした。
11時前には初期設定を終わらせ、indexを貼り始めていました。
その後、自環境で`pt-query-digest`を実行したらエラーが出てキエー🔥となったりしていました。
ref: https://forums.percona.com/t/percona-toolkit-seems-incompatible-with-mac-os-sonoma/26118
私は主に`statistics`の箇所を改善していました。10秒くらいだったAPIレスポンスが0.3秒になったのでだいぶ改善した!10回くらいしか呼ばれない箇所でしたが……。
mysql2-cs-bindの文法はノリで修正していたので、ブラウザからSinatraのログが見れたのでやりやすかったです。いやまあログ出力見ろよなんですが。
最後は、nipeさんが3台構成にするのを、gotchinさんがmoderate周りと格闘していましたが、時間が間に合わずーという感じでした。
感想
自分の技術力の伸びしろを感じた
実際に問題に直面すると、視野の広さがまだまだだなと感じました。
「こういうことをすればスコアが伸びそう」というのに気づく力、それを具体的に実装する力が足りない〜〜!!
特に、素のSQL力やインフラ周りですね……。まずどこを見ればいいのか?となるし、数値だけ見てもそこから何ができそうかがわからない、という状態になりました。ALTER文も普段使わないから馴染みがない……。
チーム内においても、自分のステータス不明な時間があったのが反省点です。PowerDNSも「わからん!」で済まさずその場でキャッチアップしに行けばよかったなあと思いました。
楽しい!
やっぱり、こういった明確な課題に対してやるぞ!と取り組むのは楽しいです。競技なので明確に数字が変わっていくのがいいですね。
わからないところの方が多いとはいえ、自分一人でもなんぼかわかることもあるので、そこにチャレンジしていくのが楽しかったです。
また、リアルタイムで他チームの得点がわかるのも楽しかったです。突然上がったりしているのを見て「!?」となっていました。
当日の配信や動画もクオリティが高く、「ニコニコみたいだ!」とテンションが上がっていました。
まとめ
8時間があっという間に過ぎていきました。
やりきれなかったことはたくさんありますが、とても楽しかったのでまた来年も出たいです!次回はもっと改善を効かせられるようになりたい!