W3wp exe грузит процессор

Обновлено: 08.07.2024

Это на промежуточном сервере, и на данный момент сайт получает очень легкий трафик от тестировщиков.

мы запустили профилировщик муравьев на сервере, но он был непрозрачным.

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

  1. стандартные счетчики производительности Windows (ищите другие коррелированные действия, такие как многие запросы GET, чрезмерный сетевой или дисковый ввод-вывод и т. д.); Вы можете читать их из кода, а также из perfmon (например, для запуска сбора данных, если использование ЦП превышает порог)
  2. пользовательские счетчики производительности (в частности, время для автономных запросов и других вызовов, где время выполнения неопределенно)
  3. нагрузочное тестирование с помощью таких средств, как Visual Studio Team Test или Wcat все
  4. если можно протестировать или обновить IIS 7, можно настроить трассировку неудачных запросов для создания трассировки, если запросы занимают больше определенного времени
  5. используйте logparser, чтобы увидеть, какие запросы поступили во время всплеска процессора
  6. обзоры кода / пошаговые инструкции (в частности, ищите циклы, которые могут завершиться неправильно, например, если произойдет ошибка, а также блокировки и потенциальные проблемы с потоками, такие как использование статики)
  7. CPU и профилирование памяти (может быть затруднено в производственной системе)
  8. Процесс Explorer
  9. Монитор Ресурсов Windows
  10. подробный журнал ошибок
  11. пользовательский журнал трассировки, включая сведения о времени выполнения (возможно, условный, основанный на счетчике perf CPU-use)
  12. происходят ли ошибки, когда AppPool рециркулирует? Если так, это может быть подсказкой.

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

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

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

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

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

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

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

надеюсь, что это поможет !

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

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

Это очень старый пост, я знаю, но это тоже общая проблема. Все предлагаемые методы очень хороши, но они всегда будут указывать на процесс, и есть много шансов, что мы уже знаем, что наш сайт создает проблемы, но мы просто хотим знать, какая конкретная страница тратит слишком много времени на обработку. Самым точным и простым инструментом, на мой взгляд, является сам IIS.

  1. просто нажмите на свой сервер в левой панели IIS.
  2. нажмите на "Рабочие процессы"в главной панели. вы уже видите, что пул приложений занимает слишком много ЦП.
  3. дважды щелкните по этой строке (в конечном итоге обновите, нажав "показать все"), чтобы увидеть, какие страницы потребляют слишком много времени процессора ("время прошло" столбец) в этом пуле

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

Запуск служб (IIS) 7.0 на компьютере под управлением Windows Vista или Windows Server 2008. На компьютере имеется более 64 ГБ ОЗУ. Неожиданно процесс W3wp.exe IIS занимает 100% ресурсов ЦП. Таким образом на компьютере происходит низкой производительности.

Причина

Решение

Сведения об исправлении

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

Если исправление доступно для скачивания, имеется раздел "Пакет исправлений доступен для скачивания" в верхней части этой статьи базы знаний. Если этот раздел не отображается, обратитесь в службу поддержки для получения исправления.

Примечание. Если наблюдаются другие проблемы или необходимо устранить неполадки, вам может понадобиться создать отдельный запрос на обслуживание. Стандартная оплата за поддержку будет взиматься только за дополнительные вопросы и проблемы, которые не соответствуют требованиям конкретного исправления. Чтобы получить полный список телефонов поддержки и обслуживания клиентов корпорации Майкрософт или создать отдельный запрос на обслуживание, посетите следующий веб-сайт корпорации Майкрософт:

Примечание. В форме "Пакет исправлений доступен для скачивания" отображаются языки, для которых доступно исправление. Если нужный язык не отображается, значит исправление для данного языка отсутствует.

Предварительные условия

Данное исправление на компьютере должна быть установлена одной из следующих операционных систем Windows:

Пакет обновления 1 (SP1) для Windows Vista

Windows Vista с пакетом обновления 2 (SP2)

Windows Server 2008

Windows Server 2008 с пакетом обновления 2 (SP2)

