Назад | Перейти на главную страницу

Высокая загрузка ЦП процессом IIS (w3wp.exe) из-за большого количества медленных clr.dll!

Я использую 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.