从/ proc / $ PID / smaps读取速度很慢

时间:2017-02-02 13:43:30

标签: linux linux-kernel cron

我们需要每分钟通过cron监控高负载服务的内存使用情况。

为此我们正在阅读/proc/PID/smaps并以某种方式解析它。

但我们每分钟都会遇到计时问题。 当监控cron关闭时,没有时间问题。

我们的代码中只有昂贵且可疑的操作才能读取/proc/PID/smaps

在阅读smaps时,Linux内核中是否存在锁定/互斥/其他内容?

还有其他更透明的方法来检测内存使用情况吗?

1 个答案:

答案 0 :(得分:1)

根据我的研究,读取/ proc / PID / smaps的成本与该过程的内存使用量相关。 看起来内核正忙着检查每个内存页面的状态以生成内容。 "/proc/[pid]/stat"

https://appsforoffice.microsoft.com/lib/1/hosted/word-web-16.00.js:24:293287可以告诉您一些有关内存使用情况的信息,例如:

          (23) vsize  %lu
                    Virtual memory size in bytes.

          (24) rss  %ld
                    Resident Set Size: number of pages the process has
                    in real memory.  This is just the pages which count
                    toward text, data, or stack space.  This does not
                    include pages which have not been demand-loaded in,
                    or which are swapped out.

从该文件读取速度很快。