Веб-приложение ASP.NET, работающее на IIS6 периодически, стреляет в ЦП до 100%. Это - W3WP, это ответственно почти за все использование ЦП во время этих эпизодов. ЦП остается прикрепленным в 100% где угодно с нескольких минут до более чем часа.
Это находится на сервере подготовки, и сайт только получает очень незначительный трафик от тестеров в этой точке.
У нас есть рабочий профилировщик МУРАВЬЕВ на сервере, но это было непоучительно.
Где мы можем начать открытие, что вызывает эти эпизоды и какой код заставляет ЦП напряженно трудиться в течение всего того времени?
У меня была похожая проблема. Для меня после того, как цитаты были сохранены в базе данных, они появились таким образом «».
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-Для понимания происходящего я бы рекомендовал начать с файлов сопоставления 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% и остается там, вполне вероятно, что у вас есть сценарий взаимоблокировки или бесконечный цикл. Профайлер кажется хорошим выбором для поиска бесконечного цикла. Однако отследить тупиковые ситуации гораздо сложнее.
Также посмотрите на ваши счетчики перфоусов. Они могут сказать вам, где много времени проводится много времени. Вот ссылка на наиболее распространенные счетчики для использования:
У нас было это на рекурсивный запрос, который был сброс тонн данных на вывод - у вас дважды проверил все, что выходит и не существует бесконечных петель?
может попытаться сузить его одна страница - мы нашли муравьев, чтобы не быть очень поможем в том же случае либо - то, что мы в итоге делали, работал на сайте ударил на страницу смотреть CPU - нажмите на следующую страницу Watch CPU - очень методичный и трудоемкий, но если вы не можете Найдите его с помощью некоторого трассировки кода, вы можете быть удачи -
мы смогли использовать файлы журнала IIS, чтобы отслеживать его на набор страниц, которые были подозреваемыми -
Надеюсь, что помогает!
Это не так много ответа, но вам может потребоваться поехать в старую школу и захватить снимок изображений процесса IIS и отладки его. Возможно, вы также захотите проверить Blog Ferrandez - она knlake a ** инженер эскалации Microsoft и ее блог фокусируется на отладке Windows ASP.NET, но блог имеет отношение к отладке Windows в целом Отказ Если вы выберете тег ASP.NET (который я связан с), вы увидите несколько предметов, которые аналогичны.
Проводник процессов является отличным инструментом для поиска и устранения неисправностей. Вы можете попробовать его для поиска проблемы высокого уровня использования CPU. Он дает вам представление о том, как работает ваше приложение.
Вы также можете попробовать Procdump, чтобы сбросить процесс и проанализировать, что на самом деле произошло на процессоре.