猿に文明を与えるな

個人的な勝手なまとめ。

ISUCON3本戦遊び (6)

インスタンスタイプ変更

GET /icon/ の調査をしようとしたが、他の人と揃えるためにm3.largeに変更

  • 1st: done benchmark: score 2397.84961993462, elapsed 60.322 sec = 39.751 / sec
  • 2nd: done benchmark: score 3071.08949379212, elapsed 61.119 sec = 50.248 / sec

遅いリクエストを探す

GET /timelineが遅い様子

f:id:gorogoro13:20150712222127p:plain

slow queryを確認
slow_query_log = ON
slow_query_log_file = /tmp/mysql-slow.log
long_query_time = 0.5

上記設定後、ベンチ実行するもスローログは記録されず

    while Time.now.to_i - start < TIMEOUT
      _entries = mysql.xquery(sql, *params)

      if _entries.size == 0
        sleep INTERVAL
        next
      else
        entries      = _entries
        latest_entry = entries.first["id"]
        break
      end
    end

なぜsleepしてるのだろうか。とりえあずコメントアウト #=> 結果変わらず

ここが、ベンチマーク実行時間の後半にかけて徐々に遅くなっている。

この処理をSQL側に寄せることはできないかというところから次回は行う。