投稿

2月, 2018の投稿を表示しています

[isucon] ISUCON7 本選17位でした

イメージ
2017年11月25日、LINE の新宿ミライナタワーの会場にて、 ISUCON7 本選にチーム 円山町(hidekiy, kotaroy, k_enoki) として参加してきました。成績は ISUCON6 本選と比べて若干の進歩はしたのですが、まだまだ上位層との壁を感じました。 当日やったことを書いておきます。 10:00~ SSH 鍵ログイン設定、Mackerel Agent 設定、Go 実装に変更、アプリの動作確認、Go の CPU プロファイル取得 (pprof) 12:00~ 分析の結果、初期状態のボトルネックは、DB と API のどちらの CPU, 各種 IO も使い切っていると言えないので、ロック競合か何かかと思ったが、煮え切らないまま深く考えなかった (これが致命的にまずかった) CPU プロファイル的には、多倍長整数演算が遅かったのと、コード上明らかにおかしな1000回ループ、テストコード付属という親切設計を見て、このループを最初に修理することにした。 16:00~ 初めて使う Go の多倍長整数演算ライブラリで、苦労の末1000回ループの除去に成功、それでも相変わらずボトルネックはDBのロックにあるように見え、これを何とか小細工しようとするが、特に有効な手を打てないまま時間切れとなった。 感想 速やかに、オンメモリー方式に作り替え、ロックを部屋別に分散させる決定をする必要があった。 Go の多倍長演算には結構苦しんだ。 糖を消費したせいか、ISUCON ケーキが美味しかった。 総括 素晴らしいイベントを企画、運営いただいた、LINE、KLab、さくらインターネット様には大変お世話になりました。ありがとうございます。