Acho melhor confiar na saída "gratuita" do uso total da memória e confiar em "ps" para ter uma idéia geral da quantidade de memória que um único processo está usando.
Só porque a soma dos valores RSS "ps" não é igual a "free", isso não impede que você classifique seus processos por RSS e avalie os maiores por matar.
Dito isto, se todo o seu esforço estiver apenas em serviço para garantir que a máquina possa hibernar, criar mais troca (na forma de um arquivo no disco, se necessário) é provavelmente um caminho mais fácil de ser executado.