Рабочий процесс с высокой загрузкой процессора% - PullRequest
3 голосов
/ 15 апреля 2011

Все мои сайты размещены в IIS и настроены с одним пулом приложений. Этот пул приложений состоит из 10 запущенных веб-сайтов.

До сегодняшнего дня все работало нормально, но внезапно я заметил, что загрузка ЦП резко возросла. Я не могу отследить проблему.

Есть ли какой-либо способ проверить, какой веб-сайт сильно загружен среди всех в пуле приложений?

Ответы [ 3 ]

1 голос
/ 16 апреля 2011

Счетчики производительности, диспетчер задач и инструменты анализа собственного кода рассказывают только часть истории.Чтобы глубже понять, что происходит внутри вашего приложения ASP.NET, вам нужно использовать WinDBG, SOS и ADPlus.

Тесс Феррандез имеет большую серию статей по отслеживанию того, чтовиноваты здесь:

. Отладочные демо .NET Лабораторная работа 4: высокая загрузка ЦП
. Отладочные демоверсии .NET Лабораторная работа 4: высокая загрузка ЦП - обзор

Это пример из реальной жизни:

Высокая загрузка ЦП в приложении .NET с использованием статического Generic.Dictionary

Возможно, вы захотите разделить свои сайты на отдельные пулы приложений, чтобы вы могли идентифицировать и изолировать сайт, вызывающий высокую загрузку ЦП (но, похоже, у вас уже есть подозрение, поэтому я бы выделил этот).С этого момента вы можете следовать советам и указаниям Тесс, чтобы отследить причину.

Вы также должны взглянуть на журналы, чтобы увидеть, если вы испытываете неожиданный всплеск или увеличение трафика.Возможно, есть плохо ведущий себя индексатор сайта поисковой системы, прибивающий сайт.Если это так, то, возможно, вам нужно (если вы этого еще не сделали) создать robots.txt, чтобы сканеры не могли индексировать части сайта, которые не нужно индексировать.Кроме того, если некоторые сканеры чрезмерно смешны, просто запретите их.Возможно, рассмотрите карту сайта для Google, чтобы приручить и настроить ее деятельность.

0 голосов
/ 16 апреля 2011

В действительности счетчика производительности нет, поскольку счетчики ЦП находятся на уровне процесса.Лучше всего сделать временную корреляцию с другими событиями в журнале событий и счетчиками .NET / ASP.NET для сбора мусора, запросов и т. Д.

Если вы действительно хотите использовать хардкор, вы можете использоватьНабор инструментов SysInternals для создания снимков пула приложений с течением времени и последующего пост-анализа, чтобы выяснить, какой код был выполнен, когда произошел всплеск.Вот похожий пример из блога Марка Руссиновича - http://blogs.technet.com/b/markrussinovich/archive/2008/04/07/3031251.aspx.

0 голосов
/ 16 апреля 2011

Если ваш сервер достиг максимальной емкости, вы увидите, что ЦП будет беспорядочно увеличиваться и уменьшаться, потому что ГХ начнет пытаться восстанавливать ресурсы (cache..etc), что, в свою очередь, заставляет ваши сайты работать еще тяжелее.Это бесконечный цикл.

Вы контролировали свои счетчики производительности?Есть ли у вас какие-либо идеи, какова нормальная емкость для вашего сайта?Если вы не можете ответить на эти вопросы, я предлагаю вам собрать некоторые цифры номера как можно скорее.

Мое эмпирическое правило - всегда сначала измерять, а затем вносить необходимые изменения.

В большинстве случаев узкие места в производительности не соответствуют вашим ожиданиям.

...