Чтобы получить дополнительные сведения о получении пакета обновления для Windows Vista, щелкните следующий номер статьи базы знаний Майкрософт:

как получить последний пакет обновления для Windows Vista

Дополнительные сведения о том, как получить пакет обновления для Windows Server 2008, щелкните следующий номер статьи базы знаний Майкрософт:

Как получить последний пакет обновления для Windows Server 2008

Необходимость перезагрузки

После установки исправления компьютер необходимо перезагрузить.

Сведения о замене исправлений

Это исправление не заменяет ранее выпущенные исправления.

Инструкции по установке

Сведения о файлах

Английский (США) версия данного исправления устанавливает файлы с атрибутами, указанными в приведенных ниже таблицах. Дата и время для файлов указаны в формате UTC. Дата и время для файлов на локальном компьютере отображаются в местном времени с вашим текущим смещением летнего времени (DST). Кроме того, при выполнении определенных операций с файлами, даты и время могут изменяться.

Примечания к сведениям о файле Windows Vista и Windows Server 2008

Важно. Исправления для Windows Server 2008 и Windows Vista исправления включены в те же пакеты. Однако только «Windows Vista» отображается на странице запрос исправления. Для получения пакета исправлений, который применяется к одной или обеих операционных систем, установите исправления, перечисленные в разделе «Windows Vista» на странице. Всегда смотрите раздел "Информация в данной статье относится к следующим продуктам" статьи для определения фактических операционных систем, к которым применяется каждое исправление.

Файлы, относящиеся к определенному продукту, этапу разработки (RTM, SPn) и обслуживания (LDR, GDR) можно определить по номерам версий, как показано в следующей таблице.

1 Пакет обновления интегрируется в окончательной версии Windows Server 2008. Таким образом файлов выпуска RTM относятся только к системе Windows Vista. Файлов выпуска RTM выглядят следующим образом: 6.0.0000. номер версии XXXXXX .

Файлы MANIFEST (.manifest) и MUM (.mum), устанавливаемые для каждой среды, указаны отдельно в разделе "Сведения о дополнительных файлах для системы Windows Vista и Windows Server 2008". MUM и файлы МАНИФЕСТА и связанные файлы каталога безопасности (.cat), очень важны для поддержания состояния обновляемого компонента. Файлы каталога безопасности, для которых не перечислены атрибуты, подписаны цифровой подписью корпорации Майкрософт.

Я недавно использовал систему, но она часто зависала или учетная запись пользователя не могла войти в систему. Позже проблема оказалась в папке "w3wp.exe"Этот процесс. После того, как наши пользователи запрашивают и модифицируют систему, процесс занимает много ресурсов ЦП и памяти, в результате чего сервер работает медленно, и пользователи также жалуются. Я попытался завершить этот процесс, но процесс не заставил себя долго ждать. «Без стыда» занимает много процессора и памяти. Я ленивый человек. Трудно представить, что мне нужно каждый раз заканчивать этот процесс на сервере, поэтому я придумываю решение раз и навсегда!

Введение в W3wp.exe

Ниже приводится введение в Baidu Baike:

w3wp.exeЭто процесс, связанный с пулом приложений в IIS (Internet Information Server). Если у вас несколько пулов приложений, будет запущено несколько соответствующих экземпляров процесса w3wp.exe. Этот процесс используется для выделения большого количества системных ресурсов.


Общая проблема

Поскольку наше серверное пространство только что было разделено, был опубликован веб-сайт, и системой пользуются три или два пользователя. Так что предварительно определено, что это вызвано программой сайта. Но все же перечисляйте общие проблемы одну за другой, на случай непредвиденных событий.

  • Бесконечный цикл программы сайта или большое количество вычислений заставляют процесс занимать много системных ресурсов
  • Ресурсы сервера не высвобождаются автоматически
  • Программы, вызванные кешированными файловыми ресурсами, становятся все медленнее и медленнее
  • WEB сайт много посещает


решение

