1、如图所示:
8G内存,使用了566M
-buffers/cache 的内存数【userd-buffers和cache的意思】: 566-17-153=566-170=396【确实如此】
+buffers/cache 的内存数 【等于第1行的 free + buffers + cached】 7417+17+153=7417+170=7587【确实如此】
也就是说真实的应用程序使用内存为 395M,未使用的为7588M
缓存并不是在进程结束的时候被回收(你可能很快会启动另外一个进程,需要同样的数据),而是随需回收–比如,当你启动一个需要大量内存的进程时,Linux核心会从内存中回收缓存,将得到的内存分配给新的进程.
2、
并不是580M左右的内存,应用程序使用的,空闲内存也并不是759M左右。
要用free -m查看,如【1】说明所示
3、任何一个进程的使用内存
#!/bin/sh mem=`free -m | awk 'NR==2{print $2}'` ps -aux 2>&1 | sort -k 4 -r | awk '$4 ~ /^[0-9]/ && $4>0 {print $4,$11}' | awk '{print $1/100*mem" "$2}' mem=$mem | sort -k 2 | awk ' { a[$2] += $1; b[$2]++; total += $1; total++; } END{ for(i in a){ t=i; gsub(/:|.*//, "", t); printf "%10s %s " ,a[i]"MB", t"["b[i]"]"; } print "Memory Total: "mem"MB, used: "total"MB, free: "mem-total"MB." }' mem=$mem | sort -n -r ~