isucon8に出た話 なんも情報ない感じのやつ
何もわからないまま、1人でもエントリーできるという事で誰にも迷惑かけないだろうとエントリー。
結果
- 38位 24,353 箱 (1)
前日までにやったこと
- なし
本当に何の準備もせず。
当日やったこと
ベンチはしらせたら結果にこれが遅かったのでみたいなのが出たのでそれでカバー。
- memcached 使ってみた。
使った結果良くなったのかさっぱりわからない。
- pythonのapp.pyをいじる。
遅いところが 無駄にDBにクエリなげていたのでざっくり修正
get_event()
がつらい感じだった。あとget_users()
も。
構成をちゃんとする
- memcacned
- h2o + app
- mariadb
という感じ。(他の人達はDB+app*2みたいな構成にしてたっぽい?)
ちなみに1台構成だと普通にメモリ不足からのDiskIOで死にました。
これで24,000行ったし、初めてでこれなら良いのでは?と終了。
ベンチ前にinitializeでDB初期化が走るんですけど、ローカルのDB初期化する感じになってたので、リモートDBの初期化をするように変えたり、この段階でmemcachedの初期化したり現存するユーザ突っ込んだりとかもした。
そのほか、
mariadbの innodb_buffer_pool_size
を500Mくらいにしたり gunicornに -w 5
をつけてworkerを5にしたりした。(2論理CPUだったので2*2+1=5)
感想
何も準備してなかったので、用意されたサーバにsshしてそこでvimrcなんもなしのvimで書いてたので、スペルミスによるfailとかたくさんあってしんどかった。
モニタリングの準備と、何らかちゃんとしたエディタで書けるようにくらいはしておかないとダメでは。