- リポジトリの作成 (app, infra)
- リポジトリをローカルに pull
- AWSアカウントにログイン
- ターミナルのウィンドウ配置
具体的なコマンドはこちらに: https://github.com/tmokmss/isucon12q-infra
- 環境のセットアップ
- プロビジョニング
- ssh鍵の作成、GitHubに公開鍵登録
- インフラリポジトリのpull
- アプリリポジトリの作成・push
- 初期ベンチマーク回す
- 環境の確認
- 各サーバーのスペック
- ミドルウェア
- DB
- リバースプロキシ
- Goのライブラリ
- サービスの起動方法
- 各種confの位置
- ルールの確認
- DBとアプリのサーバーを分離 とりあえず2台使う
- ログ仕込む
- slow query
- alp用のアクセスログ
- ベンチマーク回す (ここまで1時間でできていれば最高!)
- htopで各サーバーのCPU使用率を監視
- アプリとDBどちらがボトルネックかを確認
- (DBなら)
- DDL修正
- slow query見ながらインデックスを貼る
- DB分割
- テーブル間でトランザクションなければ分割可能
- DDL修正
- (アプリなら)
- N+1解消
- オンメモリ化
- バルクインサート
- 各種ロギングを無効化
- nginx
- slow query
- app logger
- app profiler
- ルールをみて追試の内容を確認する
- 特に再起動処理! initializeが叩かれる前提の実装になっていないか要確認
- フロントエンドからも一通り触ってみる