我需要创建一个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值。
答案 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', '')
此命令返回两件事:第一个是进程的内存使用百分比,第二个是内存使用率最高的正在运行的进程。