すべての場合で、プロセスの常駐メモリ使用量をMB単位で取得する方法を考えています。MBで取得することもありますが、GBで取得することもあります。
私は解決策を探しましたが、それらのほとんどは機能しませんでした。取り組むことができる何かtop -b -n 1 | grep %i | awk '{print$9}'
が素晴らしいでしょう。
すべての場合で、プロセスの常駐メモリ使用量をMB単位で取得する方法を考えています。MBで取得することもありますが、GBで取得することもあります。
私は解決策を探しましたが、それらのほとんどは機能しませんでした。取り組むことができる何かtop -b -n 1 | grep %i | awk '{print$9}'
が素晴らしいでしょう。
サブプロセスの使用を避けたい場合は、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)
例:
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
異なる場合があります。マニュアル ページを確認してください。