パフォーマンスを向上させるためにmachine.config設定を調整する方法
ASP.Netの構成ファイルの設定を微調整すると、パフォーマンスが大幅に向上します。これらのファイルには、machine.configとweb.configが含まれます。
web.configファイルはアプリケーション固有であり、VisualStudioでWebアプリケーションまたはWebサイトを作成するときにデフォルトで作成されます。aspnet.configという名前の別の構成ファイルがあることに注意してください。これはASP.Net2.0以降から利用できます。このファイルは、システムの.NetFrameworkフォルダーのルートにあります。一方、マシン構成ファイルはmachine.configという名前で、%runtime install path%\ Configディレクトリにあります。
web.configファイルの設定はアプリケーションにのみ適用されますが、machine.configファイルにある設定はマシン全体に適用されます。システムに.NetFrameworkをインストールすると、machine.configファイルがインストールされることに注意してください。システムに含めることができるmachine.configファイルは1つだけ(システムごとに1つのみ)で、\ WINDOWS \ Microsoft.Net \ Framework \ vXXXX \ CONFIGディレクトリにあります。
machine.configファイルで定義された設定は、アプリケーションのweb.configファイルで定義された設定によって上書きされることに注意してください。アプリケーションは複数のweb.configファイルを持つことができます。ちなみに、web.configファイルはmachine.configで定義された設定を継承します。
推奨されるmachine.config設定
このセクションでは、パフォーマンスを向上させるためにmachine.configファイルに適用できる設定について説明します。デフォルト値と推奨値が各設定に対して指定されていることに注意してください。
maxconnection
machine.configファイルのsystem.Net設定を微調整して、アプリケーションがより多くの同時リクエストを処理できるようにすることができます。デフォルト値は2ですが、推奨値はCPUあたり12です。
パフォーマンスを向上させるために、machine.configファイルのプロセスモデルセクションの推奨設定は次のとおりです。machine.configファイルのプロセスモデルの設定を微調整して、ワーカースレッド、I / Oスレッドなどを制御できます。スレッドは、プロセス内の実行の最小単位であることに注意してください。
memoryLimit
この設定は、プロセスが使用するシステムメモリ全体のパーセンテージを指定するために使用されます。デフォルト値は40です。この設定の推奨値は、多くの要因によって異なります。このような考慮事項には、次のものが含まれます(ただし、これらに限定されません)。
- アプリケーションが隔離されたボックスにインストールされている場合
- アプリケーションでのメモリリークの発生
maxWorkerThreads
この設定は、任意の時点でスレッドプールで使用可能なワーカースレッドの最大数を定義するために使用されます。スレッドプールは、いくつかのスレッド、または正確にはスレッドのコレクションで構成され、バックグラウンドでいくつかのアクティビティを実行するために使用できます。MSDNは次のように述べています。「スレッドプールは、アプリケーションに代わって非同期コールバックを効率的に実行するワーカースレッドのコレクションです。スレッドプールは、主にアプリケーションスレッドの数を減らし、ワーカースレッドの管理を提供するために使用されます。」
maxWorkerThreadsのデフォルト値はCPUあたり20で、推奨値は100です。
minWorkerThreads
この設定は、着信要求を満たすためにスレッドプールで使用可能なワーカースレッドの最小数を決定します。デフォルト値は1ですが、推奨値はmaxWorkerThreads / 2です。したがって、machine.configファイルでmaxWorkerThreadsを100として定義している場合は、minWorkerThreadsとして50を指定する必要があります。
maxIOThreads
この設定は、入出力(I / O)操作を実行するために割り当てられるスレッドの最大数を定義するために使用されます。このような操作には、データベース操作、Webサービスの呼び出し、ファイルシステムへのアクセスなどが含まれます。デフォルト値はCPUあたり20ですが、100の値をお勧めします。
minIOThreads
これは、特定の時点でスレッドプールで使用可能なI / Oスレッドの最小数を定義するために使用されます。デフォルト値は1ですが、推奨値はmaxIOThreads / 2です。したがって、machine.configファイルでmaxIOThreadsを100として定義している場合は、minIOThreadsとして50を指定する必要があります。
すべてをまとめる
これらすべての設定を機能させましょう。次のコードリストは、この記事で前述した推奨設定に基づいた、machine.configファイルの一般的な設定を示しています。
maxWorkerThreads = "100"
maxIoThreads = "100"
minWorkerThreads = "50"
minIoThreads = "50"
/>