Iis worker process грузит процессор

Обновлено: 08.07.2024

Использование моего процессора на 100% больше времени в Windows Server 2008 R2 с помощью моего собственного vps, vmware, четырехъядерного ядра и 4 ГБ памяти. Когда я открываю диспетчер задач Windows и перехожу к монитору ресурсов, я вижу, что 100% использование происходит из-за workerprocess.exe . У меня есть 3 веб-сайта в моем IIS.

    Как я могу определить, какой веб-сайт вызывает это использование.
    Как я могу ограничить его до 80% использования процессора?
    Может ли это атака DDOS?
    Есть ли способ предотвратить DDOS?

Я установил eset-nod32 на свои vps, но в журналах он не обнаруживает никаких атак. Я пробовал искать IIS и предотвращать DDOS и просто нашел расширение для запрета IP-адресов, но как я могу найти, какой IP-адрес генерирует трафик?

Кроме того, один из моих веб-сайтов должен иметь доступ к рабочему столу администратора и читать и записывать некоторые файлы. Поэтому из-за этого я изменил свой пул приложений → identity (Process Model) на локальную систему, и я не знаю, связано ли это с использованием ЦП или нет.

спросил(а) 2013-02-21T03:12:00+04:00 8 лет, 9 месяцев назад

Ну, это может занять много времени, чтобы выяснить. Несколько пунктов, чтобы сузить это:

ответил(а) 2013-03-25T23:28:00+04:00 8 лет, 7 месяцев назад

Диагностирование

С точки зрения диагностики того, что создает пул приложений, вы можете:

Server Settings

Это должно вызвать такое меню, чтобы вы могли определить, какой пул приложений работает amok.

Worker Processes

Лечение

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

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

В вашем случае, если вы хотите, чтобы он перезагрузился на 80%, вы можете щелкнуть правой кнопкой мыши по пулу приложений и перейти в "Дополнительные настройки" и применить следующие настройки:

App Pool Advanced Settings

ПРИМЕЧАНИЕ. Как отмечал kraken101, разные графические интерфейсы IIS рассматривали это по-разному с течением времени. Хотя значение конфигурации всегда находится в 1/1000%, иногда графический интерфейс принимает весь процент.

Вы можете добавить это в свою конфигурацию следующим образом:

В качестве альтернативы вы могли бы script с помощью Powershell WebAdministration Module следующим образом:
(* убедитесь, что средства веб-скриптинга включены)

Предотвращение

  • 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?



8 Answers 8

Well, this can take long time to figure out. Few points to narrow it down:

Diagnosing

In terms of diagnosing what App Pool is causing trouble, you can:

  1. Select the server
  2. Go to IIS > Worker Processes


This should bring up a menu like this so you can determine which App Pool is running amok.


Treating

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:

Preventing

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.

If this solution works for you please add a comment so that I can know.

Решение проблем с производительностью IIS

c:windowssystem32inetsrvw3wp.exe -a \.pipeiisipmceXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX -t 20 -ap "dotnet4"

Впоследствие эти действия оказались по большему счёту бесполезными, но умение определять нужный процесс w3wp оказалось впоследствии полезным и мне и нашим разработчикам выполняющим удалённую отладку в Visual Studio.


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.

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:

В данной статье описывается использование v1.2 отладки средства диагностики для устранения неполадок высокую загрузку ЦП процессом в Microsoft IIS (IIS).

ВВЕДЕНИЕ

Высокая загрузка ЦП процессом в IIS возникает, когда в процессе IIS использует 80 процентов или больше доступные циклы ЦП для постоянной временной интервал. Примеры в процессе IIS, W3wp.exe, Dllhost.exe и Inetinfo.exe. В случае высокой загрузки ЦП процессом IIS возникают следующие проблемы:

Веб-страница загружается неправильно. Например веб-страница пустая или не отвечает.

Происходит снижение производительности на сервере, на котором выполняется IIS. Например индикатор хода выполнения перемещается очень медленно при попытке просмотра веб-страницы.

В данной статье рассматриваются как установить и настроить средство отладки диагностики для устранения неполадок при высокой загрузке ЦП в процессе IIS.

Дополнительные сведения

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

Шаг 1: Загрузите и установите v1.2 отладка диагностики

Чтобы загрузить и установить средство диагностики, отладки, посетите следующий веб-узел корпорации Майкрософт:

Шаг 2: Настройка ведения журнала системного монитора

Чтобы настроить ведение журнала системного монитора, выполните следующие действия.

Примечание. По умолчанию средство диагностики отладки находится в следующей папке:

В меню Сервис выберите команду Параметры и настройки.

На вкладке Журнал производительности нажмите кнопку Включить счетчик данных ведения журнала производительностии нажмите кнопку ОК.

Примечание. Значение в поле Интервал выборки данных зависит от того, когда возникает проблема высокой использования ЦП. Размер журнала по мере сбора данных. Обращение в службу поддержки корпорации Майкрософт для получения сведений о настройке значения в поле Интервал выборки данных .

