Как я могу отобразить использование памяти каждого процесса, если я делаю 'PS-ef'?

В Linux, как я могу отобразить использование памяти каждого процесса, если я делаю a ps -ef? Я хотел бы видеть 'виртуальную память', 'res память', 'общая память' каждого прогресса. Я могу получить это через top, но я хочу ту же информацию в ps -ef так, чтобы я мог передать вывод по каналу к grep с моим именем процесса.

24
задан 23.04.2016, 03:30

3 ответа

Получение использования памяти через PS довольно ненадежно. Если у Вас есть более новое ядро, оно должно поддерживать/proc/pid#/smaps, который дает Вам некоторую подробную информацию о каждом использовании памяти процессов. Ниже довольно грязный и быстрый сценарий для цикличного выполнения посредством каждого процесса, который открыт, и захватите Размер, RSS, Pss и использование Shared Clean/Dirty. Надо надеяться, это может быть полезно в некотором способе.

#!/bin/bash

for pid in $(ps -ef | awk '{print $2}'); do
    if [ -f /proc/$pid/smaps ]; then
            echo "* Mem usage for PID $pid"
            echo "-- Size:"
            cat /proc/$pid/smaps | grep -m 1 -e ^Size: | awk '{print $2}'
            echo "-- Rss:"
            cat /proc/$pid/smaps | grep -m 1 -e ^Rss: | awk '{print $2}'
            echo "-- Pss:"
            cat /proc/$pid/smaps | grep -m 1 -e ^Pss: | awk '{print $2}'
            echo "Shared Clean"
            cat /proc/$pid/smaps | grep -m 1 -e '^Shared_Clean:' | awk '{print $2}'
            echo "Shared Dirty"
            cat /proc/$pid/smaps | grep -m 1 -e '^Shared Dirty:' | awk '{print $2}'
    fi
done
8
ответ дан 07.12.2019, 09:42

ps ef -o command,vsize,rss,%mem,size

Я не мог найти опцию для общей памяти, но я действительно находил опции для % общей физической памяти и количества области подкачки, которая будет необходима для выгрузки процесса. Это и намного больше документируется в страницу справочника для PS.

11
ответ дан 07.12.2019, 09:42

можно использовать

top -n 1
4
ответ дан 07.12.2019, 09:42

Теги

Похожие вопросы