Высокая загрузка ЦП на w3wp - PullRequest
2 голосов
/ 09 июля 2009

Я развернул веб-сайт .NET на сервере 2008 (IIS7), и кажется, что сайт работает до 30-50 одновременно работающих пользователей. При нагрузочном тестировании сайт останавливается примерно после 100 одновременных пользователей. Загрузка страниц идет от 1,5 секунд до 90 +

w3wp достигает 100% и остается таким до тех пор, пока я не остановлю нагрузочный тест. С другой стороны, SQL бездействует на 2-3%.

Я провел трассировку с помощью команды debug diag, и отчет указывает на один из потоков, который занимает 11,358 процессорного времени против 0,687 для ближайшего участника, занявшего второе место. Здорово, что я нашел виновника, однако я понятия не имею, что делать с информацией, которую мне дали. Вот вывод отчета.

Тема 19 - Идентификатор системы 4016 Точка входа 0x00000000 Время создания 8.07.2009 9:28:53 PM Время, проведенное в режиме пользователя
0 Дней 00: 00: 11.187 Время, проведенное в режим ядра 0 дней 00: 00: 00.171

Источник функции Ntdll! KiFastSystemCallRet
Ntdll! NtWaitForSingleObject + с
kernel32! WaitForSingleObjectEx + будет
mscorwks! PEImage :: LoadImage + 1AF
mscorwks! CLREvent :: WaitEx + 117
mscorwks! CLREvent :: Wait + 17
mscorwks! ThreadpoolMgr :: SafeWait + 73
mscorwks! ThreadpoolMgr :: WorkerThreadStart + 11с mscorwks! Thread :: intermediateThreadProc + 49 kernel32! BaseThreadInitThunk + e ntdll! __RtlUserThreadStart + 23

Ntdll! _RtlUserThreadStart + 1b

Любая помощь приветствуется!

Ответы [ 2 ]

5 голосов
/ 09 июля 2009

Я рекомендую вам использовать профилировщик более высокого уровня. Вот список:

1 голос
/ 09 июля 2009

Проверьте монитор производительности, чтобы увидеть, сколько выдается исключений, которые используют много процессора.

...