mcpField
N
nginx-c-module-perf

nginx-c-module-perf

github.com/pproenca開発218256 回インストール11 週間前に更新
リポジトリ

nginx-c-module-perf について

nginx-c-module-perfは、nginx Cモジュールの性能と運用上の信頼性を高めるためのスキルです。優先度付きの43ルールを8カテゴリに整理し、詳しい解説とコード例を参照ファイルで提供します。

主な機能

  1. 018カテゴリにわたる43のルール
  2. 02優先度付きの最適化指針
  3. 03バッファーとゼロコピーI/Oの手法
  4. 04接続、ロック、ワーカーの調整
  5. 05耐障害性、タイムアウト、キャッシュのパターン

活用シーン

  1. 01モジュールのI/O経路でバッファーコピーを削減
  2. 02アップストリーム接続とタイムアウトの調整
  3. 03共有メモリーキャッシュとロック動作の改善
  4. 04アップストリーム障害やリソース枯渇への復旧策の検討

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/pproenca/dot-skills --skill nginx-c-module-perf

インストール後、Claude Code で/nginx-c-module-perfを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

metadata.json
assets/templates/
_template.md
references/
_sections.md
buf-avoid-copy.md
buf-chain-reuse.md
buf-coalesce-small.md
buf-file-sendfile.md
buf-recycled-flag.md
buf-shadow-reference.md
cache-conditional-store.md
cache-key-hash.md
cache-shm-lru.md
cache-stampede-lock.md
cache-ttl-atomic.md
conn-close-linger.md
conn-drain-pressure.md
conn-prealloc-pool.md
conn-reusable-queue.md
conn-ssl-session-reuse.md
conn-tcp-nodelay.md
err-blocked-counter.md
err-cache-errno.md
err-connection-error-check.md
err-fallback-response.md
err-log-once-pattern.md
err-resource-exhaustion.md
lock-alloc-outside.md
lock-atomic-counters.md
lock-minimize-critical.md
lock-per-worker-aggregate.md

詳細

nginx.org C モジュールのパフォーマンスと信頼性に関するベストプラクティス

nginx の C モジュール向けの包括的なパフォーマンス最適化と信頼性のガイドです。nginx の公式開発ドキュメントと本番環境でのエンジニアリング経験に基づいています。8 つのカテゴリーにわたる 43 のルールを含み、影響度の高い順に、自動最適化とレジリエンス向上の指針を示します。

関連スキル:このスキルは、正確性(メモリ安全性、リクエストのライフサイクル、設定)を扱う nginx-c-modules を補完します。このスキルでは、パフォーマンスの最適化と運用上の信頼性を扱います。

適用する場面

以下の場合に、これらのガイドラインを参照してください。

  • nginx C モジュールのスループットとレイテンシを最適化する
  • バッファのコピーを減らし、ゼロコピー I/O パスを有効にする
  • コネクションプーリングとソケットオプションを調整する
  • ワーカー間の共有メモリロックの競合を最小限に抑える
  • 適切なエラー復旧とフォールバックレスポンスを実装する
  • アップストリームのタイムアウトと再試行戦略を設定する
  • 共有メモリを使ったモジュール内レスポンスキャッシュを構築する
  • 負荷がかかった状態でのワーカープロセスの動作を調整する

優先度別のルールカテゴリー

優先度カテゴリー影響度接頭辞
1バッファとゼロコピー I/O重大buf-
2コネクション効率重大conn-
3ロック競合とアトミック操作高lock-
4エラー復旧とレジリエンス高err-
5タイムアウトと再試行戦略中〜高timeout-
6レスポンスキャッシュ中cache-
7ワーカーとプロセスの調整中worker-
8ロギングとメトリクス低〜中log-

クイックリファレンス

1. バッファとゼロコピー I/O(重大)
  • buf-chain-reuse - 新規割り当ての代わりにバッファチェーンのリンクを再利用する
  • buf-file-sendfile - 静的コンテンツをメモリに読み込む代わりに、ファイルバッファを使用する
  • buf-avoid-copy - フィルターチェーンを通す際にバッファをコピーしない
  • buf-coalesce-small - 出力前に小さなバッファをまとめる
  • buf-shadow-reference - 完全なコピーの代わりに、派生データにはシャドウバッファを使用する
  • buf-recycled-flag - アップストリームレスポンスの再利用に備えて、バッファに再利用可能フラグを設定する
2. コネクション効率(重大)
  • conn-reusable-queue - アイドル状態のコネクションを再利用可能としてマークし、プールで再利用できるようにする
  • conn-drain-pressure - メモリ圧迫時のコネクションのドレインを処理する
  • conn-tcp-nodelay - レイテンシに敏感なレスポンスに対して TCP_NODELAY を制御する
  • conn-prealloc-pool - 実行時の再割り当てを避けるためにコネクションプールのサイズを設定する
  • conn-close-linger - コネクションを適切にシャットダウンするためにリンガークローズを使用する
  • conn-ssl-session-reuse - アップストリームコネクションで SSL セッションキャッシュを有効にする
3. ロック競合とアトミック操作(高)
  • lock-minimize-critical - 共有メモリ内のクリティカルセクションの時間を最小限に抑える
  • lock-atomic-counters - 単純なカウンターにはミューテックスの代わりにアトミック操作を使用する
  • lock-trylock-fallback - ワーカーの停止を避けるため、フォールバックを設けて ngx_shmtx_trylock を使用する
  • lock-per-worker-aggregate - 共有メモリへのアクセスを減らすため、ワーカーごとのカウンターを集計する
  • lock-alloc-outside - ホットパスの外でスラブ割り当てを行う
  • lock-rw-pattern - 読み取りの多い共有データに Read-Copy-Update パターンを使用する
4. エラー復旧とレジリエンス(高)
5. タイムアウトと再試行戦略(中〜高)
  • timeout-upstream-phases - 接続、送信、読み取りの各フェーズに個別のタイムアウトを設定する
  • timeout-retry-next-upstream - 再試行可能な失敗に対して next_upstream マスクを設定する
  • timeout-backoff-reconnect - アップストリームへの再接続試行に指数バックオフを使用する
  • timeout-client-body-limit - クライアントのボディタイムアウトを設定し、低速クライアントによるリソース使用量を制限する
6. レスポンスキャッシュ(中)
  • cache-shm-lru - 共有メモリキャッシュゾーンに LRU 退去方式を実装する
  • cache-stampede-lock - シングルフライトパターンでキャッシュスタンピードを防ぐ
  • cache-key-hash - 固定キャッシュキーの検索に ngx_hash を使用する
  • cache-ttl-atomic - TTL の期限切れ判定にアトミックなタイムスタンプ比較を使用する
  • cache-conditional-store - ネガティブキャッシュの汚染を避けるため、成功したレスポンスのみをキャッシュする
7. ワーカーとプロセスのチューニング(中)
8. ロギングとメトリクス(低〜中)
  • log-level-guard - レベルチェックでガードし、コストの高いデバッグ引数の計算を抑える
  • log-connection-context - トレース用に接続ログへモジュールのコンテキストを付加する
  • log-shared-metrics - 共有メモリカウンターを使ってメトリクスを収集する
  • log-error-dedup - スロットリングにより、繰り返されるエラーメッセージを重複排除する
  • log-action-string - 操作のコンテキストを示すログアクション文字列を設定する

使用方法

詳細な説明とコード例については、個別のリファレンスファイルを参照してください。

リファレンスファイル

ファイル説明
references/_sections.mdカテゴリーの定義と順序
assets/templates/_template.md新しいルール用のテンプレート
metadata.jsonバージョンとリファレンス情報

コメント