用于返回内存使用率最高的进程的Python脚本

时间:2017-04-23 16:51:08

标签: python memory process

我需要创建一个Python脚本,它只返回当时使用最多内存的Process。我在解析值时遇到问题。到目前为止我所拥有的:

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值。

2 个答案:

答案 0 :(得分:0)

import psutil

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

答案 1 :(得分:0)

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

此命令返回两件事:第一个是进程的内存使用百分比,第二个是内存使用率最高的正在运行的进程。