为什么linux下用top统计出来的进程内存不准确

为什么linux下用top统计出来的进程内存不准确,第1张

进程所占的内存在是虚拟内存。 *** 作系统将物理内存做虚拟化后,阁下看到的都是虚拟内存。同理,进程看到的,识别到的也是虚拟内存。不过他们的基础和物理基础是无力内存。这样你拿虚拟的内存去匹配无力内存当然是有出入的。

大概意思就是,linux在内存管理上,倾向于尽量多地使用内存来提高读写的性能,因此你程序运行结束后cached的内容并不会马上被释放,方便下一次读取。

free命令显示的内容,第一行的数据是以系统视角看的,第二行的数据是以应用程序的视角看的。

第一行的used一项,其数据不单包含程序使用的内存,还包含buffers跟cached的内存,因此看上去可用的内存很少。

第二行的数据,分别是used-buffers-cached,跟free+buffers+cached,算了一下程序总的内存使用率是(total - free - buffers - cached) / total = 0.038 左右,因此top显示一列0.0也没什么问题。

作者:陈颖聪

链接:https://www.zhihu.com/question/49823402/answer/117980611

来源:知乎

著作权归作者所有,转载请联系作者获得授权。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7549740.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存