Hateburo: kazeburo hatenablog

SRE / 運用系小姑 / Goを書くPerl Monger

ISUCON 11本選に「チーム中目黒乗り過ごし」で参加して、結果はFailでした

結果はこちら

isucon.net

ISUCON11本選にhanabokuro氏、mtokioka氏と参加して、結果はFailで失格となりました。スコア的には5位ぐらいかなと

去年も本選Failなので、2年連続本選でスコア残せませんでした。難しい。

kazeburo.hatenablog.com

なかなか厳しい問題でしたが、ベンチマークの実行やサーバ環境は快適で、集中して取り組むことはできました。出題の皆様、運営の皆様ありがとうございます。

やったこと

チーム紹介スライドつくりました。おじさんむけ旅雑誌ぽくしてみた

f:id:kazeburo:20210921152017p:plain

スコアの履歴はこのようになりました、

f:id:kazeburo:20210921152445p:plain

スコアが伸びない時間がながく、Failも多くありました。

Repositoryはこちらで公開しております

github.com

PRつくってマージするスタイルでやっておりましたが、最終的にマージしたPRが38個、マージしてないPRが3個となりました。 うちRevertのPRが7個です。ベンチマークの不整合チェックに引っ掛かり、ブランチで作業し、戻したものもたくさんあります。

最終的にサーバ3台

  1. nginx + app
  2. MySQL
  3. MySQL (replica)

として利用しました。MySQLの負荷がどうしても下がらず、レプリケーションを行ったのですが、利用できる箇所は本当に少なく、不安定になってしまい、戦略ミスでした。

そのほか、zipを作成ところにhard link(os.Link)を利用し、圧縮率を -1にしたり、singleflightおよびsync.WaitGroupを使ったSQLの並列実行の制御、不必要だったトランザクションの削除などを行いましたが、やっぱり厳しい感じでした。

機会があれば、出せなかったGetGradesのクエリ改善を試したり、業務ではもう何年も使ってない外部キーが性能にどう影響したのか調査をしてみたい。

最後に

今回、事前にインタビュー記事などに載せていただりしました。ありがとうございます。

type.jp

gihyo.jp

学生が強くなり、我々は勝つのが難しいのではないか(これも素晴らしいことです)ということも言われておりましたが、今回はfujiwara組の優勝(おめでとうございます!!)と我々平均年齢45歳オーバーのチームでも本選出場とここまではできたので、定年を乗り過ごしてもう少し頑張っていけるのではいかと思います。

今は燃え尽きておりますが、ISUCONが来年も様々な背景をもつ多くのエンジニアと競いあえる場所として開かれ、また挑戦できるといいなと思ってます。