feature image

2023年12月8日 | ブログ記事

ISUCON13にSMTPで参加しました

こんにちは。
11/25(土)に開催されたISUCON13にチーム「SMTP」として参加したので、その開催報告です。

チーム

チームメンバーは以下の3人です。

3人の頭文字からSMTP(Simple Mail Transfer Protocol)を連想したので、チーム名がSMTPになりました。今回のISUCONではDNSが出たので、結果的に微妙に問題内容のフラグを立てたことになってしまいました。

当日の動き

改善PRに対してそのブランチでベンチを回し、点数が上がったらmainにマージという戦略を取っていました。
点数をちゃんと記録していなかったのでかなり怪しいです。

計測ツールは以下を利用しました。

また、SMTPではほとんどDiscordのチャットでやり取りしていたのですが、以下のURLでほぼ全てのチャット履歴を閲覧できるようにしました。下記のおおまかな流れと一緒に見てもらえればと思います。
エクスポートにはDiscordChatExporterを使い、GitHub Pagesで配信しています。
https://github.com/Tyrrrz/DiscordChatExporter

SMTP - chat

10:00~ 3486点
競技開始。
主にがサーバーに入って環境構築して、残り2人でドキュメント読んだりコード読んだりしてました。
ログの出力などに思ってたより苦戦してしまい、分担してある程度改善を進めていたとはいえちゃんと改善・ベンチを回せる状態になるまでにかなり時間を使ってしまいました。
大学などで忙しくて当日までまともにチームで準備をする時間が取れなかったのですが、それが効いてしまいました。

11:30~ 4479点
がアイコンの304の処理をスッと書いてPR出したのですが点数が上がらず、一旦放置になりました。
同じタイミングでlivestream_tagsテーブルにlivestream_idtag_id複合インデックスを貼ったのですが、これは点数が上がりました。
それまでにはalpのログをいい感じにしたり、と一緒に環境構築をしたりしてました。

13:00
昼休憩でボイス会議しました。
アイコンの304のやつが、hash値もDBに保存すればいいのでは?という話になったり、残り時間で各々がどの改善を進めるかという話をしました。
がサーバー分割やhash値のDBへの保存、が重いlivecommentreactionのエンドポイントの改善とDNS周り、が秘伝のたれの流し込みやpprofで重そうだったsearch周りの改善をするという流れになりました。

13:30 7166点
InterpolateParamstrueにしてadmin prepareを無効にしました。

14:00 7166点?
iconsthemesのテーブルにindexを貼りました。

14:30 8056点
がNGワードの登録時に、新たにNG対象になった今までのlivecommentを全部削除するやつ高速化しました。GitHub Copilot Chatがいい感じに書いてくれて、いい感じになりました。

16:00 8368点
がlivecommentのGETでtagのN+1があったのを対処しました。

16:30 10083点
がサーバー分割しました。
1台目をアプリ、2台目をDBに割り当てました(DNSは1台目のまま)。

17:30 10481点
searchLivestreamsHandler で無駄にクエリを投げていた部分を改善しました。
がいくつかindexを貼ってstatisticsを軽くしました。

18:00
時間ギリギリにログ等を切って競技終了。

upload_aabb9c190322eb2a1da60bd29cc1e192
upload_7847fdd9fc244372ebd935a96dffd7b5

その他bulk insertやDNSのttlの設定などもしていたのですが、点数が下がってしまったりfailしたりで入れることができませんでした。

反省点

感想

mehm8128

あまり準備する時間が取れなくて満足する結果は出せなかったけど、楽しかったです。
開催時期によっては来年から一般枠になりそうですが、来年以降も参加したいです!

saiten

_人人人人人_
> 伏線回収 <
 ̄Y^Y^Y^Y^Y ̄

chrome_s659egwpoy

tqk

楽しかった~
初手で main に push するくらいプログラミング久しぶりだったし、全然準備もできてなかったけど、うまく仕事を回してくれて助かりました!

まとめ

最終的に11,236点(max12,530点)で全体では214位という結果でした。2桁順位いきたいなーと思っていたので、来年またリベンジしたいです。

mehm8128 icon
この記事を書いた人
mehm8128

21BJC。SysAd班で色々やってます

tqk icon
この記事を書いた人
tqk

あ...あ...

saiten icon
この記事を書いた人
saiten

この記事をシェア

このエントリーをはてなブックマークに追加
共有

関連する記事

2023年11月26日
ISUCON13にツールの力で勝ちたかった(mazrean)
mazrean icon mazrean
2021年9月21日
ISUCON11 traP CM制作についての小話
dan_dan icon dan_dan
2023年11月26日
【 #ISUCON 】 最近の若者は ssh しないらしいですよ
ikura-hamu icon ikura-hamu
2022年7月24日
ISUCON12に向けてダッシュボードを自作してログを可視化しました
Ras icon Ras
2023年12月5日
部内ISUCON「PISCON」を開催しました!
cp20 icon cp20
2023年11月22日
ISUCON初心者向け講習会のテキストを作り、開催しました!
pikachu icon pikachu
記事一覧 タグ一覧 Google アナリティクスについて