sfus、sgykfjsmと3人で「博多三双 明太子ラーメン」というチーム名で予選1日目に参加しました。

結果は以下のように惨敗。

  • 選択した言語: golang
  • 最終スコア: 95,883
  • 順位: 34位

やった事をまとめておきます。


担当分け

  • sfus: アプリ
  • sgykfjsm: アプリとデプロイ
  • matsumana: アプリとインフラ

チューニング内容とスコア

  • 初期スコア: 6,604
  • golang実装に切り替え

この時点でスコアは3,613



  • 鍵の設置
  • alpでnginxのaccesslogを分析出来るようにした
  • percona-toolkitでMySQLのslow query logを分析出来るようにした

この時点で時刻は14:25



  • アプリのチューニングをいくつか
  • MySQLのチューニング
    • innodb_flush_method = O_DIRECT
    • innodb_flush_log_at_trx_commit = 2
  • MySQLのインデックス追加
  • nginxのチューニング
    • app1でnginxを稼働させ、app1とapp2にリバースプロキシするように設定
      (appサーバ2台でアプリを動かす)
    • /iconsが304になるようにnginxを設定
      デフォルトのnginx.confでうまく設定が出来ず、最新の1.13.6をソースからビルドしてインストールして設定し直してみた
      (結局自分のnginx.confの書き方が悪かっただけでこの作業は意味なかった・・・)
    • ブラウザで動作確認すると304になるけど、ベンチのスコアが上がらないという状況になる・・・ (ToT)

この時点で時刻は16:50。スコアは4,302
この時間帯の修正、ベンチスコアのブレが大きくてどれが効果あったか不明



この時点で時刻は19:00。スコアは71,376
ようやくポータルサイトのリーダーボードのランキングの真ん中辺りに戻った



この時点で時刻は19:35。スコアは94,953
リーダーボードのランキングは8位くらいだったと思う


ようやく戦えるくらいのスコアになったけど、残り1時間半で大きなブレイクスルーを起こせずに終了。
最終スコア95,883でした (ベストスコアは97,679)



ソースと設定ファイル

以下に置いておきました



個人的な良かった点・悪かった点

良かった点

  • 当日を想定した練習として、事前に3人でpixivさんの社内ISUCONを解いていた
    (ISUCON何回か出場してるけど、過去問題がこんなに役に立った事は無かった)

悪かった点

  • 画像を304にするためのnginx設定に時間が掛かりすぎた
  • ベンチマーク対象のサーバを複数選択出来るのを気づいてなかった
    nginxが結構CPU食ってたので、もう少しスコア上がったと思う
    (レギュレーション・当日マニュアルはちゃんと読んだつもりだったんだけど・・・)


まとめ

また予選落ちでしたが、今年もとても楽しいイベントでした。
運営の皆さん、ありがとうございました。
出場された皆さん、お疲れ様でした。

来年も開催される事を祈っています。