Iis worker process грузит процессор
- как я могу выяснить, какой веб-сайт вызывает это использование
- как я могу ограничить его до 80% использования CPU?
- может ли это быть DDOS-атака?
- есть ли способ предотвратить DDOS?
Я установил eset-nod32 на свой vps, но он не показывает никакой атаки в журналах. Я пробовал искать IIS и предотвращать DDOS и только что нашел расширение для запрета IP-адресов, но как я могу найти, какой IP-адрес генерирует трафик?
кроме того, один из моих веб-сайтов должен получить доступ к рабочему столу администратора и читать и писать некоторые файлы. Поэтому из-за этого я изменил свой пул приложений - > identity (модель процесса) на локальную систему, и я не знаю, связано ли это с использованием ЦП или нет.
Ну, это может занять много времени, чтобы выяснить. Несколько пунктов, чтобы сузить его:
Решение проблем с производительностью IIS
c:windowssystem32inetsrvw3wp.exe -a \.pipeiisipmceXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX -t 20 -ap "dotnet4"
Впоследствие эти действия оказались по большему счёту бесполезными, но умение определять нужный процесс w3wp оказалось впоследствии полезным и мне и нашим разработчикам выполняющим удалённую отладку в Visual Studio.
This would last 15 to 120 seconds. Sometimes stopping on its own – sometimes I killed the process. It reoccurred at random times, getting more frequent as the day progressed. Resetting IIS and server reboot only provided temporary relief. All other web sites functioning normally, including one with twice the user load.
So – what the heck. Thanks in advance.
Premium Content
Premium Content
Basically these fields are defined as:
time-taken = how long the request took to be executed, in milliseconds
cs-bytes = bytes sent by the client -or- bytes received by the server (inbound data)
sc-bytes = bytes sent by the server (outbound data)
Of course the field "cs-uri-stem" is important to see what URL the client request hit. The "cs-uri-query" may also be of use if the app uses query strings instead of posting back the data.
In the HTTPERR logs, "Timer_ConnectionIdle" entries can be ignored.
Use task manager to see how much RAM a process is consuming. I would select the following columns to be visible under the Processes tab in Task Manager:
1. Image Name
2. PID – process ID
3. User Name
4. CPU – [currently CPU usage in percent]
5. CPU Time – [overall time the process has on the CPU]
6. Working Set (Memory) – [memory used by a process but can be released if needed]
7. Memory (Private Working Set) – [memory reserved exclusively for the process]
8. Handles
9. Threads
Ссылки
Дополнительные сведения об использовании IIS можно найти на следующем веб-сайте Майкрософт:
919792 Использование средства диагностики отладки для устранения неполадок процесса, который перестал реагировать в IIS
919790 Использование средства диагностики отладки IIS для устранения проблем с утечкой памяти в процессе IIS
919789 Использование средства диагностики отладки для устранения неполадок процесса IIS, который неожиданно прекращается
- How can I figure out which web site causes that usage
- How can I limit it to 80% usage of CPU?
- Could it be a DDOS attack?
- Is there any way to prevent DDOS?
I installed eset-nod32 on my vps, but it doesn't show any attack in the logs. I've tried searching about IIS and preventing DDOS, and just found an extension for banning IP addresses, but how can I find which IP address are generating traffic?
Also, one of my web sites should access administrator's desktop and read and write some files. So because of that I changed its application pool -> identity (Process Model) to local system, and I don't know if it is related with the CPU usage or not.
I'm also having same issue. In my case WCF service. It is working fine when I publish it, but at certain time it using service 100% CPU. I'm disposing necessary objects, connections etc.
Сведения об исправлении
Существует исправление от корпорации Майкрософт. Однако данное исправление предназначено для устранения только проблемы, описанной в этой статье. Применяйте это исправление только в тех случаях, когда наблюдается проблема, описанная в данной статье. Это исправление может проходить дополнительное тестирование. Таким образом если вы не подвержены серьезно этой проблеме, рекомендуется дождаться следующего пакета обновления, содержащего это исправление.
Если исправление доступно для скачивания, имеется раздел "Пакет исправлений доступен для скачивания" в верхней части этой статьи базы знаний. Если этот раздел не отображается, обратитесь в службу поддержки для получения исправления.
Примечание. Если наблюдаются другие проблемы или необходимо устранить неполадки, вам может понадобиться создать отдельный запрос на обслуживание. Стандартная оплата за поддержку будет взиматься только за дополнительные вопросы и проблемы, которые не соответствуют требованиям конкретного исправления. Чтобы получить полный список телефонов поддержки и обслуживания клиентов корпорации Майкрософт или создать отдельный запрос на обслуживание, посетите следующий веб-сайт корпорации Майкрософт:
http://support.microsoft.com/contactus/?ws=supportПримечание. В форме "Пакет исправлений доступен для скачивания" отображаются языки, для которых доступно исправление. Если нужный язык не отображается, значит исправление для данного языка отсутствует.
Предварительные условия
Данное исправление на компьютере должна быть установлена одной из следующих операционных систем Windows:
Пакет обновления 1 (SP1) для Windows Vista
Windows Vista с пакетом обновления 2 (SP2)
Windows Server 2008
Windows Server 2008 с пакетом обновления 2 (SP2)
Чтобы получить дополнительные сведения о получении пакета обновления для Windows Vista, щелкните следующий номер статьи базы знаний Майкрософт:
935791 как получить последний пакет обновления для Windows Vista
Дополнительные сведения о том, как получить пакет обновления для Windows Server 2008, щелкните следующий номер статьи базы знаний Майкрософт:
Как получить последний пакет обновления для Windows Server 2008 968849
Необходимость перезагрузки
После установки исправления компьютер необходимо перезагрузить.
Сведения о замене исправлений
Это исправление не заменяет ранее выпущенные исправления.
Инструкции по установке
Сведения о файлах
Английский (США) версия данного исправления устанавливает файлы с атрибутами, указанными в приведенных ниже таблицах. Дата и время для файлов указаны в формате UTC. Дата и время для файлов на локальном компьютере отображаются в местном времени с вашим текущим смещением летнего времени (DST). Кроме того, при выполнении определенных операций с файлами, даты и время могут изменяться.
Примечания к сведениям о файле Windows Vista и Windows Server 2008
Важно. Исправления для Windows Server 2008 и Windows Vista исправления включены в те же пакеты. Однако только «Windows Vista» отображается на странице запрос исправления. Для получения пакета исправлений, который применяется к одной или обеих операционных систем, установите исправления, перечисленные в разделе «Windows Vista» на странице. Всегда смотрите раздел "Информация в данной статье относится к следующим продуктам" статьи для определения фактических операционных систем, к которым применяется каждое исправление.
Файлы, относящиеся к определенному продукту, этапу разработки (RTM, SPn) и обслуживания (LDR, GDR) можно определить по номерам версий, как показано в следующей таблице.
6.0.600
1.
22 xxx
Windows Vista и Windows Server 2008
6.0.600
2.
22 xxx
Windows Vista и Windows Server 2008
1 Пакет обновления интегрируется в окончательной версии Windows Server 2008. Таким образом файлов выпуска RTM относятся только к системе Windows Vista. Файлов выпуска RTM выглядят следующим образом: 6.0.0000. номер версии XXXXXX .
Файлы MANIFEST (.manifest) и MUM (.mum), устанавливаемые для каждой среды, указаны отдельно в разделе "Сведения о дополнительных файлах для системы Windows Vista и Windows Server 2008". MUM и файлы МАНИФЕСТА и связанные файлы каталога безопасности (.cat), очень важны для поддержания состояния обновляемого компонента. Файлы каталога безопасности, для которых не перечислены атрибуты, подписаны цифровой подписью корпорации Майкрософт.
В этой статье описано, как использовать средство диагностики отладки 1.2 для устранения неполадок с высокой использованием ЦП процессом в Microsoft IIS (IIS).
Решение
Diagnosing
In terms of diagnosing what App Pool is causing trouble, you can:
- Select the server
- Go to IIS > Worker Processes
This should bring up a menu like this so you can determine which App Pool is running amok.
From there you can simply restart the the app pool and 9 times out of 10 that will fix any immediate issues you're having.
8 Answers 8
Treating
Unless you run some sort of controversial business, this is probably not a DDOS attack. It’s likely that some code is just hanging because it couldn’t get through to another server or got stuck in a loop or mis-allocated resources or your app pool just hasn’t been recycled in a while.
You can deal with this problem programmatically without having to manually identify, log in, and recycle the app pool. Just configure the CPU property on your App Pool. You can have it kill (and automatically restart) your process anytime you reach a CPU threshold for a certain amount of time.
In your case, if you want it to restart at 80%, you can right click on the app pool and go to Advanced Settings and apply the following configurations:
NOTE: As kraken101 pointed out, different IIS GUIs have treated this differently over time. While the config value is always in 1/1000 of a %, sometimes the GUI takes the whole percent.
You can add this to your config section like this:
Шаг 6. Анализ файла дамп
Чтобы проанализировать файл дампов, выполните следующие действия:
Примечание. По умолчанию средство диагностики отложений находится в следующей папке:
На вкладке Расширенный анализ нажмите кнопку Добавить файлы данных.
На вкладке Расширенный анализ нажмите кнопку Анализ сбоя или зависа, а затем выберите начать анализ.
Просмотрите отчет, который отображается в Microsoft Internet Explorer. Копия этого отчета также хранится в следующей папке:
Примечание. Если вы хотите устранить проблемы с пользовательским файлом .dll, включите настраиваемые PDB-файлы. Чтобы включить пользовательские PDB-файлы, нажмите кнопку Инструменты, выберите параметры и Параметры, щелкните Папки и пути поиска, введите путь в поле Путь поиска символов для отладки и нажмите кнопку ОК.
Diagnosing
In terms of diagnosing what App Pool is causing trouble, you can:
- Select the server
- Go to IIS > Worker Processes
This should bring up a menu like this so you can determine which App Pool is running amok.
From there you can simply restart the the app pool and 9 times out of 10 that will fix any immediate issues you’re having.
ВВЕДЕНИЕ
Высокая использование ЦП процессом в IIS происходит, когда процесс IIS использует 80 или более процентов доступных циклов ЦП для постоянного интервала времени. Примерами процесса IIS являются Inetinfo.exe, Dllhost.exe и W3wp.exe. При высокой скорости использования ЦП процессом IIS возникают один или несколько из следующих признаков:
Веб-страница загружается неправильно. Например, веб-страница пуста или не отвечает.
На сервере с IIS производительность низкая. Например, индикатор выполнения перемещается очень медленно при попытке просмотреть веб-страницу.
В этой статье рассмотрено, как установить и настроить средство диагностики отладки для устранения неполадок с высоким использованием ЦП процессом IIS.
Шаг 5. Отключение ведения журнала "Мониторинг производительности"
Примерно через две минуты после завершения процесса записи файла дампов пользователей отключать ведение журнала мониторинга производительности. Для этого выполните следующие действия:
Примечание. По умолчанию средство диагностики отложений находится в следующей папке:
В меню Инструменты выберите пункт Параметры и Параметры.
На вкладке Журнал производительности нажмите кнопку Отключить ведение журнала счетчика производительности.
Шаг 4. Создание файла дампов
Чтобы создать файл дампов, используйте один из следующих способов:
Способ 1. Создание правила зависать
Чтобы создать правило зависать, выполните следующие действия:
Примечание. По умолчанию средство диагностики отложений находится в следующей папке:
На вкладке Правила нажмите кнопку Добавить правило.
В списке Тип целевого типа выберите нужный тип, нажмите кнопку ОК и нажмите кнопку Далее.
Введите имя правила, введите путь к папке пользователя и нажмите кнопку Далее.
На вкладке Правила обратите внимание, что правило активно в столбце Состояние.
Способ 2. Создание файла IIS Hang Dump вручную
Чтобы создать файл IIS Hang Dump вручную, выполните следующие действия:
Примечание. По умолчанию средство диагностики отложений находится в следующей папке:
В меню Инструменты выберите пункт Создать IIS/COM+Hang Dump.
Способ 3. Создание файла дампа пользователя для процесса в средстве диагностики от debug
Чтобы создать файл дампа пользователя для процесса, выполните указанные здесь действия.
Примечание. По умолчанию средство диагностики отложений находится в следующей папке:
На вкладке Процессы щелкните правой кнопкой мыши процесс, который вы хотите устранить, и выберите создать полную версию userdump.
Preventing
The steps above will help fix some things once they’ve broken, but won’t really solve any underlying issues you have.
Here are some resources on doing performance monitoring:
Use PerfMon to collect data and DebugDiag to analyse.
Found this link while searching for similar issue.
I was facing the same issues recently and found a solution which worked for me and reduced the memory consumption level upto a great extent.
Solution:
First of all find the application which is causing heavy memory usage.
You can find this in the Details section of the Task Manager.
- Open the IIS manager.
- Click on Application Pools. You’ll find many application pools which your system is using.
- Now from the task manager you’ve found which application is causing the heavy memory consumption. There would be multiple options for that and you need to select the one which is having ‘1’ in it’s Application column of your web application.
- When you click on the application pool on the right hand side you’ll see an option Advance settings under Edit Application pools. Go to Advanced Settings. 5.Now under General category set the Enable 32-bit Applications to True
- Restart the IIS server or you can see the consumption goes down in performance section of your Task Manager.
If this solution works for you please add a comment so that I can know.
8 Answers 8
Well, this can take long time to figure out. Few points to narrow it down:
Диагностика
С точки зрения диагностики того, что пул приложений вызывает проблемы, вы можете:
- выберите сервер
- перейдите в IIS > рабочие процессы
это должно вызвать меню, как это, так что вы можете определить, какой пул приложений работает amok.
оттуда вы можете просто перезапустить пул приложений и 9 раз из 10, которые исправят любые непосредственные проблемы, которые вы имеющий.
Preventing
The steps above will help fix some things once they've broken, but won't really solve any underlying issues you have.
- How can I figure out which web site causes that usage
- How can I limit it to 80% usage of CPU?
- Could it be a DDOS attack?
- Is there any way to prevent DDOS?
I installed eset-nod32 on my vps, but it doesn’t show any attack in the logs. I’ve tried searching about IIS and preventing DDOS, and just found an extension for banning IP addresses, but how can I find which IP address are generating traffic?
Also, one of my web sites should access administrator’s desktop and read and write some files. So because of that I changed its application pool -> identity (Process Model) to local system, and I don’t know if it is related with the CPU usage or not.
Шаг 1. Скачивание и установка средства диагностики от debug 1.2
Чтобы скачать и установить средство диагностики от debug, посетите следующий веб-сайт Корпорации Майкрософт:
Дополнительная информация
Если в процессе IIS используется большой процент доступных циклов ЦП, рекомендуется создать файл полной памяти процесса IIS при обработке клиентских запросов IIS. С помощью средства диагностики от debug можно фиксировать и анализировать файлы дампов памяти при обработке клиентских запросов IIS.
Treating
Unless you run some sort of controversial business, this is probably not a DDOS attack. It's likely that some code is just hanging because it couldn't get through to another server or got stuck in a loop or mis-allocated resources or your app pool just hasn't been recycled in a while.
You can deal with this problem programmatically without having to manually identify, log in, and recycle the app pool. Just configure the CPU property on your App Pool. You can have it kill (and automatically restart) your process anytime you reach a CPU threshold for a certain amount of time.
In your case, if you want it to restart at 80%, you can right click on the app pool and go to Advanced Settings and apply the following configurations:
NOTE: As kraken101 pointed out, different IIS GUIs have treated this differently over time. While the config value is always in 1/1000 of a %, sometimes the GUI takes the whole percent.
You can add this to your config section like this:
Причина
Шаг 2. Настройка ведения журнала "Мониторинг производительности"
Чтобы настроить ведение журнала "Монитор производительности", выполните следующие действия:
Примечание. По умолчанию средство диагностики отложений находится в следующей папке:
В меню Инструменты выберите пункт Параметры и Параметры.
На вкладке Журнал производительности щелкните Включить ведение журнала счетчика производительности и нажмите кнопку ОК.
Примечание Значение в поле Интервал выборки данных зависит от того, когда возникает высокая проблема с использованием ЦП. При сборе данных размер журнала возрастает. За сведениями о Professional в поле Интервал выборки данных обратитесь в службу поддержки Майкрософт.
предупреждение
вот некоторые ресурсы по мониторингу производительности:
используйте PerfMon для сбора данных и DebugDiag для анализа.
нашел эту ссылку при поиске подобной проблемы.
использовать procmon и определить вашу проблему.
недавно я столкнулся с теми же проблемами и нашел решение, которое сработало для меня и значительно снизило уровень потребления памяти.
устранение:
прежде всего найдите приложение, которое вызывает интенсивное использование памяти.
вы можете найти это в разделе сведений Диспетчера задач.
- открыть диспетчер IIS.
- нажать на кнопку приложения Бассейны. Вы найдете много пулов приложений, которые использует ваша система.
- теперь из Диспетчера задач вы нашли, какое приложение вызывает большое потребление памяти. Для этого было бы несколько вариантов, и вам нужно выберите тот, который имеет " 1 " в столбце приложения вашего веб-приложения.
- при нажатии на пул приложений на правой стороне вы увидите опцию Дополнительные параметры под Редактирование пулов приложений. Перейдите в Дополнительные настройки. 5.Теперь в разделе общая категория установите включить 32-разрядные приложения до правда
- перезагрузите сервер IIS или вы можете увидеть потребление идет вниз в разделе производительности Диспетчера задач.
Если это решение работает для Вас, пожалуйста, добавьте комментарий, чтобы я мог знать.
недавно у меня была эта проблема, и как только я определил, какой AppPool вызывает проблему, единственным способом решить эту проблему было полностью удалить этот пул приложений и создать новый для сайта.
Запуск служб (IIS) 7.0 на компьютере под управлением Windows Vista или Windows Server 2008. На компьютере имеется более 64 ГБ ОЗУ. Неожиданно процесс W3wp.exe IIS занимает 100% ресурсов ЦП. Таким образом на компьютере происходит низкой производительности.
лечения
если вы не запустите какой-то спорный бизнес, это, вероятно, не DDOS-атака. Вероятно, какой-то код просто висит, потому что он не может пройти на другой сервер или застрял в цикле или неправильно выделенных ресурсах, или ваш пул приложений просто не был переработан в то время.
в вашем случае, если вы хотите перезапустить его на 80%, вы можете щелкнуть правой кнопкой мыши на пуле приложений и перейти к расширенным настройкам и применить следующие конфигурации:
Примечание: As kraken101 указал, различные IIS GUIs обработали это по-разному со временем. Хотя значение конфигурации всегда находится в 1/1000%, иногда GUI принимает весь процент.
вы можете добавить это свой конфиг такой:
Шаг 3. Отключение отключать перехват исключений от отключа
Примечание. Если средство диагностики от debug настроено для использования средства с IIS 6.0 или более высокого, перейдите к шагу 4. Создание файла дампа.
Если вы настраивали средство диагностики от debug для использования этого средства с IIS 5.1 или с IIS 5.0, отключите отключив перехват исключений от отключа. Для этого выполните следующие действия:
Щелкните правой кнопкой мыши компьютер, который вы хотите настроить, и выберите свойства.
В списке Свойства выберите службу WWW, а затем нажмите кнопку Изменить.
На вкладке Главная каталог нажмите кнопку Конфигурация.
На вкладке Параметры процесса щелкните, чтобы сняв этот параметр, и нажмите кнопку ОК.
Читайте также: