URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 51631
[ Назад ]

Исходное сообщение
"Как определить размер процесса в памяти Linux"

Отправлено Zeal_ , 15-Дек-04 16:46 
Суть вопроса:
Как в Linux определить размер "частной" памяти процесса, то есть без учета разделяемых библиотек?

Содержание

Сообщения в этом обсуждении
"Как определить размер процесса в памяти Linux"
Отправлено uldus , 17-Дек-04 22:56 
>Как в Linux определить размер "частной" памяти процесса, то есть без учета
>разделяемых библиотек?

/proc/<pid>/statm

size     total program size
resident size of memory portions                                
shared   number of pages that are shared                                      
trs      number of pages that are 'code'                                      
drs      number of pages of data/stack                                      
lrs      number of pages of library                                  
dt       number of dirty pages


"Как определить размер процесса в памяти Linux"
Отправлено Zeal_ , 20-Дек-04 10:12 
То есть, под "часной" памятью используемой процессом можно считать:
(size - share) * 4 = "частная память" кб ?

Встречный вопрос:
$ cat /proc/10687/statm
10831 10831 8359 2 0 10829 2435

drs=0, но как программа может обходится без стека?


"Как определить размер процесса в памяти Linux"
Отправлено Andrey , 20-Дек-04 22:11 
>То есть, под "часной" памятью используемой процессом можно считать:
>(size - share) * 4 = "частная память" кб ?
>
>Встречный вопрос:
>$ cat /proc/10687/statm
>10831 10831 8359 2 0 10829 2435
>
>drs=0, но как программа может обходится без стека?

А почему умножить на 4?


"Как определить размер процесса в памяти Linux"
Отправлено Zeal_ , 21-Дек-04 09:51 
>>То есть, под "часной" памятью используемой процессом можно считать:
>>(size - share) * 4 = "частная память" кб ?

>А почему умножить на 4?

Данные в statm приведены в страницах памяти.
Размер страницы 4 кб. Следовательно для получения размера памяти в кб умножаем на 4.