谁能解释一下 procstat 输出内存信息?

谁能解释一下 procstat 输出内存信息?

我使用该命令procstat -r $(pidof myprocess)并得到以下输出...

  PID COMM             RESOURCE                          VALUE
84867 myprocess       user time                    00:00:12.637834
84867 myprocess       system time                  00:00:06.671334
84867 myprocess       maximum RSS                            11400 KB
84867 myprocess       integral shared memory               1931920 KB
84867 myprocess       integral unshared data                 28272 KB
84867 myprocess       integral unshared stack               301568 KB
84867 myprocess       page reclaims                            653
84867 myprocess       page faults                                0
...

我有点担心巨大的价值

84867 myprocess       integral shared memory             1 931 920 KB
84867 myprocess       integral unshared data                28 272 KB
84867 myprocess       integral unshared stack              301 568 KB

这三个术语是什么意思?

htop给我关于内存的不错的值(VIRT等)。
我应该担心内存泄漏吗?

答案1

这没有很好的记录,也让我感到困惑。

integral shared memoryintegral unshared data和状态integral unshared stack是运行计数器,而不是当前使用情况的快照。它们无限增加是正常的。它们并不表示内存泄漏。

http://www.khmere.com/freebsd_book/html/ch07.html有关每个字段数据的准确描述。

答案2

其中integral shared memory包括您的程序所链接的每个共享库的code和段。rodata这个近 2GB 的数字很大,但如果它是像浏览器这样的大型应用程序,那就不足为奇了。非共享段是由程序分配的数据,包括来自共享库的读/写数据页等。如果这些数据没有惊人地增加(或者更糟,没有限制),那么您可能没问题。

相关内容