이 경우 vmstat 5의 출력을 공유해 주시겠어요? ps나 top을 보고 계신다면, 실제 사용 중인 메모리가 아닌 다른 것을 보고 계실 수 있습니다. 할당된 메모리는 사용되지 않는다면 그렇게 중요하지 않습니다.
예를 들어, ps 출력에서 VSZ와 RSS를 볼 수 있습니다. 저는 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
top에서는 같은 내용을 VIRT와 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은 현재 메모리 압력이 어떤지 알려줍니다 - 스왑에 얼마나 남았는지, 자유 메모리와 버퍼 메모리가 얼마나 되는지, 그리고 가장 중요한 것은 스왑 인(swap-in, 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