2018年9月16日にISUCON8に参加してきた。

ISUCONとは

Iikanjini Speed Up Contest の略。公式は こちら
アプリやインフラ、DB等のチューニングしてベンチマークのスコアを競うコンテスト。
前から興味があったけど、去年は周りでメンバーが集まらず断念。
今年は @kobashinG が出ようと言ってくれて一緒に初参加することに。
3人目は周りに声かけたけど誰も乗ってくれず2名で挑むことに。

自分のやったこと

  • カーネルパラメタの変更

  • H2Oのちょっとした設定(connpressとか)

  • MariaDBの設定変更

  • inodbの設定変更

  • SQLのプロファイリング

  • slow queryに対してのインデックス作成

  • H2OからAppへtcpからunix domain socketへ変更(node側がちゃんと動かず...)

  • DBを別サーバーへ移行(別にしたら激遅になってベンチが動かなくなった...)

    ↑ここで良い対応策が出せなかった

惨敗しました

いろいろと反省点

  • 事前準備不足
    • デプロイやプロビジョニングの段取り
    • 使うプロファイラ類のインストールスクリプトは準備したい
  • 利用言語を当日決めた
  • 戦略が立てれてなかった
    • DBやインフラ側をどこまででキリをつけるか
  • 3台サーバあるので安直に分ければいいという思想があった
  • キャッシュの対応もできなかった
  • 自分はアプリ側の改修にあまり入れなかった

まとめ

正直ダメダメでもっとエンジニアしないといけないなと強く感じた。
感想戦でいろいろと他の人のアプローチを見つつDBやインフラの経験値が足りない点も気づけた。
あと今回は2人での参加だったので、もう少し自分もアプリ側に入って行きたい所だったが、Node.jsそこまで詳しくない点も反省。
終盤にPythonのコードを見てみたら、Flaskで書かれてるAPIだったので、そっちなら多少はがんばれたかもしれぬ。とはいえ言ったところで。
何より普段は便利なものが揃ってる環境下で富豪プログラミングをしている点は痛感したので、もっとエンジニアリングに集中できるようにしようと思う。
来年にはちゃんと準備してリベンジしたい。


ただ、参加してむっちゃオモロかった!!!!!!!
次も絶対参加する!

Related Posts