0

すべての場合で、プロセスの常駐メモリ使用量をMB単位で取得する方法を考えています。MBで取得することもありますが、GBで取得することもあります。

私は解決策を探しましたが、それらのほとんどは機能しませんでした。取り組むことができる何かtop -b -n 1 | grep %i | awk '{print$9}'が素晴らしいでしょう。

4

2 に答える 2

2

サブプロセスの使用を避けたい場合は、psutilライブラリを参照してください。

単一のプロセスに関する情報を探しているだけの場合の例を次に示します。

import psutil

pid = 14551

def rss_MB(pid):
    proc = psutil.Process(pid)
    mem_bytes = proc.get_memory_info().rss
    return( float(mem_bytes)/1048576 )

mem_MB = rss_MB(pid)
print "pid: %d has an rss of %f MB" % (pid, mem_MB)
于 2012-12-23T18:48:44.957 に答える
0

例:

import subprocess

lines = subprocess.check_output(['ps', '-xacuww']).splitlines()
del lines[0] # skip the header
for p in lines:
    items = p.split()
    print "Process:", items[-1], " memory:", items[5], "kB"

これは FreeBSD で書かれており、RSS サイズは kB で報告されています。Linuxのオプションはps異なる場合があります。マニュアル ページを確認してください。

于 2012-12-23T18:31:33.133 に答える