2014-09-23 2 views
1

Я хотел бы использовать эти команды, чтобы увидеть мое использование памяти на моих серверах:Как измерить общее потребление памяти всех процессов пользователя в Python

ps -u $USERNAME -o pid,rss,command | awk '{print $0}{sum+=$2} END {print "Total", sum}' 

Что бы быть лучшим способом, чтобы собрать эту общую сумму в скрипте Python? Я смотрел как psutil, но этот модуль собирает только информацию о глобальной памяти, и нет возможности отфильтровать его пользователем.

+0

Вас интересует зависимость от платформы? – wnnmaw

ответ

2

Это довольно простое использование psutil. Вы можете просто перебрать все процессы, выбрать те, которые принадлежат вам, и суммировать память, возвращаемую memory_info().

import psutil 
import getpass 

user = getpass.getuser() 

total = sum(p.memory_info()[0] for p in psutil.process_iter() 
           if p.username == user) 

print('Total memory usage in bytes: ', total) 
+0

Большое спасибо! Это подтолкнуло меня в правильном направлении. Использование такого понимания списков не будет работать, потому что для некоторых процессов 'memory_info()' будет вызывать ошибку AccessDenied', поэтому я просто написал обычный цикл и разместил там блок try-catch. – mbrochh

Смежные вопросы