Я написал сценарий обработки изображений на php, который запускается как запланированная задача cron (в OSX). Чтобы избежать перегрузки системы, сценарий проверяет загрузку системы (используя «время безотказной работы») и запускается только тогда, когда нагрузка ниже заранее определенного порога.
Теперь я перенес это на Windows (2003 Server) и ищу аналогичную функцию командной строки для сообщения о загрузке системы в виде целого числа или числа с плавающей запятой.






Вы можете использовать служебную программу командной строки под названием pv для отображения имени процесса и% использования ЦП за определенный период времени (по умолчанию 500 мсек) с помощью этой командной строки:
pve.exe -o"%n\t%c"
Есть справка по использованию переключателя -?, описывающая доступные параметры.
Это потребует немного больше работы, чем время безотказной работы на OSX / linux, так как вам нужно будет суммировать числа из первого столбца (или опустить имя процесса и просто суммировать значение из каждой строки вывода), чтобы получить общую сумму (в% ) Использование процессора.
Положительным моментом является то, что, приложив немного больше усилий, вы можете получить конкретный объем ЦП, который использует ваш исполняемый процесс, а не общее потребление ЦП системой.
WMI тестирует практически все в Windows, включая нагрузку на систему.
Я нашел нить об этом.
Вы можете попробовать это в командной строке Windows. Это работает в XP, получите много другой информации.
wmic процессор
Просто используйте стандартный win32 apis (GTC)
Загрузка системы в данном случае не является хорошим показателем. В Unix он, по сути, сообщает вам, сколько процессов готово и ожидает выполнения в данный момент. Но поскольку существует множество причин, по которым процесс может ждать, ваш сценарий может действительно работать, не снижая производительности другого процесса, даже если «нагрузка» на систему высока.
Вы должны использовать nice(1) в Unix и эквивалент в Windows («Приоритет процесса»?), Чтобы ОС могла решить, когда запускать ваш скрипт!
Если вы установите для своего скрипта самый низкий приоритет, он будет выполняться планировщиком только тогда, когда в данный момент больше нечего делать.
Вероятно, вам придется реализовать какой-то механизм, чтобы предотвратить одновременный запуск более одного экземпляра вашего скрипта, на случай, если для выполнения потребуется больше времени, чем длится интервал между вызовами.
загрузка системы бессмысленна в зависимости от того, для чего вы ее используете. Я видел системы с загрузкой более 100, которые можно было бы идеально использовать, если бы вы не коснулись одного ресурса, вызвавшего загрузку.