Шаг 3: Отключить отладку перехват исключений

Примечание. Если вы настраиваете средство диагностики отладку с помощью средства IIS 6.0 или более поздней версии, перейдите к «шаг 4: создать файл дампа памяти.»

Если вы настраиваете средство диагностики отладку с помощью средства с IIS 5.1 или IIS 5.0, отключите перехват исключений при отладке. Чтобы сделать это, выполните следующие действия.

Щелкните правой кнопкой мыши компьютер, который требуется настроить и выберите команду Свойства.

В списке Основные свойства щелкните Веб-службуи нажмите кнопку Изменить.

На вкладке « Домашний каталог » нажмите кнопку Настройка.

На вкладке « Параметры обработки » снимите флажок Включить перехват исключений при отладке и нажмите кнопку ОК.

Шаг 4: Создание файла дампа

Чтобы создать файл дампа, используйте один из следующих методов.

Метод 1: Создайте правило зависает

Чтобы создать правило зависает, выполните следующие действия.

Примечание. По умолчанию средство диагностики отладки находится в следующей папке:

На вкладке правила нажмите кнопку Добавить.

В списке Тип целевого объекта выберите тип объекта, нужно, нажмите кнопку ОКи нажмите кнопку Далее.

Введите имя для правила, введите путь к расположению файла дампа пользователя и нажмите кнопку Далее.

На вкладке правила , обратите внимание, что правило активно в столбце состояние.

Метод 2: Создание файла зависание дампа IIS вручную

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

Примечание. По умолчанию средство диагностики отладки находится в следующей папке:

В меню Сервис выберите команду Создать IIS / COM + зависание дампа.

Способ 3: Создайте пользовательский файл дампа для процесса отладки средства диагностики

Чтобы создать пользовательский файл дампа для процесса, выполните следующие действия.

Примечание. По умолчанию средство диагностики отладки находится в следующей папке:

На вкладке « процессы » щелкните правой кнопкой мыши процесс, который нужно устранить и нажмите кнопку Создать полный Userdump.

Шаг 5: Отключить ведение журнала системного монитора

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

Примечание. По умолчанию средство диагностики отладки находится в следующей папке:

В меню Сервис выберите команду Параметры и настройки.

На вкладке Журнал производительности нажмите кнопку Отключить счетчик данных ведения журнала производительности.

Шаг 6: Анализ файла дампа памяти

Для анализа файла дампа памяти, выполните следующие действия.

Примечание. По умолчанию средство диагностики отладки находится в следующей папке:

На вкладке Дополнительно анализ щелкните Добавить файлы данных.

На вкладке Дополнительно анализ выберите Анализаторы сбой или зависаниеи нажмите кнопку Начать анализ.

Просмотрите отчет, отображаемый в обозревателе Microsoft Internet Explorer. Копию этого отчета также хранятся в следующей папке:

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

Ссылки

Дополнительные сведения об использовании служб IIS посетите следующий веб-узел корпорации Майкрософт:

Чтобы просмотреть Microsoft Developer Network (MSDN) веб-трансляции о способах обработки проблемы, связанные с IIS, следующие MSDN веб-узлах:

Способы устранения неполадок в ситуации, где IIS не отвечает

Способы диагностики памяти утечки в IIS

Способы диагностики ситуаций, где IIS неожиданно завершает работу
Дополнительные сведения об использовании средства отладки диагностики для устранения неполадок с в процессе IIS щелкните следующий номер статьи базы знаний Майкрософт:

Использование средства диагностики, отладки для устранения неполадок процесса, который отвечает в IIS как

Как использовать средство диагностики отладки IIS для устранения утечки памяти в процессе IIS

Как использовать средство отладки диагностики для устранения неполадок в процессе IIS, неожиданно


После чего жмем ОК и ждем, пока все скачается и установится. По данному пункту хотел еще пояснить, что проставлены необходимые для работы 1С компоненты, ничего кроме этого мне не понадобилось пока. Данный набор ставил и на WIN 7 и на WIN10

2. Первоначальная настройка IIS.

2.1. Дать доступ службе IIS к:

- Платформа1С (C:\Program Files (x86)\1cv8),

- База1С тут точного пути, нет у каждого он свой.

Для этого на каждой из папок клацаем правой кнопкой мыши Свойство-Безопасность - Изменить - Добавить -IIS_IUSRS; IUSR и проставить галочки полного доступа. После нажатия на ОК могут появиться ошибки "Отказ в доступе" нажимайте "Продолжить" и все.

2.2. Разрешить IIS работать с 32 битными приложениями.(Этот пункт нужен если у вас WIN 64-битная а 1C 32-битная, поэтому почти всем) Заходим Панель управления - Администрирование -Диспетчер служб IIS,



