¿Podrías compartir la salida de vmstat 5 en este caso? Si estás mirando ps o top, podrías estar viendo algo diferente a la memoria que está en uso. La memoria asignada no es tan importante si no está en uso.
Por ejemplo, en la salida de ps veo VSZ y RSS. Me interesa el RSS.
# ps uax|egrep '[0-9].unicorn|VS[Z]'
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
ddiscou+ 2192 0.0 13.4 558320 267540 ? Sl Jan10 33:21 unicorn master -E production -c config/unicorn.conf.rb
ddiscou+ 2294 0.0 18.2 5126600 363432 ? Sl Jan10 90:59 unicorn worker[0] -E production -c config/unicorn.conf.rb
ddiscou+ 2301 0.0 14.2 5149576 282892 ? Sl Jan10 38:40 unicorn worker[1] -E production -c config/unicorn.conf.rb
En top veo lo mismo pero se llama VIRT y RES
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2284 ddiscou+ 25 5 5246644 327496 5640 S 1.7 16.4 872:50.70 ruby
2294 ddiscou+ 20 0 5126600 364284 14436 S 0.7 18.3 91:00.13 ruby
vmstat me dice cuál es la presión de memoria en este momento: cuánta memoria de intercambio queda, cuánta memoria libre y de búfer, y lo más importante, si hay algún intercambio de entrada (la columna si).
root@ubuntu-2gb-nbg1-1:~# vmstat 5 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 239616 127080 185428 464448 0 0 14 32 4 2 2 1 97 0 0
0 0 239616 124584 185432 464500 0 0 0 13 138 318 2 2 96 0 0
0 0 239616 126120 185436 464500 0 0 0 13 116 264 1 0 99 0 0
0 0 239616 120376 185436 464504 0 0 0 46 125 322 3 2 95 0 0
0 0 239616 123448 185436 464504 0 0 0 73 129 306 1 1 98 0 0