概要
ISUcon出場に向けて準備したことを記す。
目標・目的を定めた
- 目標
- ISUconの予選の時間を目一杯使い切ってチューニングをする
- 勝つことが目標ではあるが、初参戦なので現実的なラインの目標を立てた
- ISUconの予選の時間を目一杯使い切ってチューニングをする
- 目的
- インフラ周りの知見を高める
- パフォーマンスを考慮したアプリケーション構築のための知見を高める
- 社内のパフォーマンス・チューニングの業務に携われるようにする(頑張る)
メンバーを募集した
会社の同僚を誘い、2人チームで参戦。
パフォーマンス・チューニングの手順までを確認した
準備
- レギュレーション確認
- 環境構築
- sshの設定
- バックアップ取得
- 自動デプロイ構築
- 簡易的なスクリプト
- ssh接続してデプロイタスク実行、ミドルウェア再起動など
- モニタリングツール導入
- netdata
- プロファイリングツール導入
- alp
- アクセスログプロファイラ
- https://github.com/tkuchiki/alp
- php
- xhprof
- alp
- ベンチマーク
構成確認
- プロセス確認
- 不要なものは止める
- ハードウェアリソース
- top
- データベース
- MySQL
- データサイズ確認
- テーブルごとのサイズや行数を確認
- データサイズ確認
- MySQL
- アプリケーション
- URL洗い出し
- コードリーディング
チューニング
- パフォーマンス計測→分析→チューニング→計測
- CPUなのか、IOなのか、アプリケーションなのか、DBなのか
所感
初参戦して人権を失ってきた。 練習量が足りていないのはともかく、それ以前に基本的なことができていなかったので、来年はちゃんと戦えるように準備、成長していきたい。 自分の課題を見つめ直したり、今後のモチベーションに大きな影響を与えたりする機会となってそういった意味でも参加することができて良かったと思う。 なんでこれが無料なんだろうというくらいの大会で、運営の皆様方に大変感謝しています。
参考リポジトリ
参考リンク
- ISUcon公式サイト
- 「Webアプリケーションの パフォーマンス向上のコツ」の発表資料
- Webアプリケーションの パフォーマンス向上のコツ 実践編
- ISUCON初心者のためのISUCON7予選対策
- ISUCONの勝ち方動画メモ
- ISUCON7(予選)過去問環境をConoHaで構築する手順
- YAPC::Asia Tokyo 2015 「ISUCONの勝ち方」メモ
- 来年の isucon で泣かずに予選を終える為のメモ(1)