Eu tenho um processo que está relatando na parte superior que possui 6 GB de memória residente e 70 GB de memória virtual alocada. O estranho é que esse servidor específico possui apenas 8 GB de espaço físico e 35 GB de espaço de troca disponível.
No manual 'top':
o: VIRT -- Virtual Image (kb)
The total amount of virtual memory used by the task. It includes
all code, data and shared libraries plus pages that have been
swapped out. (Note: you can define the STATSIZE=1 environment vari-
able and the VIRT will be calculated from the /proc/#/state VmSize
field.)
VIRT = SWAP + RES.
Dada essa explicação, eu esperaria que a alocação de memória virutal de um processo seja limitada à minha troca + memória física disponível.
De acordo com o 'pmap', o código, a biblioteca compartilhada e as seções de memória compartilhada desse processo são mínimas - não mais que 300 milhões ou mais.
Obviamente, a máquina e o processo ainda estão funcionando corretamente (embora lentamente), então o que estou perdendo aqui?