Мы запускаем собственное приложение в нашей интрасети, и мы обнаружили проблему после ее обновления в последнее время, когда IIS зависает с 100% -ным использованием ЦП, требуя сброса.Репликация сбоев, связанных с нагрузкой, в непроизводственных средах
Вместо того, чтобы подвергать пользователей зависанию, мы вернулись к предыдущему выпуску, пока мы определяем решение. Первый шаг - воспроизвести проблему, но мы не можем.
Вот некоторый фон:
Prod имеет один виртуализованный (VMWare) веб-сервер с двумя процессорами и 2 Гб оперативной памяти. Сервер базы данных имеет 4 ГБ и 2 ЦП. Это также на VMWare, но отдельное физическое оборудование.
При нормальном использовании приложение работает нормально. Процесс w3wp.exe обычно использует betwen 5-20% CPU и около 200 МБ ОЗУ. CPU и RAM немного колеблются при нормальном использовании, но ничего необычного.
Однако, когда мы начинаем сталкиваться с проблемами, ОЗУ резко поднимается, а процессор привязывается на 98% (или столько, сколько он может получить). Сайт становится невосприимчивым, что требует перезапуска IIS. Сброс пула приложений ничего не делает в этой ситуации, требуется полный перезапуск IIS.
Это не происходит ночью (без использования). Это происходит чаще, когда сайт находится под нагрузкой, но это также произошло в непиковые периоды.
Первый шаг к решению этой проблемы - воспроизведение. Чтобы имитировать нагрузку, мы начинаем использовать JMeter для имитации использования. Наш сценарий загрузки основан на фактическом использовании во время сбоя. Используя JMeter, мы можем увеличить частоту использования (в 2-3 раза больше нагрузки во время сбоя), но сайт ведет себя отлично. CPU высок, и сайт становится вялым, но использование памяти разумно и ничего не висит.
Есть ли у кого-нибудь советы о том, как воспроизвести такую проблему в непроизводственной среде? Мы действительно хотели бы воспроизвести ошибку, определить решение, а затем снова проверить, чтобы убедиться, что мы это разрешили. Во время этого процесса мы нашли несколько небольших вещей, которые мы улучшили, которые могут решить проблему, но я бы чувствовал себя намного увереннее, если бы смог воспроизвести проблему и протестировать улучшенную версию.
Любые инструменты, приемы или теории очень ценятся!
Я предполагаю, что у вас есть возможности ведения журнала из IIS и/или вашего приложения? Когда возникают проблемы, что именно происходит, что вызывает это? Как это отличается от того, что имитирует ваше нагрузочное тестирование? – 2008-08-13 06:17:37