Isso é normal, se você perceber que o uso é 472308k
e que 360700k
está listado como cache. O sistema operacional está usando essa memória "gratuita" como armazenamento. Se um programa entrar e solicitar memória, o sistema entregará parte da memória em cache ao programa solicitante. Apenas usa a memória disponível quando pode acelerar algumas operações.
Portanto, apenas olhar para a memória livre total no Linux é um pouco enganador.
Quanto ao uso do apache, isso também é normal. Para obter informações diretamente da primeira página do manual:
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 variable and the VIRT will be calculated from the /proc/#/state VmSize field.)
RES -- Resident size (kb)
The non-swapped physical memory a task has used.
RES = CODE + DATA.
Portanto, o VIRT inclui todo o uso de memória, que neste caso os processos do apache na verdade terão muito do código, bibliotecas, etc, e é por isso que eles estão em torno de 300mb. O RES é o tamanho do conjunto de dados residente atualmente sendo usado atualmente, que no seu sistema é de cerca de 16mb para alguns dos processos.