如何在shell脚本中使用top来跟踪进程的内存消耗?

如何在shell脚本中使用top来跟踪进程的内存消耗?

我想知道是否有一种方法可以使用 top 或其他程序来跟踪我将运行的脚本的内存消耗。我正在使用

   runtime.totalMemory - runtime.freeMemory

但这并没有减少它,因为它考虑了整个系统,而不仅仅是我想要跟踪的过程。

我正在使用 shell 脚本来运行 scala 程序,我想跟踪它的内存使用情况。

答案1

SCALAPID=$!在后台启动 scala 进程后获取要跟踪的 scala 进程的 PID,然后使用ps -o size= -q $SCALAPID返回值查找该进程的内存使用情况(以千字节为单位)

答案2

如果您想检查已经运行的进程的内存,请尝试:

# ./ps_mem.py
 Private  +   Shared  =  RAM used       Program

188.0 KiB +  52.0 KiB = 240.0 KiB       atd
.....
 25.9 MiB +  66.0 KiB =  26.0 MiB       memcached
 53.1 MiB + 106.5 KiB =  53.2 MiB       named
453.2 MiB + 107.0 KiB = 453.3 MiB       mysqld
---------------------------------
                          1.2 GiB
=================================

如果您询问要运行的脚本,那么我相信没有办法检查它,因为它可能会调用任何东西,而轮到它也可以调用很多东西等等。

相关内容