なんかてきとうに

わりと個人的な忘備録的ですよ。

isucon8に出た話 なんも情報ない感じのやつ

何もわからないまま、1人でもエントリーできるという事で誰にも迷惑かけないだろうとエントリー。

結果

  • 38位 24,353 箱 (1)

前日までにやったこと

  • なし

本当に何の準備もせず。

当日やったこと

  • pythonで行くことに決めた。

  • mysql のslow log を取ろうとしてダメだった。

ベンチはしらせたら結果にこれが遅かったのでみたいなのが出たのでそれでカバー。

使った結果良くなったのかさっぱりわからない。

  • pythonのapp.pyをいじる。

遅いところが 無駄にDBにクエリなげていたのでざっくり修正 get_event()がつらい感じだった。あとget_users()も。

構成をちゃんとする

という感じ。(他の人達はDB+app*2みたいな構成にしてたっぽい?)

ちなみに1台構成だと普通にメモリ不足からのDiskIOで死にました。

これで24,000行ったし、初めてでこれなら良いのでは?と終了。

ベンチ前にinitializeでDB初期化が走るんですけど、ローカルのDB初期化する感じになってたので、リモートDBの初期化をするように変えたり、この段階でmemcachedの初期化したり現存するユーザ突っ込んだりとかもした。

そのほか、 mariadbinnodb_buffer_pool_sizeを500Mくらいにしたり gunicornに -w 5 をつけてworkerを5にしたりした。(2論理CPUだったので2*2+1=5)

感想

何も準備してなかったので、用意されたサーバにsshしてそこでvimrcなんもなしのvimで書いてたので、スペルミスによるfailとかたくさんあってしんどかった。

モニタリングの準備と、何らかちゃんとしたエディタで書けるようにくらいはしておかないとダメでは。