1. Проверьте ВЕБ-сайт.Завершение процесса «W3wp.exe» устранит симптомы, а не основную причину, и не решит проблему полностью. Поэтому мы должны сначала определить пул приложений веб-сайта, найти соответствующий веб-сайт и проверить программу веб-сайта. Фактически, если вы публикуете только один веб-сайт, вы можете избавиться от необходимости находить веб-сайт, соответствующий процессу PID, который занимает самые высокие системные ресурсы. Но обычно это не так, поэтому опубликуйте решение ниже. Конечно, при запуске командной строки «iisapp -a», если система не запрашивает, проверьте, отсутствует ли этот сценарий в «C: \ windows \ system32».

  • Настройте отдельные пулы приложений для каждого веб-сайта в IIS. То есть друг на друга они не влияют.
  • Установите мониторинг ЦП пула приложений не более 25% (4 ЦП для сервера), обновляйте каждую минуту и ​​выключайтесь при превышении лимита.
  • По w3wp какой пул приложений получается.

2. Настройте мониторинг ЦП.При настройке мониторинга ЦП я увидел, что большая часть информации в Интернете - это IIS6. Поэтому сначала обратите внимание на свою версию IIS. Например, моя версия - IIS7. Щелкните правой кнопкой мыши пул приложений, соответствующий веб-сайту, и выберите «Дополнительные настройки». Как показано на рисунке, если вы установите «Обработка его ассоциации включена = true», сервер будет контролировать CPU каждую минуту. Если коэффициент использования превышает 95%, процесс «W3wp.exe» будет остановлен. Он отлично решает мою проблему, но, судя по различным онлайн-анализам IIS7, мониторинг сервера часто не перезапускает новый процесс после его закрытия, и его необходимо перезапускать вручную. Если он занимает слишком много памяти, вы можете установить «Повторное использование» ниже.


3. Очистите файлы кеша.Отсутствие регулярной очистки файлов кэша после долгой работы сервера также может привести к тому, что программа будет работать все медленнее и медленнее. Вы можете очистить файлы кеша в каталоге «c: \ windows \ temp \», открыв его. Или напрямую введите "del c: \ windows \ temp *. * / S / q" через команду cmd.

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

вирус w3wp.exe

w3wp.exe приходит к вам в двух случаях: если вы были невнимательны, и установили троян вместе с программным обеспечением или, если ваш анти-вирус был слишком слаб и не смог найти угрозу.. Первый случай является общим для людей, которые опускают чтения требования к установке, они обычно получают зараженные элементы вместе с полезным. В случае, когда вы всегда читать их и не могу сказать, что некоторые из вашей деятельности в Интернете неверны, затем позволяет увидеть второй путь проникновения. Мы сожалеем о том, чтобы сказать, что, но ваше текущие защиты программного обеспечения, вероятно, будет слишком слабым, чтобы сделать работу Т.С.. Она не запрещает нежелательные программы и позволяет их установку. Если некоторые из этих вещей о вас, то вам необходимо надлежащее применение для повышения уровня безопасности.

Вторжение w3wp.exe в систему обычно происходит вместе с другими бесплатными приложениями, которые вы можете решить, чтобы сделать часть вашего компьютера. очевидно, он является обязательным, что вы всегда обращать пристальное внимание на то, что еще вы собираетесь сделать часть вашей системы. В случае, если вы будете читать информацию о некоторых сторонних программах, которые вы не планируете, чтобы часть вашей системы, убедитесь, что вы отмените такие параметры установки по умолчанию и перейти к продвинутым. К сожалению, пользователи часто невнимательно относятся к установке и, таким образом, разрешают ввод различного хлама и даже опасных утилиты.

вирус w3wp.exe

Симптомы w3wp.exe трояна:

  • CPU перегревается очень часто.
  • Время загрузки нужно слишком много времени.
  • Программы запускаются плохо и заморозить.
  • ПК работает хуже, чем обычно.

Подробная инструкция о том, как удалить w3wp.exe инфекции.

scan3

5

6

Screenshot_4

Профилактические советы для вашего ПК от быть с w3wp.exe повторного заражения в будущем:

