Skip to content

Instantly share code, notes, and snippets.

@tmokmss
Last active September 4, 2023 01:03
Show Gist options
  • Save tmokmss/11407e3d3737a7696fddb6f747c79e4a to your computer and use it in GitHub Desktop.
Save tmokmss/11407e3d3737a7696fddb6f747c79e4a to your computer and use it in GitHub Desktop.
ソロISUCON 道標

準備

  • リポジトリの作成 (app, infra)
  • リポジトリをローカルに pull
  • AWSアカウントにログイン
  • ターミナルのウィンドウ配置

ソロISUCON 道標

具体的なコマンドはこちらに: https://github.com/tmokmss/isucon12q-infra

  1. 環境のセットアップ
    1. プロビジョニング
    2. ssh鍵の作成、GitHubに公開鍵登録
    3. インフラリポジトリのpull
    4. アプリリポジトリの作成・push
  2. 初期ベンチマーク回す
  3. 環境の確認
    1. 各サーバーのスペック
    2. ミドルウェア
      1. DB
      2. リバースプロキシ
      3. Goのライブラリ
    3. サービスの起動方法
    4. 各種confの位置
  4. ルールの確認
  5. DBとアプリのサーバーを分離 とりあえず2台使う
  6. ログ仕込む
    1. slow query
    2. alp用のアクセスログ
  7. ベンチマーク回す (ここまで1時間でできていれば最高!)
    1. htopで各サーバーのCPU使用率を監視
    2. アプリとDBどちらがボトルネックかを確認
  8. (DBなら)
    1. DDL修正
      1. slow query見ながらインデックスを貼る
    2. DB分割
      1. テーブル間でトランザクションなければ分割可能
  9. (アプリなら)
    1. N+1解消
    2. オンメモリ化
    3. バルクインサート

終盤

  1. 各種ロギングを無効化
    1. nginx
    2. slow query
    3. app logger
    4. app profiler
  2. ルールをみて追試の内容を確認する
    1. 特に再起動処理! initializeが叩かれる前提の実装になっていないか要確認
    2. フロントエンドからも一通り触ってみる
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment