Вопрос

Я написал скрипт обработки изображений на php, который запускается как запланированная задача cron (в OSX). Чтобы избежать перегрузки системы, скрипт проверяет загрузку системы (используя «uptime») и запускается только тогда, когда загрузка ниже предопределенного порога.

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

Это было полезно?

Решение

Вы можете попробовать это в командной строке Windows. Это работает в XP, получите много другой информации тоже.

wmic CPU

Другие советы

Не использовать нагрузку ...

Загрузка системы не является хорошим показателем в этом случае. В Unix он, по сути, говорит вам, сколько процессов готово и ожидает выполнения в данный момент. Но поскольку существует множество причин, по которым процессу, возможно, придется ждать, ваш сценарий может действительно работать без снижения производительности другого процесса, даже если «загрузить». в системе высокий.

... используйте хороший

Вы должны использовать nice (1) в Unix и эквивалент в Windows (" Process Priority " ;?), чтобы ОС могла решить, когда запускать ваш скрипт!

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

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

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

pve.exe -o"%n\t%c"

Есть справка по использованию переключателя -? , который описывает доступные параметры.

Для OSX / linux потребуется немного больше работы, чем для безотказной работы, поскольку вам нужно будет суммировать числа из первого столбца (или опустить имя процесса и просто суммировать значение в каждой строке вывода), чтобы получить общее значение (в%) загрузка процессора.

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

WMI тестирует практически все в Windows, включая загрузку системы.

Я нашел ветку об этом .

Просто используйте стандартный Win32 API (GTC)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top