Open棟梁Project - マイクロソフト系技術情報 Wiki

目次

概要

同時実行性を向上させるためのパラメタについて纏める。

サマリすると以下の様になる。

以下に、Windowsのチューニングの基本的な考え方と纏めておく。

設定箇所

machine.config

IIS 6 以前、IIS 7 以降のクラシック・モードではmachine.configで以下の設定を使用できる。

状況に応じて Machine.config ファイル内の以下のパラメーターを調整する。

ファイルの場所

設定方法

注:IIS 7.0 以降のバージョンの統合モードで実行されている場合は機能しない。

推奨設定

構成設定規定値 (.NET 1.1)推奨値
maxIoThreads?20100
maxWorkerThreads?20100
minFreeThreads?888*N
minLocalRequestFreeThreads?476*N
maxconnection212*N
<system.web>
  <processModel maxWorkerThreads="100" maxIoThreads="100" minWorkerThreads="50"/>
  <httpRuntime minFreeThreads="704" minLocalRequestFreeThreads="608"/>
</system.web>
<system.net>
  <connectionManagement>
    <add address="[ProvideIPHere]" maxconnection="96"/>
  </connectionManagement>
</system.net>

aspnet.config

IIS 7 以降の統合モード+.NET 3.5 SP1 以降ではaspnet.configで以下の設定を使用できる。
※ Manual上は、.NET 4 以降になっているが、実際は.NET 3.5 SP1から採用されている。

ASP.NET アプリケーションが
IIS 7.0 以降のバージョンの統合モードで実行されている場合に、
プロセス全体の動作を管理するために ASP.NET で使用される構成設定を指定します。

これらの設定は無視されます。

ファイルの場所

設定方法

設定例

既定値

<configuration>
  <system.web>
    <applicationPool 
      maxConcurrentRequestsPerCPU="5000" 
      maxConcurrentThreadsPerCPU="0" 
      requestQueueLimit="5000" />
  </system.web>
</configuration>

applicationHost.config

アプリケーション プールのプロセス モデル設定 processModel
http://technet.microsoft.com/ja-jp/library/ee431629.aspx

ファイルの場所

%windir%?system32?inetsrv?config\ApplcationHost?.config

設定方法

ApplicationHost?.configにも、Machine.configと同様に
processModelタグがあるが、Machine.configのprocessModelタグとは異なる。

<applicationPools>
  <add name="DefaultAppPool" autoStart="true" />
  <add name="Classic .NET AppPool" managedPipelineMode="Classic" />
  <add name="MyAppPool" autoStart="true" managedPipelineMode="Integrated" />
  <applicationPoolDefaults>
    <processModel identityType="ApplicationPoolIdentity" />
  </applicationPoolDefaults>
</applicationPools>

統合モード(クラシック・モードからの変更点

IIS 7 以降の統合モード+.NET 3.5 以前では以下のレジストリ設定を使用できる。

同時実行制御の変更点

統合モードでは、ASP.NET スレッド設定を使用して要求の同時実行性を制御できない。

は、ASP.NET で使用されるスレッド メカニズムを制御しなくなりました。

その代わり、ASP.NET は IIS スレッド プールに依存し、

を設定することで、同時実行要求の最大数を制御できるようになりました。

この設定はグローバルなので、

変更することはできません。

同時実行性の制御方法

クラシック・モード+.NET 4 以前でアプリケーションの同時実行性を制御するには、

MaxConcurrentRequestsPerCPU 設定

(上記のレジストリ設定)を使用してください。

補足1

統合モードでは ASP.NET アプリケーション キューが使用されないので、

パフォーマンス カウンター:"ASP.NET Applications\Requests in Application Queue"

の値が常に 0 になる

補足2

IIS 7 は web.config ファイルのASP.NET 変更通知設定に関係なく、
web.config ファイルを監視し、これが変更されると、
常に ASP.NET アプリケーションを再起動するため、

system.web/httpRuntime 構成セクションの

属性の効果がない。


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS