びきニキです。今日の終業後に同期+先輩と雑にISUCONをやる会をやりました。最近までcatコマンドすら知らなかった私ですが、ISUCONできる人に憧れがあり...。
というわけで「まずは単純接触回数を増やそう!理解は後!!」という作戦のもと、みんなに見守られながらISUCONと仲良くなろうとしていました。
そういうわけで、今日の学びメモを投下します。
レギュレーション確認大事
今回対象にしていたISUCON13でいうと、「アイコン画像配信についての特記事項」「一部ログについてについての確認事項」などが書いてあり、これが結構大事らしい。ドキュメントってやっぱり大事なんだなあ...
alpについて初めて知った
nginxのアクセスログを解析するやつらしい。
sudo alp ltsv -r --sort avg --file /var/log/nginx/access.log -m '/api/livestream/.+/reaction'
みたいな感じで実際にアクセスログをいい感じにまとめた!
正規表現を追加するときは閉じてるシングルコーテーションの前に追加するんだって。ただただ見やすくなるのが良いらしい。何が早いとか遅いとかをパッと見で認識出来るのが後に響くとのこと👀
最終的にこんなコマンドになった
sudo alp ltsv --sort=sum -r --file=/var/log/nginx/access.log -m '/api/livestream/[0-9]+/reaction,/api/livestream/[0-9]+/report,/api/livestream/[0-9]+/ngwords,/api/livestream/[0-9]+/exit,/api/livestream/[0-9]+/enter,/api/livestream/[0-9]+/livecomment,/api/livestream/[0-9]+$,/api/user/.+/icon,/api/user/.+/theme,/api/livestream/[0-9]+/moderate,/api/user/.+/statistics,/api/livestream/[0-9]+/statistics' -o 'count,2xx,3xx,4xx,5xx,method,uri,sum,max,stddev,sum_body'
このへんみた
EXPLAINで実行計画を出す
「推測するな、計測せよ」だって!!!!鬼のように聞く言葉^^
このへんみた
INDEXを貼る
indexを貼ると検索が早くなるので、indexを貼ると良いらしい!type カラムがindexを貼るとrefになる(これがうれしいんだって)
フルテーブルスキャンは、前のテーブルの行の組み合わせごとに実行されます。 これは、通常テーブルが const とマークされていない最初のテーブルである場合には適しておらず、通常ほかのすべてのケースで著しく不適切です。 > 8.8.2 EXPLAIN 出力フォーマット
systemには基本ならないので、indexを貼ってrefにしたいらしい。
このへんみた
やった感想とか
ISUCON、そもそも全然はじめ方が分からなくて....これまでは環境構築の時点で諦めていました。
だけど、今回モブ形式で環境構築から何からやったことで、ベンチを回す楽しさを感じることができたのが超最高でした!初期ベンチだったけど「3262」の数字が出た時は嬉しくて嬉しくて!!!!うおおってなった。最終的に5000超えしました👏
雑にISUCONをやる会は一旦今日で解散しましたが、ISUCONの楽しさを少し感じることができ、始めるハードルもかなり下がりました(1人で環境構築できるとは言っていない)
今回でよく出てくるキーワードや、ざっくりした流れは学ぶことができたので、これを続けていきたいです!!!!!一緒にやってくれたみんなありがとう、大感謝を込めて!!!!!!!!!!