Pergunta

Eu escrevi um script de processamento de imagem em php que é executado como uma tarefa agendada cron (em OSX). Para evitar a sobrecarga do sistema, os script verifica a carga do sistema (usando 'uptime') e só funciona quando a carga está abaixo de um limiar pré-definido.

Eu já portado este sobre para o Windows (2003 Server) e estou procurando uma função linha de comando similar a carga do sistema relatório como um inteiro ou float.

Foi útil?

Solução

Você pode tentar isso em uma linha de comando do Windows. Isso funciona no XP, recebo um monte de outras informações também.

CPU wmic

Outras dicas

Não use carga ...

A carga do sistema não é um bom indicador neste caso. No Unix, essencialmente, diz-lhe, quantos processos estão prontos e esperando para ser executado no momento. Mas uma vez que existem inúmeras razões pelas quais um processo pode ter que esperar, seu script pode realmente ser capaz de executar sem custar um outro processo qualquer desempenho, mesmo que a "carga" sobre o sistema é alta.

... uso agradável

Você deve usar nice(1) no Unix eo equivalente no Windows ( "Processo Prioridade"?), De modo que o sistema operacional pode decidir, quando executar seu script!

Se você definir a prioridade de seu script para a absoluta prioridade mais baixa possível, então ele só irá ser executado pelo programador quando não há mais nada a fazer no momento.

Provavelmente você terá que implementar algum tipo de mecanismo para evitar mais de uma instância do seu script a ser executado ao mesmo tempo, no caso de ele leva mais tempo para executar do que o intervalo entre a invocações dura.

Você pode usar um utilitário de linha de comando chamado pv para exibir o nome do processo e% de uso de CPU durante um período de tempo específico (o padrão é de 500ms) usando esta linha de comando:

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

Há uma ajuda com o interruptor -? que descreve os parâmetros disponíveis.

Ele vai exigir um pouco mais trabalho do que o tempo de atividade no OSX / Linux, desde que você teria que somar os números da primeira coluna (ou omitir o nome do processo e simplesmente totalizar a forma de valor cada linha de saída) para obter o total (em%) a utilização da CPU.

O lateral-se é que com um pouco mais de trabalho, você pode obter a quantidade específica de CPU que o processo de execução está usando, em vez do consumo total de CPU do sistema.

WMI benchmarks praticamente tudo no Windows, incluindo carga do sistema.

uma discussão sobre isso .

Basta usar APIs Win32 padrão (GTC)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top