Eu não sei sobre separar o VSS do uso de RSS, mas você pode olhar para o uso de pools de memória ou usar um substituto de malloc que monitora e / ou aplica a alocação máxima do sistema.
Dê uma olhada no pacote de contabilidade do processo taskstats. Ele não grava o uso final da memória, mas grava a marca d'água alta do uso de RSS e do uso da VM, que pode ser o que você quer mesmo assim? Não tenho certeza se está disponível como padrão nos kernels 16.04 do Ubuntu - você pode precisar construir um módulo do kernel para obtê-lo.