Я использую Windows Server 2008 R2 Enterprise
с участием IIS 7.5
, хостинг ASP.NET MVC 5
Приложения.
Недавно я заметил, что один из w3wp.exe
процессы используют чрезвычайно высокую пропускную способность ЦП:
Изучив немного больше, я также заметил, что причиной этого является функция clr.dll!CopyPDBs
:
Кто-нибудь знает, в чем может быть проблема?
Если причина не связана с .NET Framework и clr.dll!CopyPDBs
как я могу продолжить расследование, чтобы найти настоящую причину этого
Обычно это происходит потому, что у вас есть собственное приложение поверх 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 .
В лучшем случае это предположение, но, возможно, ваша группа разработчиков создает и развертывает приложение в режиме отладки, а не в режиме выпуска. Это вызовет появление файлов .pdb. Следствием этого является то, что ваше приложение будет использовать дополнительные ресурсы для сбора информации о состоянии системы и отладочной информации во время выполнения вашей системы, что приведет к большей загрузке процессора.
Таким образом, было бы достаточно просто убедиться, что они собираются и развертываются в режиме выпуска.
Это просто означает, что все ЦП занимает приложение .NET, но Process Explorer не может найти для него файлы .pdb. Видеть https://stackoverflow.com/a/31705019/8479 для более подробной информации.
Если вы не можете заставить Process Explorer сказать, что происходит, попробуйте другие средства, такие как файлы журналов, журнал событий и Process Monitor.