ISUCON11までの練習ログ
ISUCON11は予選敗退しました.詳しくは以下のブログで.
shiningcureseven.hatenablog.com
今回もめちゃくちゃ練習したので,そのログと,ami情報を掲載します
ami情報
amiが用意されていてありがたかった.がシュッと動かないものがあったのでメモ(2021/7/17時点)
ISUCON5予選
これを流して初期データを流す必要がある. この作業がめちゃ重いのでインスタンスサイズは c5.2xlarge で.それでも3hくらいかかる
mysql> create database isuxi; Query OK, 1 row affected (0.00 sec)
cd /home/isucon/isucon5-qualify/webapp/script bundle install bundle exec gen.rb gen_users bundle exec gen.rb gen_relation bundle exec gen.rb gen_footprints bundle exec gen.rb gen_entries bundle exec gen.rb gen_comments bundle exec gen.rb gen_testsets
rubyはbundlerのversionが新しすぎて動かないらしい.
goはdbのuserとpasswordを与えないと動かない
$ cat env.sh PATH=/usr/local/bin:/home/isucon/.local/ruby/bin:/home/isucon/.local/node/bin:/home/isucon/.local/python3/bin:/home/isucon/.local/perl/bin:/home/isucon/.local/php/bin:/home/isucon/.local/php/sbin:/home/isucon/.local/go/bin:/home/isucon/.local/scala/bin:$PATH GOPATH=/home/isucon/gocode ISUCON5_DB_USER=isucon ISUCON5_DB_PASSWORD=isucon
ISUCON6予選
当日マニュアル わかりにくいところにある
初期実装perlは動くけどgoは動かない muxのエンコードがうまくいかない. versionを2015年くらいのやつに変えてもだめだったので以下を行う.
@@ -456,7 +456,6 @@ func main() { }) r := mux.NewRouter() - r.UseEncodedPath() r.HandleFunc("/", myHandler(topHandler)) r.HandleFunc("/initialize", myHandler(initializeHandler)).Methods("GET") r.HandleFunc("/robots.txt", myHandler(robotsHandler))
goのversion 17ではできなかった.16にしたらできた. version管理方法も変える必要あった
$ make isuda go get github.com/go-sql-driver/mysql # github.com/go-sql-driver/mysql ../go/src/github.com/go-sql-driver/mysql/nulltime.go:36:15: undefined: sql.NullTime Makefile:4: recipe for target 'deps' failed make: *** [deps] Error 2
muxのエンコーダ入れると壊れる
$ GOPATH=~/webapp/go make isuda
これで解決できる
ISUCON9本戦
c4.large benchの負荷が高いのでbenchサーバーを用意すること推奨
- docker起動しなきゃ見れない
- systemd管理がなくなっている. systemd.serviceを作らないといけない
- docker-compose.ymlが/user/local/bin にない
isucon9-final/MANUAL.md at master · isucon/isucon9-final · GitHub
より,既知の問題
- 初期実装は遅すぎてスコアが出ません。
- 初期実装ではロック機構がうまくなく、二重発券される場合がある可能性があります
がある
よく 課金APIと予約の整合性が取れていません (critical error)
が出てしまう.paymentはいじることないはずなので仕方なし
ISUCON10本戦
go,rubyは動くの確認ずみ benchにはローカルでも-target-urlを指定しないといけない.
ISUCON10本戦
初期データが入っていないので一回負荷走行を回す必要があるが 証明書エラーでベンチが回らない.証明書を正しくする必要がある envoyを書き換えてsslやめた
練習ログ
3/20 ISUCON9本戦
去年の本戦出場メンバーでそろそろやるか,という話に.ISUCONを思い出す会
3396点
4/3 ISUCON9本戦
続きやる会
5784点
4/10 ISUCON9本戦
ハーフタイムで,続きをやる会
13719点
4/24 ISUCON7予選
Oysters合同練習.msmさんyuさんと. rubyで挑戦
4777点
5/30 ISUCON3予選
Oysters合同練習.初めて1人でやってみた.
8838.4点
7/4 決起会
チームメンバーが決まり,決起会.
7/10 ISUCON8予選
8h時点スコア 19671 26時時点スコア 6万点くらい
6/26 社内ISUCON
takuさんと2人チーム
18993点
7/17 ISUCON6予選
pinkumohikanさんと2人で練習
- kataribe入れられるようになった
- 1人でマイクロサービスをやめるをできた
- generate columnを学んだ
"pass":true,"score":25947,"success":10137,"fail":33
7/22 ISUCON6予選
msmさんと2人で練習
- オンメモリ
{"pass":true,"score":80625,"success":35081,"fail":1,"messages":["keyword: \"上町村\" に \"川上町\" からのリンクがありません (GET /keyword/川上町)"]}
https://github.com/oystersjp/isucon-practice-20210722/issues/1github.com
7/23 ISUCON9本戦
- ログサーバをmsmさんが作ってくれた
- indexはったことにより順番が変わってしまう対応した
8h競技終了時点 5960点 23:30時点 17556点 {"pass":true,"score":17556,"messages":["エンドポイント成功回数: 3441","スコア: 17556","ペナルティ: 0"],"available_days":100,"language":"golang"}
7/24 ISUCON5予選
ジェンガチームとちゅうこあチームと合同練習!10倍くらいの点数を出せた
- generated column扱えた
{"success"=>10936, "redirect"=>3021, "failure"=>1, "error"=>0, "exception"=>0}
7/31 各自調べたいことを調べる会
私は
- nanoエディタはじめショートカットを確認
- git管理早くやる方法調査
- package入れる手順おさらい
8/8 ISUCON7予選
- DBに保存している画像を書き出して,nginxから配信するようにした
275472点 21:30時点747104点
https://github.com/takoyakisoba/isucon-practice-20210808/issues/1github.com
8/9 ISUCON10本戦
- FOR UPDATE SKIP LOCKEDお試し
6h時点15998
8/14 ISUCON10予選
- generated columnで降順indexっぽいことをした(mysql5.7)
- generated columnでchairの高さなどをidでもつようにした
8h時点 6540