Semelhante à pergunta Como registrar a carga da CPU? , Gostaria de registrar a memória de um processo.
O processo que desejo registrar é interrompido em um servidor remoto e desejo descobrir a carga da CPU e o uso de memória antes de ser morto.
[atualizar]
O elegante script python de Stefano Palazzo e
Os valores de saída de uma linha de Michał são menores que os da top
CPU e Mem. Você tem uma ideia do porquê?
saída superior:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2312 schXX 20 0 1241m 328m 58m S 100 0.3 11:56.68 MATLAB
saída do script python de Stefano Palazzo:
python memlogger.py 2312
%CPU %MEM
76.00 0.20
76.00 0.20
command-line
cpu-load
logging
memory-usage
Framester
fonte
fonte
ps
pode diferir detop
: stackoverflow.com/questions/131303/…Respostas:
Você pode criar uma linha no shell:
para registrar o processo com pid = 123 apenas:
ou para ver e gravar o log no arquivo:
Se você deseja que outros dados sejam registrados, modifique as
-o {this}
opções. Consulte aman ps
seção "ESPECIFICADORES DE FORMATO PADRÃO" para obter os parâmetros disponíveis. Se você quiser uma resolução de tempo diferente, altere asleep {this}
funçãologpid()
.fonte
Se você está precisamente atrás das
top
estatísticas, pode executartop
no modo em lote especificando o pid do processo que está buscando. Tomando o exemplo desta página ( http://www.dedoimedo.com/computers/linux-cool-hacks.html ) se você digitouVocê "teria a execução principal no modo de lote (-b). Ele será atualizado a cada 10 segundos, conforme especificado pelo sinalizador de atraso (-d), para uma contagem total de 3 iterações (-n). A saída será enviada para um arquivo ". Incluindo
-p
você pode especificarpid
o processo que você procura. Obviamente, isso retornará mais do que apenas CPU e RAM, mas conterá esses campos. No meu caso, por exemplo, obteria o seguinte ao monitorar o pid 9189 usandotop -b -d 10 -n 3 -p 9189 >> ~/top-file
:fonte
watch
não me parece ideal para isso: superuser.com/questions/281347/filtering-top-command-outputEste script python simples deve fazer o que você deseja:
Você primeiro precisa descobrir a identificação do processo do programa que deseja monitorar e executar o script com o PID como argumento:
Ele imprimirá o uso da CPU e o uso de RAM em porcentagem duas vezes por segundo:
Você pode redirecionar sua saída para um arquivo para importá-lo para uma planilha posteriormente (
python log.py 9391 > firefox_log.txt
) e importar os dados para uma planilha selecionandoTab
como seu separador.O programa fecha quando você pressiona Ctrl + C ou quando o processo é interrompido.
fonte