3. Публикация базы данных

3.1. Установка платформы обязательно с установленной галочкой "Модуль расширения веб-сервера"

3.2. Запускаем 1С под правами администратора в режиме Конфигуратор - Администрирование - Публикация на веб-сервере.


И все, больше ничего не нужно.

Есть один совет: Если база будет доступна через 1С, нелишнее для обеспечения дополнительной безопасности опубликовывать её с именем, которое будет ничего не значить. Лучше вообще случайным набором букв и цифр (qAdsfslj- например), пользователи, даже если работают через браузер, заходят по ссылке, а вам дополнительное спокойствие, но при таком подходе есть минус, если снял базу с публикации, например, для обновления, то имя будет меняться на наименование папки базы данных, и если не сохранил где-то это имя, то начинаешь искать эту ссылку, и ладно, если баз одна -две, а если их несколько десятков, то можно и перепутать. Попав пару раз, сделал следующим образом "D:\Bases1C\Buh\qAdsfslj" - где "Buh"-название понятное для меня а вот "qAdsfslj"- имя базы при публикации.

Если после установки и настройки IIS + 1C 8.3 (на АПАЧе все работало) внутри локальной сети все хорошо, а при входе через интернет вроде все хорошо, но при формировании табличного документа происходят странные вещи, вместо значков группировок отчета выходит "разорванный листочек", и выделить ячейку в отчете не получается (хотя при двойном нажатии расшифровки работают), а еще на экране нет картинок и штрихкодов в табличном документе (отчете) но если этот же отчет сохранить в эксель или распечатать, все выходит как надо. Значит, вы "попали" так же как и я (искал решение очень долго, почему и пишу данную статью).


Перепробовал все предложенные варианты настроек в интернете, не помогло, сменил Windows (7,10, 2008), компьютер, версии 1C и IIS (7.0, 7.5, 10) не помогает. При этом нужно учесть еще и такой момент что в этой же сети уже работает один сервер IIS+1С и там все работает как надо.

А дело было в том, что после того, как я запускал сервер, я тут же делал проброс порта через роутер наружу и поскольку уже имелся сервер работающий по 80 порту, пробрасывал на альтернативный (444, 98, 90, и тд. переустановок было много). и получал печальный результат. А нужно было сначала сделать прямой проброс 80-80 зайти в 1С через Интернет. а после можно менять порт на любой. Вариант был проверен неоднократно.

Буду рад, если кому-то поможет, и не позволит потерять очень много времени и нервов.

  • как я могу выяснить, какой веб-сайт вызывает это использование
  • как я могу ограничить его до 80% использования CPU?
  • может ли это быть DDOS-атака?
  • есть ли способ предотвратить DDOS?

Я установил eset-nod32 на свой vps, но он не показывает никакой атаки в журналах. Я пробовал искать IIS и предотвращать DDOS и только что нашел расширение для запрета IP-адресов, но как я могу найти, какой IP-адрес генерирует трафик?

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

Ну, это может занять много времени, чтобы выяснить. Несколько пунктов, чтобы сузить его:

Диагностика

С точки зрения диагностики того, что пул приложений вызывает проблемы, вы можете:

  1. выберите сервер
  2. перейдите в IIS > рабочие процессы

Server Settings

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

Worker Processes

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

лечения

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

в вашем случае, если вы хотите перезапустить его на 80%, вы можете щелкнуть правой кнопкой мыши на пуле приложений и перейти к расширенным настройкам и применить следующие конфигурации:

App Pool Advanced Settings

Примечание: As kraken101 указал, различные IIS GUIs обработали это по-разному со временем. Хотя значение конфигурации всегда находится в 1/1000%, иногда GUI принимает весь процент.

вы можете добавить это свой конфиг такой:

предупреждение

вот некоторые ресурсы по мониторингу производительности:

используйте PerfMon для сбора данных и DebugDiag для анализа.

нашел эту ссылку при поиске подобной проблемы.

использовать procmon и определить вашу проблему.

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

устранение:

прежде всего найдите приложение, которое вызывает интенсивное использование памяти.

вы можете найти это в разделе сведений Диспетчера задач.

  1. открыть диспетчер IIS.
  2. нажать на кнопку приложения Бассейны. Вы найдете много пулов приложений, которые использует ваша система.
  3. теперь из Диспетчера задач вы нашли, какое приложение вызывает большое потребление памяти. Для этого было бы несколько вариантов, и вам нужно выберите тот, который имеет " 1 " в столбце приложения вашего веб-приложения.
  4. при нажатии на пул приложений на правой стороне вы увидите опцию Дополнительные параметры под Редактирование пулов приложений. Перейдите в Дополнительные настройки. 5.Теперь в разделе общая категория установите включить 32-разрядные приложения до правда
  5. перезагрузите сервер IIS или вы можете увидеть потребление идет вниз в разделе производительности Диспетчера задач.

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

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

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