Para medir o uso de memória de um processo, use os campos VmPeak
e VmSize
de /proc/[pid]/status
. O que acontece com o relatório de memória se esse processo for bifurcado após a alocação de memória?
Meu entendimento é que inicialmente a memória do processo pai é compartilhada entre os processos pai e todos os filhos. Quando um processo filho é gravado em uma página de memória compartilhada, essa página de memória é copiada para uma região de memória exclusiva desse processo filho.
Para obter o uso geral da memória, posso apenas iterar pelos processos filhos e somar os valores VmPeak
e VmSize
? Ou vou contar as páginas de memória compartilhada várias vezes?
Se isso importa, estou no CentOS:
$ cat /etc/centos-release
CentOS Linux release 7.5.1804 (Core)