Skip to content

OTR_ConcurrencyTuning

nishi_74322014 edited this page Oct 27, 2026 · 1 revision

同時実行性のチューニング

概要

スレッド・接続など、同時実行性に関わる環境設定。主にインフラ担当・纏め者の性能設計である。

  • ランタイムで調整の対象がまったく違う。 net48(IIS)の設定の多くは、net10.0(Kestrel)では効かない。
  • 先回りして設定をいじらない。 実測でスレッドの枯渇やキューの溢れが出てから調整する(ログ分析)。

詳細

net48(IIS)

設定 役割
machine.config の <processModel> ワーカー・IO スレッドの上限(autoConfig=true で自動最適化。通常は触らない)
machine.config の <httpRuntime> 空きスレッドの確保、実行タイムアウト
machine.config の <connectionManagement maxconnection> アウトバウンド接続の 1 アドレスあたりの同時接続数(既定 2)。外部 API・Web サービスを多く呼ぶなら増やす
aspnet.config の <applicationPool> IIS 統合パイプラインの同時要求

net10.0(Kestrel)

  • スレッド・プールは自動で拡張される。上記の設定は効かない。
  • 第一原則は async / await を末端まで通すこと。 スレッドをブロックしなければ、少ないスレッドで多くの同時要求を捌ける。
  • Kestrel の Limits.MaxConcurrentConnections(既定は無制限)。
  • アウトバウンド接続は SocketsHttpHandler.MaxConnectionsPerServer、IHttpClientFactory で接続プールを管理する。
  • IIS の背後で動かすなら、同時要求・キューは IIS のアプリケーション・プール側の設定になる。

Open 棟梁との対応

  • net48 のサンプルは IIS / IIS Express で動くが、通常は自動最適化で足りる。外部 IdP・Web サービスを多用するなら maxconnection を検討する。
  • net10.0 は Kestrel。B 層の呼び出しは DoBusinessLogicAsync を使う(P層(ASP.NET MVC)の実装)。

コーディング・エージェントに任せる場合

  • スキル opentouryo-app-design(references/concurrency-tuning.md)を使わせる。
  • エージェントが net48 の知識(machine.config など)を net10.0 に持ち込んでいないかを確認する。

参考


Tags: 再構築

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki
開発基盤部会 Wiki

移行管理: DONE / TODO

Clone this wiki locally