2017-04-23 20 views
0

その時点で最もメモリを使用しているプロセスのみを返すPythonスクリプトを作成する必要があります。値の解析に問題があります。私がこれまで持っているもの:メモリ使用量が最も多いプロセスを返すPythonスクリプト

import psutil 

x = psutil.pids() 
for i in x: 
p = psutil.Process(i) 
print(p.name(), p.memory_full_info()) 

これは、この形式でのプロセスの完全なリストを返します。

ssh-agent pfullmem(rss=339968, vms=11350016, shared=0, text=352256, lib=0, data=421888, dirty=0, uss=598016, pss=605184, swap=0) 

私は、これらの値を操作しようとするたびに、私は値エラーを取得しています。私はMOSTのメモリー集約的なプロセスとおそらくRSSやVMSの値を返すだけです。

+0

どのようなエラーが発生しますか? – vonBerg

答えて

0
import psutil 

pids = psutil.pids() 
processes = map(psutil.Process, pids) 
most_mem_process = max(processes, key=lambda p: p.memory_full_info().data) 
+0

@EyuelDKありがとうございました。私がまだ紛失している唯一の事は、メモリの量をリストアップする私たちの数です。私は数を分けてこれまでに分かっています:jk = psutil.Process(i).memory_percent(memtype = 'uss')これはpidを 'i'とし、uss番号を返します。 – Joe

+0

私は 'psutil'ライブラリに慣れていませんが、' uss'に基づいてフィルタリングする場合は 'p.memory_full_info()。data'を' p.memory_full_info()。uss'に置き換えてください。最後に、プロセスオブジェクトであるmost_mem_processには、 'uss'を含む必要なすべての情報があります。 – EyuelDK

0
import subprocess 
subprocess.check_output('ps -eo pmem,cmd | sort -k 1 -nr | head -1', shell=True).decode('utf-8').replace('\n', '') 

このコマンドは2つのことを返します。最初のものを、プロセスのメモリ使用量の割合と第二1が最高のメモリ使用量と実行中のプロセスです。

+1

詳細情報とコンテキストを追加してください。このコードは何を行い、ユーザーの質問にどのように答えますか?コードのみの回答を作成する場合は、コードのコメントが少なくとも必要です。 –

関連する問題