Скрипты нагружают службу wmiprvse.exe на 7-10%

 
0
 
Visual Basic
ava
biffick | 21.11.2016, 04:02
Всем привет.
Требуется помощь в решении вопроса нагрузки от скриптов, которые нагружают процессор Intel Core i7-3770k на 7-10%, а именно нагрузка идёт на wmiprvse.exe.

Скрипты одинаковые по коду, выполняют проверку запущен ли процесс или нет, если нет, то запускают его (если процесс "упал").

Скрипты я заказывал у человека с форума ещё давно и давно заметил нагрузку на WMI, но не думал, что из-за скриптов такое может быть.

Буду благодарен, если кто отпишет мне по этому вопросу в лс (если будет оказана помощь в решении проблемы, то отблагодарю материально).
Kommentare (25)
ava
Akina | 21.11.2016, 07:50 #
Цитата (biffick @  21.11.2016,  05:02 findReferencedText)
Скрипты одинаковые по коду, выполняют проверку запущен ли процесс или нет, если нет, то запускают его (если процесс "упал").

Ну дёргает скрипт WMI для проверки, имеется ли процесс с требуемыми характеристиками (вероятно, по имени исполняемого файла)... и чего бы ему от этого работой не загружаться?

А суть проблемы-то в чём? 10% на секунду - это несерьёзно.
ava
biffick | 21.11.2016, 08:56 #
Akina, если бы он дёрнул на секунду, я бы не создал тему. Это постоянная нагрузка на процессоре, пока скрипты не выключу (их несколько, каждый следит за отдельным процессом).
ava
Akina | 21.11.2016, 10:43 #
Ну если они ведут постоянный опрос, то и загрузка сервиса будет постоянной.
ava
biffick | 21.11.2016, 18:33 #
Даже когда стоит vbscript.Sleep 2000, то всё равно нагрузка.
Я заметил, что если даже скрипты позакрывать через диспетчер задач, то всё равно нагрузка остаётся.
А вот если убрать скрипты из автозагрузки, то нагрузки нет на WMI.
ava
Akina | 21.11.2016, 19:03 #
Цитата (biffick @  21.11.2016,  19:33 findReferencedText)
А вот если убрать скрипты из автозагрузки, то нагрузки нет на WMI. 

То есть если те же скрипты запустить не из автозагрузки (кстати, что в данном случае автозагрузка? в ОС, если верить Руссиновичу, более сотни разных мест, подходящих под это определение), а после завершения загрузки из командной строки, то такой загрузки нет?
А от имени какой учётной записи они запускаются в автозагрузке?
ava
biffick | 21.11.2016, 22:40 #
Akina, нет, даже если их просто запустить уже вручную, нагрузка будет. Я имею в виду, что нагрузка всегда, когда запущены скрипты. И даже если их закрыть, то нагрузка остаётся.
ava
Akina | 21.11.2016, 23:46 #
Ну единственное, что можно предложить, ничего не зная о системе - это конвертировать целевые процессы в сервисы и задействовать штатный механизм ОС по перезапуску сервиса в случае его останова/зависания/выгрузки. Если, конечно, эти процессы могут быть конвертированы в сервисы и не требуют взаимодействия с сеансом пользователя.
Разбираться же, откуда нагрузка, и уж тем более как её избежать - имхо занятие тухлое.
ava
biffick | 22.11.2016, 01:17 #
Akina, я уже вышел на связь с разработчиком скриптов. Мы думаем, что можно предпринять.
ava
biffick | 22.11.2016, 04:34 #
Всё, проблема решена, нашёл софтину, которая делает именно то, что мне нужно. Т.е. в ней даже лишнего нет, только нужное и всё.

Если кому понадобится, то называется она "Restart On Crash v1.4.2.264".
Нагрузка упала до 2-3% на WMI, но ещё один скрипт работает, его бы тоже заменить, только он не за процессами следит  :-D 
ava
Akina | 22.11.2016, 07:43 #
Цитата (biffick @  22.11.2016,  05:34 findReferencedText)
называется она "Restart On Crash v1.4.2.264".