Эта полезная функция может позволить людям предотвратить установку вредоносного программного обеспечения. Это означает, когда вы будете пытаться установить некоторые подозрительные приложения, "On-run Protection" будет блокировать эту попытку установки. ПРИМЕЧАНИЕ! Если пользователи хотят, чтобы потенциально опасные программы были установлены, Кнопка они могут выбрать «Игнорировать всегда». В случае, если вы хотите заблокировать вредоносную программу, вы должны выбрать "Блокировать всегда (Block always)".


Введение

Приходилось ли вам когда-нибудь самим настраивать производственные веб-сервера (production servers) под управлением ОС Windows Server 2008 R2/IIS 7.5 и выше? Для системных администраторов, имеющих большой опыт работы с IIS, скорее всего, это тривиальная задача, но вот для веб-разработчиков, которым по различным причинам порой приходится самим участвовать в настройке «боевых» серверов, данная информация может оказаться весьма полезной.

Предыстория

1. Параметры конфигурации IIS

Схема конфигурационных файлов для IIS 7.x и выше выглядит так:



Рис. 1. Схема конфигурационных файлов

  • для 32-битной — %WINDIR%\System32\inetsrv\config\
  • для 64-битной — %WINDIR%\SysWOW64\inetsrv\config\

При конфигурации IIS можно выделить два основных параметра, влияющих на доступность приложения и его производительность.

1. Параметр appConcurrentRequestLimit — максимальное количество одновременных запросов в приложении. Увеличение числа одновременных запросов IIS расширит доступные ресурсы веб-сервера для обслуживания запросов. Значение по умолчанию — 5000.

Наиболее быстро изменить параметр appConcurrentRequestLimit можно утилитой appcmd.exe через командную строку. Сделать это можно как глобально для всех сайтов IIS через файл ApplicationHost.config, так и для отдельного сайта (приложения).


Выполняем команду, затем открываем в IIS раздел «Configuration Editor» для корневого каталога и проверяем новое значение установленного параметра appConcurrentRequestLimit. Причём здесь же можно вручную изменить это значение.



Рис. 2. Установка параметра appConcurrentRequestLimit

Для установки данного параметра наиболее часто используется формула:
<usersCount * 1.5>, где usersCount — количество одновременно работающих пользователей.


Выполняем команду, затем открываем в IIS раздел «Application Pools», выбираем в списке пул «DefaultAppPool », заходим в меню «Advanced Settings» и проверяем.



Рис. 3. Установка параметра queueLength

На заметку: Просмотр текущих запросов в работающем пуле через “IIS ->Worker Processes”

В диспетчере IIS выберите узел сервера в дереве, затем нажмите на иконку «Worker Processes»:



Рис. 4. Меню Worker Processes в диспетчере IIS

В появившемся списке вы можете видеть загрузку всех запущенных в текущий момент пулов.



Рис. 5. Просмотр работающих пулов через Worker Processes

При нажатии “View Current Request” появляется таблица со списком адресов обрабатываемых страниц и другими полезными параметрами. Для обновления списка можно нажимать F5 на экране. Таким образом, вы сможете найти «подвисшие» запросы:



Рис. 6. Список текущих запросов в пуле

Для просмотра показателей производительности, конечно, лучше использовать счётчики Performance Monitor, но они не покажут вам, как Requests Monitor, URL-адреса текущих запросов.

Работа пулов приложений в интегрированном режиме имеет несколько преимуществ по сравнению с работой в классическом режиме. Рекомедуется запускать пулы приложений в integrated mode.

Для оптимальной работы веб-приложений по умолчанию включен режим автоконфигурации настроек пула. В этом случае, cвойство autoConfig равно "true" для секции <processModel> в файле machine.config, а другие ключевые параметры не заданы вообще.

  • maxConnection
  • maxWorkerThreads / minWorkerThreads
  • maxIoThreads / minIoThreads
  • minFreeThreads
  • minLocalRequestFreeThreads

Таким образом, на сервере с 4-х ядерным процессором максимальное кол-во одновременных подключений к конечному IP-адресу равно 48=12*4 (по умолчанию).


Важно: Схема для адреса параметра maxconnection должна быть такой:


