4

machine.config の processModel を変更すると、IIS エクスプレス統合モード アプリケーションに何らかの影響があるのでしょうか?

Windows 7 で通常の IIS と IIS Express を WCAT を使用して比較していたため、maxWorkerThreads を少なくとも 100 に変更しようとしています。

IIS エクスプレスは、通常の IIS 制限である 10 に対して 30 以上のリクエストが同時に実行されていることを示していますが、1 秒あたりの実際の合計リクエスト数は両方で同等であり、IIS エクスプレスは CPU 使用率がはるかに高く、平均で 70 リクエストがキューに入れられているのに対し、通常の待機中のリクエストは 0 です。いいえ!また、CPU はクアッドコア i7 で約 70% しかありません。確かに最適化の余地はありますか?

追加の詳細

Windows 7 で実行した WCAT の結果と同じスクリプトを http://d1yb9lkqglrfzu.cloudfront.net/IISExpress-100VU-MachineConfig.zipにアップロードしました。

  1. IIS Express は、通常の IIS よりも 1 秒あたりの要求数がわずかに多く、合計トランザクション数が処理されます。
  2. IIS Express は一度に最大 50 の要求を実行しますが、Windows 7 の通常の IIS は設計どおり 10 に制限されています。
  3. IIS Express は 30% 高い CPU を使用しています。おそらく、一度に処理する追加の要求が原因です。
  4. ただし、平均して、Express リクエストは完了するまでにはるかに長い時間がかかります。Request Execution Time パフォーマンス カウンターと時間分析 (最初と最後のバイト) を参照してください。Express は、一度により多くの要求を処理できるため、処理される要求の合計で IIS を上回ることができます!

理論

  1. トレースが設定されていない場合でも、IIS Express が各要求をコマンド ライン ウィンドウに出力しているという事実が、速度を低下させている可能性があります。

  2. また、IIS の applicationhost.config にはない、IIS Express の applicationhost.config に登録されている追加モジュールが多数あることにも気付きました。追加のデバッグ/トレース モジュールが問題を引き起こしている可能性があります。

  3. IIS Express には FileCache および HTTPCache モジュールがないことに気付きました。それが理由でしょうか?

IIS Express が制限されていない場合、asp.net の専門家がこれらの結果がどのように可能になるかを明確にしてくれることを願っています。

4

1 に答える 1

6

Machine.config 設定は、IISExpress 内で実行されている asp.net アプリケーションに適用されます。.Net のバージョンとビット数が一致していることを確認してください (iisexpress は 32 ビット モードでのみ実行されるため、

  • %windir%\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.configまた
  • %windir%\Microsoft.NET\Framework\v4.0.30319\CONFIG\machine.config CLR バージョンに基づくファイルに正しいです。Framework64 ディレクトリにあるものは編集しないでください。

IIS Express は接続を調整しませんが、OS 自体に起因する制限がある場合があります。パフォーマンスは、iis Express の最優先事項ではありません。IIS Express は、意図的に実行を抑制することはありませんが、CPU を完全に利用するために無理をすることはありません。あなたのパフォーマンス オーバーヘッドの観察は興味深いものです。何が原因なのか調べてみます。IIS が IIS Express とどのように比較されるかを確認するために、シングル スレッド クライアント アプリケーションをループで実行しようとしましたか。

于 2011-01-22T03:47:49.187 に答える