На всякий случай - домашняя страница Restart on Crash.
ava
biffick | 22.11.2016, 11:53 #
Akina, спасибо, но я уже скачал откуда-то, проверил на вирусы, чисто и меня всё устроило  :wink 
ava
biffick | 22.11.2016, 14:43 #
Дополняю.

Софтина тоже стала жрать процессор.
Не могу понять, почему такое вообще происходит.
ava
Akina | 22.11.2016, 14:55 #
Цитата (biffick @  22.11.2016,  15:43 findReferencedText)
Софтина тоже стала жрать процессор.

Ну если надо выполнить некую работу, то один хрен вкалывать, и неважно, кто распорядился - объём работы одинаковый...
ava
biffick | 22.11.2016, 21:27 #
Akina, просто CPU не такой уж и слабый, и я не понимаю, почему такая нагрузка на него падает. У меня нет ни одного сервиса на ПК, который бы настолько нагружал процессор.
ava
Akina | 22.11.2016, 23:39 #
Цитата (biffick @  22.11.2016,  22:27 findReferencedText)
У меня нет ни одного сервиса на ПК, который бы настолько нагружал процессор. 

Обновление системы запусти...
ava
biffick | 24.11.2016, 02:37 #
Akina, какой-то KB-патч должен помочь?
ava
Akina | 24.11.2016, 08:38 #
Сильно сомневаюсь.
Я думаю, основная проблема в том, что скрипты работают поллингом, и не сильно заморачиваются на дать процессору отдохнуть. Посмотри по тексту, и если найдёшь цикл опроса, типа 

Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2") 
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE ExecutablePath='" & ExecutablePath & "'",,48) 
и вставь в него 2-3-секундную задержку.
ava
biffick | 24.11.2016, 11:02 #
Akina, так на данный момент то не скрипты работают, а сотфина для проверки процессов. И она тоже нагружает процессор. Причём чем дольше работает, тем больше нагружает.
Утром запускаю - нагружает 0%, через 2 часа уже 1%, через 5 часов уже 7%. Больше 9% не видел ещё, но извините, у меня даже NGinx под нагрузкой 9% не ест.
ava
Akina | 24.11.2016, 11:06 #
Цитата (biffick @  24.11.2016,  12:02 findReferencedText)
на данный момент то не скрипты работают, а сотфина для проверки процессов. И она тоже нагружает процессор. Причём чем дольше работает, тем больше нагружает.

А разницы? небось она, не заморачиваясь, точно так же WMI теребит, вместо того чтобы хук на событие поставить...

Цитата (biffick @  24.11.2016,  12:02 findReferencedText)
Утром запускаю - нагружает 0%, через 2 часа уже 1%, через 5 часов уже 7%.

А памяти не нажирает до кучи?
К слову - она сама процессор наедает, или всё тот же WmiPrvSE?
ava
biffick | 24.11.2016, 11:08 #
Akina, я Вам ЛС написал.
ava
biffick | 24.11.2016, 12:28 #
Akina, вот что интересно, память не поджирается.
Если используется скрипт, то нагрузка идёт на процессор от WMI.
Если используется софт, то нагрузка на процессор уже от процесса софтины.
ava
Akina | 24.11.2016, 13:45 #
Цитата (biffick @  24.11.2016,  13:28 findReferencedText)
Если используется скрипт, то нагрузка идёт на процессор от WMI.

Если используется софт, то нагрузка на процессор уже от процесса софтины. 

Значит, софт использует не WMI, а какие-то иные методы получения информации о процессах. 
ava
biffick | 24.11.2016, 15:03 #
Akina, набрался терпения я и сделал всё через батники и планировщик заданий. Работает теперь всё как часы.
Расписать вот думаю тут пошагово, как я сделал всё или не имеет смысла? :)
ava
Akina | 24.11.2016, 16:20 #
Цитата (biffick @  24.11.2016,  16:03 findReferencedText)
Расписать вот думаю тут пошагово, как я сделал всё или не имеет смысла?

Тебе виднее...
Хотя я бы рекомендовал переписать с батников хотя бы на VBS.
ava
biffick | 24.11.2016, 18:26 #
Akina, хватит с меня VBS. То один баг, то другой. Тут всё стабильно и нагрузка ровно ноль.
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
  Akina   biffick
advanced
Absenden