糟屋郡はいいぞ

ツイッターで書くには文字数が足りないやつ。Amazonのアソシエイトとして、KasuyaMofuは適格販売により収入を得ています。

VTuberチームでISUCON 10本戦を解く企画「Virtual #ISUCON Live 2021」に出演しました!

こんばんは、糟屋もふです。本日は、Virtual ISUCON Liveのプレイヤーとして参加しました。 興奮冷めやらぬ中ではありますが、ブログを書くまでがISUCONということで、振り返りと今後改善できることの2つにわけて話します。

今日の振り返り

概要と総評

本企画に関われた全ての関係者の皆様、ご来場や声援をいただいた皆様、そしてチームメンバーの晴栄リコさんとこみっとちゃんさん。この企画に関わった全ての時間を有意義に、楽しく過ごせたのは、皆様のおかげです。本当にありがとうございました!

当日だけでなく、ISUCON 11の事前講習をベースに、実際に手を動かして学ぶ機会も用意いただきました。ISUCONは何をやるべきか、改善に取り組む前に必要なものは何か、改善するには何を見るべきか、様々なことを、休日問わず教えていただきました。どれくらい成長したかというと、もふさんはgitの操作すら怪しく、rootでgitを実行して.gitの権限を修正するのすら困っていたりしていた人です。今でも、少し前との自分との差にビックリします。

そして、個人的に一番大事だと思っていたこと。この企画を通して、 ISUCONは楽しい という感情は皆様に共有できたでしょうか。私は、すごく楽しかったです!その姿は、こちらの公式配信にて確認できますので、是非見ていただけるとありがたいです。

www.youtube.com

(※順不同)

運営から、既にエントリが投稿されておりますので、こちらをまずご参照ください。

isucon.net

チームメンバーの晴栄リコさん、こみっとちゃんからも、本日の記事が投稿されています。本記事と、併せて是非見てくださいっ!

haruelico.fanbox.cc

e83c516.hatenablog.com

結果

最終スコアは10587でした。最初は6635だったので、大体2倍弱の改善。なんやかんや結果が出てうれしかったです!

(尚、この辺りからですます調で書くことに限界を感じたので、である調で失礼いたします)

f:id:KasuyaMofu:20210724222556p:plain

やったこと

サーバスペック・最終的な構成

  • isu1: CPU 2, MEM 2GB application, redis
  • isu2: CPU 1, MEM 4GB application
  • isu3 CPU 4, MEM 2GB mysql

https://github.com/KasuyaMofu/vtuber-isucon10f/issues/13

用意していたこと

GitHub - KasuyaMofu/hidennotare: for isucon

事前に用意していたスクリプトなどはここに書いている。Markdownとして書いているので、ファイルに落とし込めたらgit cloneして移動したらよかったかもしれない。最低限、以下のものさえあれば、後は大抵GitHubで操作が完結するので良き。

github cli使ったらめっちゃ楽。にざっと置いたやつをそのままgithubに投げるだけ

`gh issue comment 1 -b "`ssh isu1 cat /tmp/alp-out`"`

振り返り

環境確認

振り返りながら、最低限必要だった情報はこんな感じかな。特に lsof -isudo しないとwell-knownポートが出てこないのを失念してボタン押してた。わちゃわちゃしてた。

また、CPUとメモリの構成については、ベンチスコアが各サーバで違っていたので、そこから推察することもできた。数字を信じよ。

cat /proc/cpuinfo | grep process
free -h
uname -a
sudo lsof -i
mysql --version
systemctl status <unit>

envoy

今日一番の改善ポイント。マニュアルは事前に読みこんでいたつもりだったが、gRPCが出てた時点でenvoyの可能性に気づけたはずだった。80や443を受けるサービスはapacheとnginx以外ほぼ触ったことないに等しいので、予選までにはenvoyも大丈夫と言いたい。

isucon10-final/xsucon.md at master · isucon/isucon10-final · GitHub

メトリクス収集

今回、古典的なtopしか見ていなかったのは記憶に新しいと思う。負荷が何によって引き起こされていて、何が原因なのかを特定するには、最低限の情報が必要なので、ツールの導入は必須。alpによるエンドポイントのSUMで全て丸め込んだパフォーマンスを見ることはできるが、それよりももっと詳しい情報があるべきだった。

netdataやprometheusを準備しよう。pprof はコードの変更も加わるので元々入れずに行くことは事前合意してたので、これは次にできるようになるといいな。

最後に

ISUCON、今まで私は参加したことなくて知識だけのものだったので、941さんからこの企画をしよう!と声を掛けられたとき、二人のメンバーを集めていたは「私にできるのかな」という不安しかありませんでしたが、今は自信を持って言えます。

ISUCONは楽しいので皆やろう!!!