Узнайте общий объем памяти, выделенный для определенного процесса в Ubuntu

15

Как узнать общий объем памяти, выделенный для определенного процесса в Ubuntu?

Анджали
источник
1
Вы пробовали ps -aefl и смотрели колонку SZ?
mdpc
2
Что вы подразумеваете под «узнать выделенную память»? Хотите знать, сколько памяти использует процесс?
Жиль "ТАК - перестань быть злым"

Ответы:

14

Пытаться:

pidof bash | xargs ps -o rss,sz,vsz

Для того, чтобы найти использование памяти вашей текущей bashоболочки (при условии , что вы используете bash). Перейдите bashк тому, что вы расследуете. Если вам нужен один конкретный процесс, просто используйте его самостоятельно:

ps -o rss,sz,vsz <process id>

Со manстраницы:

RSS: размер резидентного набора, физическая память без перестановки, используемая задачей (в килобайтах).

SZ: размер в физических страницах основного образа процесса. Это включает в себя текст, данные и пространство стека.

VSZ: размер виртуальной памяти процесса в килобайтах (1024-байтовые единицы).

На manстранице для psбудут перечислены все возможные аргументы -oопции (есть несколько вариантов для выбора). Вместо этого -o rss,szвы можете использовать vопцию стиля BSD (без тире), которая показывает альтернативную схему памяти.

garethTheRed
источник
Спасибо, Гарет ... Вы говорите, что SZ - это память, выделенная для этого процесса?
Анджали
4
Там хороший QA здесь , что объясняет взаимосвязь между RSS, SZи VSZ.
garethTheRed
0

Как узнать общий объем памяти, выделенной для конкретного процесса в Ubuntu?

Вы не определяете, какая память выделяется для процесса, и на самом деле это довольно сложный вопрос (как насчет отображений совместно используемой памяти - подробности см. В mmap (2) ; как насчет разделяемой памяти POSIX - см. Shm_overview (7) для более подробной информации). что насчет некоторых страниц в кеше страниц, используемых для открытых файлов и т.д ...)

Вы можете использовать /proc/файловую систему (которая кстати используемый ps, pmap, top, и htopт.д. ....). Прочтите proc (5), чтобы узнать больше. В частности, для процесса pid 1234, который вы можете использовать /proc/1234/status, /proc/1234/statmи /proc/1234/mapsт. Д. ... Все они являются текстовыми псевдофайлами (немного похожими на каналы), которые вы можете видеть cat(или читать последовательно внутри какой-то программы). Кстати, изнутри программы, которую вы можете использовать /proc/self (это псевдосимвольная ссылка), например, читать последовательно и /proc/self/statusт. Д ...

Смотрите также LinuxAteMyRam .

Василий Старынкевич
источник