如何获取进程的内存使用百分比?

Mey*_*sam 8 python linux psutil

使用以下代码,我可以获得MiB中给定进程的内存消耗:

def memory_usage_psutil():
    # return the memory usage in MB
    import psutil
    process = psutil.Process(os.getpid())
    mem = process.get_memory_info()[0] / float(2 ** 20)
    return mem
Run Code Online (Sandbox Code Playgroud)

如何更改此值以返回内存消耗百分比?

更新:我需要在终端中为特定进程%MEM执行top命令时获取列的当前值.

示例:我需要此函数返回14.2以获取VirtualBox进程的进程ID.

在此输入图像描述

Pau*_*aul 13

使用 process.memory_percent()

这与top一致.在下面的测试脚本中,您可以将参数更改为定义consume_memory数组的范围函数,该函数仅用于测试内存,并且python输出和顶部输出都匹配:

import os
import psutil

def memory_usage_psutil():
    # return the memory usage in percentage like top
    process = psutil.Process(os.getpid())
    mem = process.memory_percent()
    return mem

consume_memory = range(20*1000*1000)

while True:
    print memory_usage_psutil()
Run Code Online (Sandbox Code Playgroud)

pythonVstop