プロセスのメモリ消費量を追跡するためにシェルスクリプトでtopを使用する方法は?

プロセスのメモリ消費量を追跡するためにシェルスクリプトでtopを使用する方法は?

実行するスクリプトのメモリ消費量を追跡するためにtopまたは他のプログラムを使用する方法があるかどうか疑問に思います。使っています

   runtime.totalMemory - runtime.freeMemory

しかし、追跡するプロセスだけでなくシステム全体を考慮するので、これは重要ではありません。

私は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
=================================

実行するスクリプトについて尋ねる場合は、スクリプトが何でも呼び出すことができ、順番に多くを呼び出すことができるので、確認する方法がないと思います。

関連情報