Увеличение maxconnection позволяет делать больше одновременных вызовов к удаленным сервисам. Этот атрибут не влияет на локальные вызовы веб-служб! Необходимо понимать, что недостаточно только обойти ограничение на количество одновременных подключений к сервису. Так как увеличение числа одновременных вызовов приводит к увеличению использования потоков CLR, которые используются для создания удаленных и обработки обратных вызовов.

Аттрибуты, заданные в секции <processModel>:
1. Параметр maxWorkerThreads — указывает максимальное количество рабочих потоков для каждого процессора в пуле потоков среды CLR. Значение по умолчанию — 20. Максимальное значение — 100.

2. Параметр maxIoThreads — указывает максимальное количество потоков ввода/вывода для каждого процессора в пуле потоков среды CLR. Значение по умолчанию — 20. Максимальное значение — 100.

3. Параметр minWorkerThreads — указывает минимальное количество рабочих потоков для каждого процессора, которые могут быть предоставлены немедленно для обслуживания удаленного запроса. Значение по умолчанию — 1.

4. Параметр minIoThreads — указывает минимальное количество потоков ввода/вывода для каждого процессора, которые могут быть предоставлены немедленно для обработки обратного вызова. Значение по умолчанию — 1.

Обратите внимание, параметры maxWorkerThreads, minWorkerThreads, maxIoThreads, minIoThreads неявно умножаются на число процессоров, а параметры minFreeThreads и minLocalRequestFreeThreads — нет.

Обратите внимание: на весь пул приложения, то есть на каждый рабочий процесс w3wp.exe, обслуживающий пул, имеется один пул потоков CLR ThreadPool. Для всех доменов приложений (сайтов), настроенных на один пул, используется общий набор потоков. Следовательно, для требовательных к ресурсам приложений лучше использовать отдельные пулы.

3. Рекомендации по оптимизации базовой конфигурации

Прежде всего, необходимо точно определить количество процессоров на веб-сервере. Как вариант, можно посмотреть TaskManager -> вкладка «Performance». Если процессор поддерживает режим HyperThreadingTechnology (HTT), значит половина ядер логические (Logical processors), а не физические (Cores). Например, при включенном режиме HTT процессор с 4-мя физическими ядрами будет работать как 8 логических ядер:



Рис. 8. Окно загрузки процессоров в TaskManager

Также можно попробовать воспользоваться следующими командами в командной строке:

Если веб-страница на backend-части делает несколько сетевых вызовов для каждого запроса, то MSDN рекомендует использовать следующие настройки конфигурации:

  1. maxWorkerThreads = 100 | minWorkerThreads = maxWorkerThreads / 2 = 50
  2. maxIoThreads = 100
  3. maxConnection = 12 * N
  4. minFreeThreads = 88 * N
  5. minLocalRequestFreeThreads = 76 * N, где N — количество процессоров.

Изменения в секцию <processModel> разрешено вносить только в файле machine.config из-за установленного там же атрибута allowDefinition при добавлении секции processModel.


Чтобы иметь возможность устанавливать значения секции processModel для каждого приложения в отдельности через web.config, необходимо установить свойство allowDefinition .

Приведу настройки конфигурации с нашего веб-сервера

Важно: после внесения изменений требуется обновить Application pools.

Помните, что увеличивать данные параметры нужно только в случае необходимости при наличии достаточного количества ресурсов ЦП.

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

Дополнительно

Если вы используете IIS8 — не будет лишним обратить внимание на «Полноценное регулирование нагрузки CPU (CPU Throttling)».

Заключение

Для сайтов, которые не совершают частые сетевые запросы на стороне сервера, стандартных настроек пула должно хватать (processModel/autoConfig=“true”). При этом IIS выставит ограничение в 20 рабочих потоков и 12 удаленных соединений на ядро. При превышении этих значений запросы начнут становиться в очередь и производительность веб-приложения упадёт.

Приглашаю всех поделиться вашим опытом настройки и оптимизации работы производственных веб-серверов на платформе Windows Server.

Читайте также: