Windows Server 2012でIIS8を使用しているWebサイトを実行しています。IISでCPU使用率が高い原因(IISで50%以上のCPU使用率が高いことが多い)を特定しようとしています。サーバーは1日に約40件のリクエストを毎秒受け取りますが、処理を必要とする1秒あたり1-2個のURLしかないでしょう。IIS8 RewriteModule/URLRewrite非常に遅い
私は要求トレースを有効にして、完了するためにいくつかのRewriteModule要求が100秒(!)以上かかることがわかりました。十分なハードウェア以上のマシンでこれがどのように可能かを判断するのが難しいです。まったく同じURL構造は、Apache上のmod_rewrite経由で1秒未満で処理されます。
例のURLは次のようになります:
http://<domain-name>/Product/<Parent-Category>/<Child-Category1>/<Child-Category2>/<Child-Category3>/<Product-Name>
添付書き換えルールがある:私は試合のURLを定義しています方法で何かが
<rule name="Rule" stopProcessing="true">
<match url="^Product/([^/\?]+)/?([^/\?]+)?/?([^/\?]+)?/?([^/\?]+)?/?([^/\?]+)?/?([^/\?]+)?/?[\?]?(.+)?$"/>
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
</conditions>
<action type="Rewrite" url="/Product/index.php?a={R:1}&b={R:2}&c={R:3}&d={R:4}&e={R:5}&f={R:6}&{R:7}" appendQueryString="true"/>
</rule>
があることが、高い処理を引き起こしています時間?一致するURLの中には、多くの親/子カテゴリ(最大5、通常は3-4)を使用する場合に、高い数の文字が含まれているものがあります。
私は金曜日に、後に作られた私の変更を掲示し、それは同じ根本的な変化を示唆しているように私は、あなたの答えを受け入れました。 –