W3WP.EXE с помощью 100% ЦП - где запустить?

Веб-приложение ASP.NET, работающее на IIS6 периодически, стреляет в ЦП до 100%. Это - W3WP, это ответственно почти за все использование ЦП во время этих эпизодов. ЦП остается прикрепленным в 100% где угодно с нескольких минут до более чем часа.

Это находится на сервере подготовки, и сайт только получает очень незначительный трафик от тестеров в этой точке.

У нас есть рабочий профилировщик МУРАВЬЕВ на сервере, но это было непоучительно.

Где мы можем начать открытие, что вызывает эти эпизоды и какой код заставляет ЦП напряженно трудиться в течение всего того времени?

54
задан Herb Caudill 13 January 2010 в 01:24
поделиться

6 ответов

У меня была похожая проблема. Для меня после того, как цитаты были сохранены в базе данных, они появились таким образом «».

SELECT abstract FROM foo WHERE version = '1.0' and newscode = 'au20309';

Maeâ'r Ffordd Gynaliadwy Y Mae Bwyd Yn Cael Ei Dyfu, Ei Brynu Aâ'i Baratei ...

Так я заменил их. Сначала найдите значение ASCII для этого необычного символа «â».

SELECT ascii('Â') FROM DUAL; -- returns 50050

Затем используйте функцию CHR для рендеринга «â». || Функция объединяет два символа. Функция Q полезна для «цитаты» Smart City String.

SELECT REPLACE(abstract,chr(50050) || q'#’#' , q'#'#') 
FROM foo 
WHERE version = '1.0' and newscode = 'au20309';

Mae'r Ffordd Gynaliadwy Y Mae Bwyd Yn Cael Ei Dyfu, Ei Brynu A'i Baratei ...

Это работало просто для меня Наша система Oracle 10.

-121--5000493-
  1. Стандартные счетчики производительности Windows (ищите другую коррелированную активность, такие как многие запросы Get, чрезмерная сеть или диск I / O, и т. Д.); Вы можете прочитать их из кода, а также из Perfmon (для запуска сбора данных, если использование процессора превышает порог, например)
  2. пользовательские счетчики производительности (в частности, время для внебложения запросов и других вызовов, где время выполнения неясно)
  3. Тестирование нагрузки, используя такие инструменты, как Teams Team Team Support или WCAT
  4. , если вы можете проверить или обновить до IIS 7, вы можете настроить отслеживание неисправности запроса для генерации трассировки, если запросы требуют более определенного времени
  5. Используйте LogParser, чтобы увидеть, какие запросы прибыли во время Spike CPU
  6. отзывы кода / прогулки (в частности, ищут петли, которые могут не заканчиваться должным образом, например, если ошибка, а также замки и Потенциальные проблемы резьбы, такие как использование статики)
  7. CPU и профилирование процессоров и памяти (могут быть сложными для производственной системы)
  8. Проводник
  9. Монитор ресурсов Windows
  10. Подробная регистрация ошибок
  11. , включая детали времени выполнения (возможно, условно, на основе CPU-Use Perf Counter)
  12. - это ошибки, происходящие при переработке AppPool? Если это так, это может быть ключ.
36
ответ дан 7 November 2019 в 08:10
поделиться

Для понимания происходящего я бы рекомендовал начать с файлов сопоставления XML. При изучении NHibernate я нашел файлы конфигурации для ручного построения, чтобы быть полезным. Это сказано после того, как мне было удобно использовать свободно и время от времени картографический файл построитель был большим.

Для изучения NHibernate, хотя он нацелен на предыдущую версию Лето NHibernate невероятно полезно.

-121--3612873-

sudo/ opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper stop

Здесь также можно использовать запуск и перезапуск. Я нашел это, посмотрев на содержимое/Library/LaunchDaemons/org.macports.mysql.plist.

-121--633961-

Если ваш ЦП достигает 100% и остается там, вполне вероятно, что у вас есть сценарий взаимоблокировки или бесконечный цикл. Профайлер кажется хорошим выбором для поиска бесконечного цикла. Однако отследить тупиковые ситуации гораздо сложнее.

4
ответ дан 7 November 2019 в 08:10
поделиться

Также посмотрите на ваши счетчики перфоусов. Они могут сказать вам, где много времени проводится много времени. Вот ссылка на наиболее распространенные счетчики для использования:

1
ответ дан 7 November 2019 в 08:10
поделиться

У нас было это на рекурсивный запрос, который был сброс тонн данных на вывод - у вас дважды проверил все, что выходит и не существует бесконечных петель?

может попытаться сузить его одна страница - мы нашли муравьев, чтобы не быть очень поможем в том же случае либо - то, что мы в итоге делали, работал на сайте ударил на страницу смотреть CPU - нажмите на следующую страницу Watch CPU - очень методичный и трудоемкий, но если вы не можете Найдите его с помощью некоторого трассировки кода, вы можете быть удачи -

мы смогли использовать файлы журнала IIS, чтобы отслеживать его на набор страниц, которые были подозреваемыми -

Надеюсь, что помогает!

0
ответ дан 7 November 2019 в 08:10
поделиться

Это не так много ответа, но вам может потребоваться поехать в старую школу и захватить снимок изображений процесса IIS и отладки его. Возможно, вы также захотите проверить Blog Ferrandez - она ​​knlake a ** инженер эскалации Microsoft и ее блог фокусируется на отладке Windows ASP.NET, но блог имеет отношение к отладке Windows в целом Отказ Если вы выберете тег ASP.NET (который я связан с), вы увидите несколько предметов, которые аналогичны.

12
ответ дан 7 November 2019 в 08:10
поделиться

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

Вы также можете попробовать Procdump, чтобы сбросить процесс и проанализировать, что на самом деле произошло на процессоре.

4
ответ дан 7 November 2019 в 08:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: