web-dev-qa-db-ja.com

多くの遅いclr.dll!CopyPDBのため、IISプロセス(w3wp.exe)のCPU使用率が高い

Windows Server 2008 R2 EnterpriseIIS 7.5とともに使用して、ASP.NET MVC 5アプリケーションをホストしています。

最近、w3wp.exeプロセスの1つが非常に高いCPU帯域幅を使用していることに気付きました。

High CPU usage of w3wp.exe

もう少し調べたところ、この理由は関数clr.dll!CopyPDBsであることに気づきました。

w3wp.exe threads details

誰が問題になる可能性があるか知っていますか?

理由が.NET Frameworkとclr.dll!CopyPDBsに関連していない場合、どのようにすればさらに調査してこれの実際の理由を見つけることができますか

6
Nikolay Kostov

これは通常、IISの上にカスタムアプリケーションがあるためです。社内で構築されたアプリケーションの場合は、開発者と話し合ってください。

自社開発されていない場合は、カウンター付きの.net CLRをご覧ください https://msdn.Microsoft.com/en-us/library/x2tyfybc(v = vs.110).aspx = CLRパフォーマンスに関するその他のヒント https://msdn.Microsoft.com/en-us/library/ee851764(v = vs.110).aspx および https:// msdn .Microsoft.com/en-us/magazine/cc163528.aspx

3
Alex H

つまり、すべてのCPUを使用しているのは.NETアプリケーションですが、Process Explorerはその.pdbファイルを見つけることができません。詳細は https://stackoverflow.com/a/31705019/8479 を参照してください。

プロセスエクスプローラーで何が起こっているのかを説明できない場合は、ログファイル、イベントログ、プロセスモニターなどの他の手段を試してください。

1
Rory

これはせいぜい推測ですが、おそらく開発チームがリリースモードではなくデバッグモードでアプリケーションをビルドしてデプロイしています。これにより、.pdbファイルが発生します。これが意味するところは、システムの実行中にアプリケーションがシステム状態とデバッグ情報を収集するために追加のリソースを消費し、プロセッサーの使用率が増加することです。

したがって、それらがリリースモードでビルドおよびデプロイされていることを確認するのに十分簡単です。

1
Daffy Punk