Pregunta

He escrito un script de procesamiento de imágenes en php que se ejecuta como una tarea programada cron (en OSX). Para evitar sobrecargar el sistema, el script verifica la carga del sistema (usando 'tiempo de actividad') y solo se ejecuta cuando la carga está por debajo de un umbral predefinido.

Ahora lo he portado a Windows (2003 Server) y estoy buscando una función de línea de comando similar para informar la carga del sistema como un entero o flotante.

¿Fue útil?

Solución

Puedes probar esto en una línea de comando de Windows. Esto funciona en XP, obtén mucha otra información también.

CPU wmic

Otros consejos

No use la carga ...

La carga del sistema no es un buen indicador en este caso. En Unix, básicamente le dice cuántos procesos están listos y esperando ser ejecutados en este momento. Pero dado que existen numerosas razones por las que un proceso puede tener que esperar, su script puede ejecutarse sin que a otro proceso le cueste ningún rendimiento, incluso si la " carga " en el sistema es alto.

... usa bonito

Debería usar nice (1) en Unix y el equivalente en Windows (" Prioridad de proceso " ;?), para que el sistema operativo pueda decidir cuándo ejecutar su script

Si establece la prioridad de su script en la prioridad absoluta más baja posible, solo será ejecutada por el planificador cuando no haya nada más que hacer en este momento.

Probablemente tendrá que implementar algún tipo de mecanismo para evitar que se ejecute más de una instancia de su script al mismo tiempo, en caso de que tarde más en ejecutarse que el intervalo entre las invocaciones.

Puede usar una utilidad de línea de comandos llamada pv para mostrar el nombre del proceso y el uso de% de CPU durante un período de tiempo específico (predeterminado a 500 ms) usando esta línea de comando:

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

Hay ayuda para usar el interruptor -? que describe los parámetros disponibles.

Se requerirá un poco más de trabajo que el tiempo de actividad en OSX / Linux, ya que tendría que sumar los números de la primera columna (u omitir el nombre del proceso y simplemente sumar el valor de cada línea de salida) para obtener el total (en%) uso de CPU.

La ventaja es que con un poco más de trabajo, podría obtener la cantidad específica de CPU que está utilizando su proceso de ejecución, en lugar del consumo general de CPU del sistema.

Puntos de referencia de WMI prácticamente todo en Windows, incluida la carga del sistema.

Encontré un hilo al respecto .

Solo use el estándar win32 apis (GTC)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top