對應用程式來講是(-/+ buffers/cach).buffers/cached 是等同可用的,因為buffer/cached是為了提高程式執行的性能,當程式使用記憶體時,buffer/cached會很快地被使用。所以,從應用來看看,以(-/+ buffers/cache)的free和used為主.... ...
一、free 查看系統總的記憶體情況
第一部分Mem行:
total 記憶體總數: 3768M
used 已經使用的記憶體數: 3136M
free 空閑的記憶體數: 632M
shared 當前已經廢棄不用,總是0
buffers Buffer 緩存記憶體數: 426M
cached Page 緩存記憶體數:1562M
關係:total(3768M) = used(3136M) + free(632M)
第二部分(-/+ buffers/cache):
(-buffers/cache) used記憶體數:1148M (指的第一部分Mem行中的used – buffers – cached)
(+buffers/cache) free記憶體數: 2620M (指的第一部分Mem行中的free + buffers + cached)
可見-buffers/cache反映的是被程式實實在在吃掉的記憶體,而+buffers/cache反映的是可以挪用的記憶體總數.
第三部分:Swap交換區
如果常常swap用很多,可能你就要考慮加物理記憶體了.這也是linux看記憶體是否夠用的標準哦.
解釋:
對操作系統來講是Mem的參數.buffers/cached 都是屬於被使用,所以它認為free只有232.
對應用程式來講是(-/+ buffers/cach).buffers/cached 是等同可用的,因為buffer/cached是為了提高程式執行的性能,當程式使用記憶體時,buffer/cached會很快地被使用。所以,從應用來看看,以(-/+ buffers/cache)的free和used為主.所以我們看這個就好了。
二、查看某個進程占用的記憶體情況 pidstat -r
PID:進程標識符
Minflt/s:任務每秒發生的次要錯誤,不需要從磁碟中載入頁
Majflt/s:任務每秒發生的主要錯誤,需要從磁碟中載入頁
VSZ:虛擬地址大小,虛擬記憶體的使用KB
RSS:常駐集合大小,非交換區五里記憶體使用KB
%MEM :該進程占用的記憶體百分比
Command:task命令名
三、cat /proc/19978/status 查看指定進程的快照
VmRSS //進程當前使用的物理記憶體的大小
VmData //進程占用的數據段大小
VmSize //進程當前使用的虛擬記憶體的大小