准确获取Linux上的内存使用情况

我正在尝试将这个特性合并到我正在编写的脚本中。 从我所了解的“免费-m”没有准确报告。 从我所了解的内存使用情况来看,Linux在实际需要之前不会“释放”内存。 例如,如果我有32GB的内存,我做了一个

malloc(1024*1024*1024*31) 

看起来好像所有的内存都被使用了(甚至在终止这个过程之后),直到我弹开这个盒子。 有一个简单的方法来获得准确的记忆计数? 例如,如果所有100个进程和内核总结在一起,使用的是14GB的内存,我想报告14GB,不pipe什么免费-m说。

这一个花了我一下才明白。 当您运行“free -m”时,您需要查看空闲列下的“ – / + buffers / cache”行。 这显示可用的内存。 已经使用和释放回系统的内存只是标记不同。 就系统而言,这不是免费的,但它也没有被使用,并可用于从中拉出的程序。