ツナワタリマイライフ

日常ネタから技術ネタ、音楽ネタまで何でも書きます。

ISUCON8反省会

いろいろと考えないといけないこと、アウトプットしないといけないことが溜まってるわりに、やっていきがあふれていたので月末の日曜にがっつり消化している感じ。

ISUCON8に出た。

見ての通り、まぁ準備不足(過去問を解いていない)なのに何を言うかという感じではあるが、せっかくなので書いておく。

@sat0yuがQuiper Product Blogにいい感じの記事を書いてくれている。

quipper.hatenablog.com

反省と学び

今回、CentOS7とMariaDBということで、個人的にかなり馴染みのあるOSとDBであった。にもかかわらず。

ちなみにH2Oははじめましてでした。

大きな学びはこんなところ。

  • その場で学んで行く時間はない。手慣れたもので勝負すべき。そのためにはインフラ構成変更も辞さない。
    • ただし"手慣れた"ものを増やすために、普段からのキャッチアップがここで生きる。
  • 変更を容易にRevertできるようにすべき。
    • 今回はソースコードとconfigに関しては前回参加した@ujihisaがgit管理下においてdeployを容易にしてくれた
    • MariaDBのvup、使ってないサーバであげたんだけど、このDBに対してアプリの書き込みを向けることができなかった
  • 敵を知れ。ベンチマークの理解。
    • 優先度をあやまった。DBやWebのloadbalanceより、ベンチマークで何が走るのか。すなわちinitでDBの初期化が何が走るのかまず見るべきだった
    • このDBやwebの構成変更ができなかった=ベンチマークの初期化処理とアプリの挙動を理解していなかったことが主な敗因

前職でちょうどMariaDBのvupをして、性能があがった経験からやろうと思ったんですけど、ダメですね、それはそうかもしれないけど、優先順位が違う。

来年に向けて

じゃあどんなアクションをとるかということ。

たぶん、過去問を数年分といて、ベンチマークツールの使い方、一般的な対策、そういう準備をしても、予選通過はできないと思う。このぐらいはどのチームもやっているからだ。

個人の取り組みとしては、大きく以下を1年間で身に付けたい

  • 計測 - 観察 - 改善のサイクルをいろんなミドルウェアで行う
  • SQL / メジャーなDatabaseの性能/基本操作の学習
    • MySQL系はまぁまぁ触れたがPostgresやMongoはあんまり。(Qで使ってるのに!)

多分来年参加するとしてもインフラ担当で出たいので、シェアの高いWeb/DBに関しては余暇を作って抑えておきたい。

その走りとしてWeb serverのベンチ環境を作ったので月イチぐらいで遊んでいきたいと思う。

それと同時に実運用するアプリが作れたらいいんだと思うけど、まぁそれは@kamontiaとなにかやれればいいね。

おわりに

しかし参加してよかったしかない、無力さを感じることは、成長につながる。機会をくれたお2人に感謝。