Как посмотреть какой объем памяти потребляет опр.программа?

Модератор: Модераторы разделов

aleksnsk
Сообщения: 180

Как посмотреть какой объем памяти потребляет опр.программа?

Сообщение aleksnsk »

Как посмотреть какой объем памяти потребляет опр.программа?
Причем программа, не из deb-пакета, а самописная.
htop показывает только все программы.
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Как посмотреть какой объем памяти потребляет опр.программа?

Сообщение NickLion »

Ну, в htop можно фильтровать. Но всё равно неверные данные показывает. Любые программы измерения памяти показывают неверные данные. Невозможно из мерять правильно, из-за того, что с памятью всё очень непросто. Можете посмотреть pmap <pid>, cat /proc/<pid>/smaps, чтобы оценить масштабы бедствия. Ту, информацию, что показывает top, htop можно посмотреть в cat /proc/1511/status, но общая память там выдаётся для зарезервированных страниц, а не реально выделенных, что вряд ли полезно.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Как посмотреть какой объем памяти потребляет опр.программа?

Сообщение drBatty »

aleksnsk писал(а):
04.03.2014 01:51
Как посмотреть какой объем памяти потребляет опр.программа?
Причем программа, не из deb-пакета, а самописная.

top

Shell

$ top -n1 -p15199 Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie Cpu(s): 20.2%us, 8.1%sy, 0.3%ni, 71.2%id, 0.1%wa, 0.0%hi, 0.1%si, 0.0%st Mem: 1012696k total, 956932k used, 55764k free, 48k buffers Swap: 124736k total, 123672k used, 1064k free, 613272k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 15199 drb 20 0 665m 235m 27m S 0 23.8 146:08.45 firefox


тут два раза память:

1. VIRT сколько программа ЗАПРОСИЛА памяти
2. RES сколько программа ИСПОЛЬЗОВАЛА памяти

Т.е. вот такой код

Код: Выделить всё

char *p = malloc(1048576*100);
memset(p, 17, 1048576);

покажет VIRT=100m, и RES=1m.

NickLion писал(а):
04.03.2014 05:52
Но всё равно неверные данные показывает. Любые программы измерения памяти показывают неверные данные. Невозможно из мерять правильно, из-за того, что с памятью всё очень непросто.

ИМХО вы зря пугаете человека. Всё просто.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Как посмотреть какой объем памяти потребляет опр.программа?

Сообщение NickLion »

Ничего там не просто. Например, RES берёт и складывает private и shared. Может показаться вот закрою программу и память освобожу, а на самом деле освободится намного меньше.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Как посмотреть какой объем памяти потребляет опр.программа?

Сообщение drBatty »

NickLion писал(а):
04.03.2014 13:35
Может показаться вот закрою программу и память освобожу, а на самом деле освободится намного меньше.

да ладно. Не намного.

2ТС, я надеюсь вы не дурак, и не будете понимать моё объяснение на пальцах буквально. Истина как обычно где-то рядом. ☺

http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Как посмотреть какой объем памяти потребляет опр.программа?

Сообщение NickLion »

drBatty писал(а):
04.03.2014 13:59
да ладно. Не намного.

Как пример:
Private 8352 KB (= 824 KB clean + 7528 KB dirty)
Shared 35528 KB (= 15692 KB clean + 19836 KB dirty)
Rss 43880 KB (= Private + Shared)
Pss 11656 KB (= Private + Shared/Number of Processes)

top:

Код: Выделить всё

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
 5718 nicklion  20   0  514964  43900  20456 S 6,552 1,092   0:04.04 konsole

При этом заметьте, что RSS/RES даже не учитывает чистые страницы в shared памяти.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Как посмотреть какой объем памяти потребляет опр.программа?

Сообщение drBatty »

NickLion писал(а):
04.03.2014 14:04
Private 8352 KB (= 824 KB clean + 7528 KB dirty)
Shared 35528 KB (= 15692 KB clean + 19836 KB dirty)

это вы как такого добились? oO
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Как посмотреть какой объем памяти потребляет опр.программа?

Сообщение NickLion »

Обычный konsole. Основную гадость (как dirty, так и clean) в shared даёт кэш иконок и блоб nvidia (эффекты kde включены).
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Как посмотреть какой объем памяти потребляет опр.программа?

Сообщение drBatty »

NickLion писал(а):
04.03.2014 16:08
Обычный konsole. Основную гадость (как dirty, так и clean) в shared даёт кэш иконок и блоб nvidia (эффекты kde включены).

м... Ну ладно. У меня такой ☣ нету.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали: