了解 AIX 7 系统上 svmon 的“Inuse”列中进程的内存增长

了解 AIX 7 系统上 svmon 的“Inuse”列中进程的内存增长

我们公司开发了一个流程,我必须添加一个新方法,这意味着一些内存开销。我需要测量它。所以我去svmon并将其应用到我的流程中。这是原始的内存消耗概况:

 $ svmon -P my_pid -O summary=basic,unit=KB
 Pid      Command          Inuse      Pin     Pgsp  Virtual
 4391290  ?????            596384    41900        0   577708

然后我提出了一个请求,因此我的“新方法”被触发,输出更改为:

 $ svmon -P my_pid -O summary=basic,unit=KB
 Pid      Command          Inuse      Pin     Pgsp  Virtual
 4391290  ?????            596480    41900        0   577796

...这是没有意义的,因为“该方法”从哈希表中移动一些元素,将它们插入到一个新的元素中,然后将其推入哈希表双端队列的末尾。该队列中保存的每个哈希值各自保存的元素不超过 100 个,其中每个元素基本上都是一个指针。因此,该方法的执行绝对不会增加近 100KiB。

Inuse另外,内存比内存大让我很困惑virtual

内存消耗不匹配的原因是什么?

我最初的猜测是操作系统刚刚为该进程分配或预分配了一个新的内存页面,但如果是这样的话,那么在每次调用同一方法时添加更多页面就没有意义了。

相关内容