![如何在shell脚本中使用top来跟踪进程的内存消耗?](https://linux22.com/image/9050/%E5%A6%82%E4%BD%95%E5%9C%A8shell%E8%84%9A%E6%9C%AC%E4%B8%AD%E4%BD%BF%E7%94%A8top%E6%9D%A5%E8%B7%9F%E8%B8%AA%E8%BF%9B%E7%A8%8B%E7%9A%84%E5%86%85%E5%AD%98%E6%B6%88%E8%80%97%EF%BC%9F.png)
我想知道是否有一种方法可以使用 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
=================================
如果您询问要运行的脚本,那么我相信没有办法检查它,因为它可能会调用任何东西,而轮到它也可以调用很多东西等等。