|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Bat для запуска приложения при падении нагрузки ЦП другого процесса |
|
|
CMD/BAT - Bat для запуска приложения при падении нагрузки ЦП другого процесса
|
Новый участник Сообщения: 10 |
Профиль | Отправить PM | Цитировать Суть вопроса: есть батник запуска приложения
Нужно сделать чтобы при падении нагрузки ЦП на условный "процесс" менее 40%, программа стартовала заново. Знаю только как сделать при закрытии процесса , а при снижении нагрузки никак найти не могу. Прошу прощения если дубль |
|
Отправлено: 10:39, 04-06-2019 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Это надо?
Перезапуск процесса, если потребляет менее 40Мб памяти |
Отправлено: 13:49, 04-06-2019 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать нет, не это. Либо нагрузка процесса на ЦП, либо общая загрузка ЦП
|
Отправлено: 15:21, 04-06-2019 | #3 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата lepi4:
вот общий процент загрузки процессора: но что это дает, как по этому можно судить в какое время из этого числа именно нужный процесс нагрузил более чем надо? |
|
Последний раз редактировалось alpap, 04-06-2019 в 16:30. Отправлено: 16:06, 04-06-2019 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Win32_PerfFormattedData_PerfProc_Process (но у меня не работает).
|
|
Отправлено: 17:31, 04-06-2019 | #5 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать А не допускаете что процесс может просто не расходовать большое количество оперативной памяти? что 60%ЦП что 1% - расход оперативы 125мб. И как тут лезть с оперативой. Как посмотреть загрузку ЦП, и процесс я знаю. Мне нужно понять как из это сделать переменную IF. Как там будет с остальными процессами и как будет меняться в загрузке это не важно, нужна конкретная задача - запуск приложения при падении нагрузки процессом ЦП ниже 30% (или обще загрузки ЦП ниже 50
как сделать из этого рабочее состояние? |
Отправлено: 17:45, 04-06-2019 | #6 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать |
Отправлено: 19:56, 04-06-2019 | #7 |
Crazy Сообщения: 1171
|
Профиль | Отправить PM | Цитировать powershell:
get-counter '\процесс(taskmgr)\% загруженности процессора'|select -exp countersamples|ft InstanceName,CookedValue |
------- Последний раз редактировалось YuS_2, 04-06-2019 в 22:04. Отправлено: 21:57, 04-06-2019 | #8 |
Забанен Сообщения: 793
|
YuS_2, в cmd есть typeperf, однако ни alpap, ни вы не берете в расчет один простой нюанс касательно того, что именно подразумевается под нагрузкой ЦП в винде. Попробую объяснить популярно на пальцах. В случае с WMI оснастка возвращает последнее пиковое значение счетчика производительности, последний якобы отображает загрузку процессора в процентах. На деле же так как каждому потоку отпускается определенный квант времени, по истечении которого планировщик очереди потоков принудительно передаст управление потоку, ближе всех стоящему в очереди, логично заключить: счетчик производительности измеряет не загрузку как таковую, это - готовность планировщика предоставить управление потоку по первому требованию (всплески активности возникают при переключении потоков). Счетчики производительности предоставляются системой посредством такой NTAPI'шной функции, как NtQuerySystemInformation, при этом далеко не все из SYSTEM_INFORMATION_CLASS возвращает данные из "низов", это также справедливо и для загрузки ЦП. Иными словами, загрузка ЦП условна, и гарантированно сказать, что к всплеску привело именно такое-то приложение, а не работающее "параллельно", которое, скажем, активно использует системный таймер, невозможно (что не совсем справедливо в случае таких систем как 8.1 и 10).
|
Отправлено: 08:24, 05-06-2019 | #9 |
Crazy Сообщения: 1171
|
Профиль | Отправить PM | Цитировать greg zakharov,
Цитата greg zakharov:
get-counter "\процесс(*)\% загруженности процессора"| select -exp countersamples| ft instancename,@{n='CPU';e={($_.cookedvalue/100).tostring('P')}} -auto Цитата:
в соответствии с документацией. А что там наворотила микрософт внутри WMI, мне неинтересно. Если что-то чему-то, по какой-то причине не соответствует, то это баг, который должен быть где-то описан и возможно, даже записан в очередь на исправление (что в случае с микрософт весьма сомнительно) Цитата greg zakharov:
А практически, в официальной документации написано следующее: Цитата:
В общем, резюмируем: $process = 'explorer' get-counter "\процесс($process)\% загруженности процессора" -sam 5 -cont| select -exp countersamples|%{ if($_.cookedvalue -lt 1){ "$process ушел курить" }else{"$process весь в работе"} } Это всё, что требовалось ТС. Цитата greg zakharov:
|
|||||
------- Последний раз редактировалось YuS_2, 05-06-2019 в 11:17. Отправлено: 10:17, 05-06-2019 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Скрипт для авто выключения одного приложения при ручном выключении другого (.exe) | vk_k14m@vk | Скриптовые языки администрирования Windows | 26 | 05-06-2018 01:32 | |
Любой язык - Завершение процесса при обнаружении другого процесса | infoman1@vk | Скриптовые языки администрирования Windows | 3 | 01-02-2018 15:27 | |
Доступ - Скрипт запуска от имени другого пользователя, bat или vbs | Farnax | Microsoft Windows 7 | 22 | 21-09-2017 05:54 | |
Нужно создать bat для запуска сервера с параметрами + приоритет процесса | KimShumow | Скриптовые языки администрирования Windows | 6 | 19-02-2016 22:23 | |
CMD/BAT - Завершение одного процесса и запуск другого с помощью bat-файла | irbis85 | Скриптовые языки администрирования Windows | 7 | 26-05-2015 19:19 |
|