Veja este script link que estamos usando regularmente para depurar aplicações. Não é uma tarefa simples e os métodos diferem do kernel para o kernel, às vezes.
A partir da descrição do script, você pode ler o seguinte.
# Try to determine how much RAM is currently being used per program.
# Note per _program_, not per process. So for example this script
# will report RAM used by all httpd process together. In detail it reports:
# sum(private RAM for program processes) + sum(Shared RAM for program processes)
# The shared RAM is problematic to calculate, and this script automatically
# selects the most accurate method available for your kernel.