Eu tenho um tamanho de VM de 350 GB.
O tamanho da VM não reflete realmente nenhum recurso em uso nem é um limite. É a soma dos tamanhos do espaço de endereço ( ps -ax -O vsz
mostrará isso) para todos os processos em execução. O tamanho do espaço de endereço é simplesmente o maior número usado por esse processo para se referir a locais na memória; memória abaixo desse valor pode nem mesmo ser alocada para qualquer propósito.
Aqui está apenas um exemplo de por que haveria essas lacunas:
Vários programas podem usar bibliotecas compartilhadas de código (também conhecidas como frameworks), como o Cocoa. Para iniciar um programa de forma eficiente, essas bibliotecas compartilhadas são organizadas de modo que cada biblioteca em seu sistema (principalmente) esteja em um endereço virtual diferente - isso significa que quando o programa é carregado, seu código que se refere à biblioteca já pode apontar para esse endereço e não precisa ser reescrito com endereços diferentes (realocação ou vinculação dinâmica). Mas nem todo programa usa todas as bibliotecas, então haverá lacunas.
(Eu não sou um especialista nesses assuntos; alguns detalhes específicos podem estar fora. Considere o acima um guia para o tipo de complexidade que pode existir em um sistema moderno, não exatamente como ele realmente funciona.)