private-isu-tuning · git:20261015.b30307b · 2026-10-15 · sha256 a12eb04a35c77d92
private-isu-tuning git:20261015.b30307bA
Immutable. This exact content never changes and is served at /api/v1/blob/a12eb04a35c77d92.
--- name: private-isu-tuning description: private-isu専用サーバー上で、『達人が教えるWebパフォーマンスチューニング』付録Aに沿って、ユーザー指定のステップまで改善・計測して停止する。段階を指定した実装依頼に使う。 --- # private-isu の段階別チューニング 専用の練習環境で、指定された終点まで実装・反映・ベンチマークを行う。番号は [references/steps.md](references/steps.md) の 0〜13 に固定する。書籍のスコアは参考値であり、到達条件にしない。 ## 対象と終点を確定する - このスキルは接続済みのprivate-isu専用サーバー上で実行する。現在のホストを作業対象とし、SSH接続や接続先の指定は求めない。会話から終点を取得する。「ステップ5まで」は0〜5の累積、「5だけ」は5のみ。「静的配信まで」など複数番号に解釈できる指定は確認する。終点未指定で13まで進めない。 - 終点がなければ、その不足だけ質問する。認証情報を会話・記録へ出さない。 - 現在の環境でprivate-isuのアプリ・サービスを確認し、ベンチの対象URL・実行方法を特定する。別のベンチ専用ホストが必要なら、その実行方法だけ確認する。現在の環境にprivate-isuがなければ対象環境の不一致を伝え、別ホストへ自動接続しない。 - 実装依頼には、その範囲の反映・必要なサービス再起動・ベンチを含め、各ステップで承認待ちにしない。ベンチの初期化が触るDB・画像・キャッシュを確認する。専用環境や消去範囲が不明、保持対象データがある場合は初期化前に確認する。 ## 現在地を調べる 現在のサーバーでホスト、アプリ実体・言語、Gitの状態、起動サービス、nginxの有効設定、DBのバージョン・スキーマ・インデックス、ベンチの実行方法を確認する。パス・サービス名・DB名を固定しない。 ソースと実行中設定から、指定範囲を「未実施・一部実施・実施済み・非該当」に分類する。既存差分を保護し、二重のインデックス追加や既存改善の上書きを避ける。上限より先の改善が既にある場合は残し、その混在を報告する。過去の記録だけで実施済みと判定しない。 書籍はRuby実装を基準とする。他言語では同じ目的の変更を対象実装に合わせる。Ruby専用のworker・ライブラリ変更を無理に持ち込まない。非該当は根拠を記録し、別の最適化で穴埋めしない。「5だけ」などで前提が不足する場合は、範囲を広げず不足を示す。 ## 指定範囲内で進める 1. ステップ0として変更前のベンチと負荷を記録する。終点0なら計測で終了し、性能改善を入れない。計測用ログ設定は必要に応じて保存・変更し、採用状態を記録する。 2. 指定範囲の未実施ステップを番号順に1つずつ適用する。各変更直前に、そのステップが上限以内か確認する。参照資料では該当番号と必要な公式差分だけ読む。完成版ファイルの丸ごとコピーや一括cherry-pickは、後段の改善を混ぜるので避ける。 3. 編集対象の元ファイル・差分・有効設定を保存し、変更を戻す方法を決める。DBのDDLは通常のトランザクションで戻せると考えず、既存定義と今回追加するインデックスを区別する。 4. 構文・設定・対象挙動を確認してから反映する。nginxは設定テスト、サービスは再起動後の状態・ログまで確認する。初期化で必要なスキーマや設定が消えないことも確認する。 5. 同じベンチ条件で成否・スコア・エラー・遅い処理を記録する。アクセスログは当該実行区間を集計し、遅いSQLはスローログと実行計画で確認する。静的配信はHTTP成功だけでなくアプリに届いていないことも確認する。 6. 正常性に問題がなければ次の許可済みステップへ進む。スコア低下だけなら計測条件やばらつきを確認し、改善効果の未確認と機能不正を区別する。 ベンチの `pass` だけを成功根拠にしない。スコア、失敗件数、HTTP/DBエラーも確認し、サービス停止など比較不能な結果を改善成功としない。 変更に起因する失敗はそのステップ内で修正し再検証する。同じ失敗が修正後も2回続く、原因が範囲外、またはベンチ不能なら、後段へ進まず停止する。可能なら今回の失敗した変更だけを戻して稼働確認し、最後の検証済み状態と未完了内容を報告する。既存の障害を際限なく修正する作業へ広げない。 ## 到達したら停止する 指定ステップの反映と検証で終了する。残ったボトルネックは報告だけにし、次のインデックス、キャッシュ、設定調整などを先取りしない。上限内が既に実施済みなら現在状態を検証して終了する。 対象リポジトリの `.scratch/private-isu-tuning/` など、ソースに混ざらない場所へ実行記録を保存する。記録には日時、対象、言語、上限、変更ファイル・DDL、ベンチコマンドと条件、各段階の生結果・ログ参照、反映状態、復旧手順を残す。秘密値は除外する。commit・pushは明示依頼時だけ行う。 最後は日本語で、指定終点、検証済みの到達点、ステップ別の変更と実測結果、非該当・未完了・既存の後段改善、記録先を簡潔に示す。「実装済み」と「反映済み」と「ベンチ検証済み」を混同しない。 呼び出し例: `$private-isu-tuning ステップ5まで改善して止めて`