内存

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
~                         
原文地址:https://www.cnblogs.com/bluewelkin/p/4435236.html