ISUCON14で7位でした!結果を振り返ります! - RAKUS Developers Blog | ラクス エンジニアブログ

RAKUS Developers Blog | ラクス エンジニアブログ

株式会社ラクスのITエンジニアによる技術ブログです。

ISUCON14で7位でした!結果を振り返ります!

こんにちは、あるいはこんばんは。楽楽販売の開発をやっている@tacloseです☆

ISUCONに参加するのはこれで2回目ですが、

今回は7位でした!

ISUCON14 TOP30

微妙!とか言わないで!頑張った方ですよ!運が良かった方ですよ!(と言いたい!)

今日はそんなISUCON14がどんな感じだったのかを振り返っていこうと思います!

記事の概要・想定読者

  • 想定読者
    • 今年ISUCON出たけど、悔しい思いをした方
    • 来年ISUCON出てみようかな?と思う方
  • 記事の概要
    • ISUCON14の細かいチューニングポイントはあまり取り上げません。
    • Git管理やMakefileの準備やノウハウ集ではありません。
  • ISUCONに挑戦する準備や練習、当日の困りポイントをまとめた体験談です。

では早速、当日までの準備から振り返ってみましょうっ

ISUCONの準備

前回の反省からはじまる

11月ごろ行われた作戦会議では以下の話が出ました。

前回の敗因はずばり準備不足、練習不足!以下のような社内ハンズオンを開催するぐらいの知識量はあったものの、 tech-blog.rakus.co.jp

当日は8時間という限られた時間で実践するのは至難の業でした。

前回の反省点

  • サーバ構成変更時のコマンド準備が不十分だった(Makefileベンチマーク前のコマンドを準備するなど)。
  • サーバ構成変更時にネットワーク設定でアタフタして0点になりかけた。

そこで今回は事前準備とサーバ構成変更の練習に重きを置くことにしました。

練習はISUNARABE!

ISUNARABE を使い、本番さながらの練習をしました。 特に課題だったAWSでの3台サーバの使い方や初動の役割分担を重点的に練習しました。前回に比べると少ない練習時間でしたが、効果はありました。

ISUCON当日

ISUCONの初動:初回ベンチマークまでにやる事!

私たちのチームでは以下の作業を分担して進めました。

  • configやアプリをGit管理下に置く
  • makeコマンドで設定ファイルやアプリをデプロイ
  • MySQLやnginxの初期設定(slow queryのログ出力など)

作業が終わったら初回ベンチマークを実行。

10時半時点でスコア1000点でした。

初回後の次の一手:DBのINDEX見直し

nginxログ解析で遅いAPIは分かりますが、まずはDBのINDEXを整備するのが効率的。 pt-query-digestで解析し、30分~1時間で対応しました。この時点でスコアは3800点。

各自が怪しいポイントを重点的に攻める

我がチームは全員遊撃部隊

  • nginxログやプロファイラー結果を見て処理時間が長い箇所を探る
  • 怪しい箇所を自由に攻める

13時半でスコア8000点、15時に15000点、16時に18000点まで到達しました。

4時以降:サーバ構成を真剣に考える

3台サーバの使い方を再検討。

  • 1台をnginx+アプリ用、もう1台をDB用に割り当て

16時半でスコア26000点。

最後のチューニング

サーバ構成変更に伴い、nginxやMySQLの設定値を見直し。

17時半でスコア37000点。

終結

39957点

今回のISUCONの振り返り

良かった点

チームメイトに恵まれたこと。感謝感謝です!お疲れ様でした!

反省点

N+1問題への対処が不十分だったこと。

  • 抜本的な解決策を思いついても時間内では躊躇してしまい、キャッシュで逃げてしまった。

場数を踏めばこういった勘所も磨かれると思うので、次回再挑戦したいと思います!

最後に

これからISUCON始める人、始めたばかりの人に参考になれば幸いです!

もしこれからISUCONはじめるぞ!という方は 目指せISUCON!!社内WEBパフォーマンス改善ハンズオンのすすめ - RAKUS Developers Blog | ラクス エンジニアブログ でも紹介している書籍を読まれたり、ローカルでパフォーマンスチューニングを練習してからやる事をお勧めします!

ランク外で終わっても非常に学びが多く楽しいイベントなので、是非みなさんトライしてみてください!!

Copyright © RAKUS Co., Ltd. All rights reserved.