如何在bash中跟踪内存使用情况

时间:2017-10-11 19:37:28

标签: bash memory memory-management

我在嵌入式系统上运行了一系列bash脚本。 bash脚本包括其他脚本,当它们执行时,它们的内存使用量似乎会跳跃。例如,我有:

showmem() {
        echo "[$1]  $(ps up $$ | tail -1 | awk '{print $6}')"
}

showmem "about to include"
. foo.sh
showmem "done include"

我得到输出

[about to include]  3356
[done include]  5244

请注意,值是Kb ...所以,我需要弄清楚内存的去向。起初我认为它是包含文件的实际大小(文件包含其他文件等),但我现在已经添加了所有文件大小,并且它们并不重要。此外,env输出的大小也不会增加太多,因此它不是一个膨胀的环境,并且进程树没有显示任何子进程。

是否有任何工具可以告诉我内存的用途是什么?有没有办法冲洗' bash脚本中任何一点的未使用内存?

(注意:这很重要,因为这个特殊的bash脚本会等待一个事件,并且在任何给定的时间都有几个实例运行。)

1 个答案:

答案 0 :(得分:0)

也许这是不可能的。 bash本身非常复杂,它的内存使用可能不会被它运行的脚本简单地解决。