Como faço para medir o pico de memória de um aplicativo em execução no Linux?
Como executo este aplicativo em lote, não posso mais usar o RSS, pois ele relata a memória atual. Preciso do pico de memória que o aplicativo usou para ser relatado no final.
O VmPeak também não é uma solução, pois relata a memória alocada e também não calcula a partir da RAM real, mas também do Disco Rígido.
Respostas:
Aqui estão 2 métodos para rastrear o uso máximo de memória de um processo.
Syrupy
Não usei essa ferramenta, mas parece o que você está procurando. Chama-se Syrupy .
Descrição
Exemplo
/usr/bin/time -v
Sim, ironicamente, o comando GNU time pode fornecer o pico de uso de memória de um processo. Ele relata a memória de pico assim:
Maximum resident set size (kbytes)
.Exemplo
Referências
fonte
Embora o tópico seja bastante antigo, quero compartilhar outro projeto que surgiu do recurso de kernel Linux do cgroups.
https://github.com/gsauthof/cgmemtime :
Exemplos de uso seriam:
fonte
wait4
para capturar a saída do processo em uma combinação com cgroups (memory.max_usage_in_bytes
), o que parece fazer sentido. Mais detalhes estão disponíveis no README no github.