linux内存使用统计

我ps aux看到的RSS内存只有不到30M,但是free看到内存却已经使用了7,8G了,已经开始swap了,请问ps aux的实际物理内存统计是不是漏了哪些内存没算?我有什么办法确定free中used的内存都去哪儿了呢? 这个问题不止一个同学遇到过了,之前子嘉同学也遇到这个问题,内存的计算总是一个迷糊账。 我们今天来把它算个清楚下! 通常我们是这样看内存的剩余情况的: $free -m total used free shared buffers cached Mem: 48262 7913 40349 0 14 267 -/+ buffers/cache: 7631 40631 Swap: 2047 336 1711 那么这个信息是如何解读的呢,以下这个图解释的挺清楚的! free 补充(不少人反映图不清晰,请参考:http://www.redbooks.ibm.com/redpapers/pdfs/redp4285.pdf P46-47) 上面的情况下我们总的内存有48262M,用掉了7913M。 其中buffer+cache总共14+267=281M, 由于这种类型的内存是可以回收的,虽然我们用掉了7913M,但是实际上我们如果实在需要的话,这部分buffer/cache内存是可以放出来的。 我们来演示下: $ sudo sysctl vm.drop_caches=3 vm.drop_caches = 3 $ free -m total used free Read more…