1.使用free命令查看內存使用
(1)內存總量大小:查看Mem中的total值3697M
free -m total used free shared buffers cached Mem: 3697 3301 396 911 25 2114 -/+ buffers/cache: 1161 2536 Swap: 2421 1 2420
(2)實際使用內存大小:查看-/+ buffers/cache中used值1161M
free -m total used free shared buffers cached Mem: 3697 3301 396 911 25 2114 -/+ buffers/cache: 1161 2536 Swap: 2421 1 2420
(3)實際空閑內存大小:查看-/+ buffers/cache中free值2536M
free -m total used free shared buffers cached Mem: 3697 3301 396 911 25 2114 -/+ buffers/cache: 1161 2536 Swap: 2421 1 2420
(4)free命令詳解
free //默認單位為k,可以使用free -b -k -m -g -t total used free shared buffers cached Mem: 3266180 3250004 16176 0 110652 2668236 -/+ buffers/cache: 471116 2795064 Swap: 2048276 80160 1968116
第一列:Mem,從操作系統的角度來看內存使用。
對於操作系統來說buffers/cached 都是屬於被使用。 total = used + free ,即3266180=3250004+16176,其中used含buffers和cached。
第二列:-/+ buffers/cache,從應用程序角度來看內存使用。
對於應用程序來說buffers/cached 是等於可用的,因為buffer/cached是為了提高文件讀取的性能,當應用程序需在用到內存的時候,buffer/cached會很快地被回收。
實際使用內存 =系統的used-buffers-cached,即471116=3250004-110652-16176
實際剩余內存=系統的free+buffers+cached,即2795064=16176+110652+2668236
2.使用/proc/meminfo查看內存大小
//查看內存總量大小(GB) cat /proc/meminfo | grep -i memtotal | awk -F " " '{print $2/1024/1024 "GB"}' //查看剩余內存大小(KB) cat /proc/meminfo | grep -i memfree | awk -F " " '{print $2 "KB"}'
/proc/meminfo是了解Linux系統內存使用狀況的主要接口,我們最常用的”free”、”vmstat”等命令就是通過它獲取數據的。
MemTotal:系統從加電開始到引導完成,firmware/BIOS要保留一些內存,kernel本身要占用一些內存,最后剩下可供kernel支配的內存就是MemTotal。這個值在系統運行期間一般是固定不變的。可參閱解讀DMESG中的內存初始化信息。
MemFree:表示系統尚未使用的內存。[MemTotal-MemFree]就是已被用掉的內存。
3.查看內存條數
//內存條大小 dmidecode |grep -A16 "Memory Device$"|grep -i "size"|grep -iv "No module installed" //剩余空內存插槽個數 dmidecode |grep -A16 "Memory Device$"|grep -i "size"|grep -i "No module installed"|wc -l
參考文檔: