Использование памяти процессами
Команда svmon -P позволяет просмотреть статистику использования памяти для всех запущенных процессов системы.
# svmon -P
--------------------------------------------------------------------------------
Pid Command Inuse Pin Pgsp Virtual 64-bit Mthrd 16MB
16264 IBM.ServiceRM 10075 3345 3064 13310 Н Д Н
Разм.Стр. Занято Закр. Пр.пдкчк. Виртуальн.
мал. 4 KB 10075 3345 3064 13310
L 16 МБ 0 0 0 0
Vsid Esid Тип Описание PSize Inuse Pin Pgsp Virtual
f001e d раб. текст общ. библ. s 4857 0 36 6823
0 0 раб. сегм. ядра s 4205 3335 2674 5197
b83f7 2 раб. частн. процесс s 898 2 242 1098
503ea f раб. данные общ. библ. s 63 0 97 165
c8439 1 лич. код,/dev/hd2:149841 s 28 0 - -
883f1 - раб. s 21 8 14 26
e83dd - лич. /dev/hd2:71733 s 2 0 - -
f043e 4 раб. сегм. общ. пам. s 1 0 1 1
c0438 - лич. больш. файл /dev/hd9var:243 s 0 0 - -
b8437 3 свз. связ. с sid a03f4 s 0 0 - -
583eb - лич. больш. файл /dev/hd9var:247 s 0 0 - -
--------------------------------------------------------------------------------
Pid Command Inuse Pin Pgsp Virtual 64-bit Mthrd 16MB
17032 IBM.CSMAgentR 9791 3347 3167 12944 Н Д Н
Разм.Стр. Занято Закр. Пр.пдкчк. Виртуальн.
мал. 4 KB 9791 3347 3167 12944
L 16 МБ 0 0 0 0
Vsid Esid Тип Описание PSize Inuse Pin Pgsp Virtual
f001e d раб. текст общ. библ. s 4857 0 36 6823
0 0 раб. сегм. ядра s 4205 3335 2674 5197
400 2 раб. частн. процесс s 479 2 303 674
38407 f раб. данные общ. библ. s 120 0 127 211
a83f5 1 лич. код,/dev/hd2:149840 s 99 0 - -
7840f - раб. s 28 10 27 39
e83dd - лич. /dev/hd2:71733 s 2 0 - -
babf7 - лич. /dev/hd2:284985 s 1 0 - -
383e7 - лич. больш. файл /dev/hd9var:186 s 0 0 - -
e03fc - лич. больш. файл /dev/hd9var:204 s 0 0 - -
f839f 3 свз. связ. с sid 5840b s 0 0 - -
[...]
Вывод команды содержит подробные сведения как о глобальном использовании
памяти процессами, так и сведения о том, как каждый процесс использует
различные сегменты памяти. По умолчанию процессы сортируются по убыванию числа
занятых страниц. Правило сортировки можно изменить с помощью команды
svmon с любым из следующих флагов:
-u, -p, -g
или -v.Просмотреть общие сведения о 15 процессах, использующих самый большой объем памяти системы, можно с помощью следующей команды:
# svmon -Pt15 | perl -e 'while(<>){print if($.==2||$&&&!$s++);$.=0 if(/^-+$/)}'
--------------------------------------------------------------------------------
Pid Command Inuse Pin Pgsp Virtual 64-bit Mthrd 16MB
16264 IBM.ServiceRM 10075 3345 3064 13310 Н Д Н
17032 IBM.CSMAgentR 9791 3347 3167 12944 Н Д Н
21980 zsh 9457 3337 2710 12214 Н Н Н
22522 zsh 9456 3337 2710 12213 Н Н Н
13684 getty 9413 3337 2710 12150 Н Н Н
26590 perl5.8.0 9147 3337 2710 12090 Н Н Н
7514 sendmail 9390 3337 2878 12258 Н Н Н
14968 rmcd 9299 3340 3224 12596 Н Д Н
18940 ksh 9275 3337 2710 12172 Н Н Н
14424 ksh 9270 3337 2710 12169 Н Н Н
4164 errdemon 9248 3337 2916 12255 Н Н Н
3744 cron 9217 3337 2770 12125 Н Н Н
11424 rpc.mountd 9212 3339 2960 12290 Н Д Н
21564 rlogind 9211 3337 2710 12181 Н Н Н
26704 rlogind 9211 3337 2710 12181 Н Н Н
Процесс с pid 16264 занимает больше всего памяти. В столбце Команда указывается имя команды, в данном случае - IBM®.ServiceRM. В столбце Занято указывается общее число страниц физической памяти, расположенных в сегментах процесса. В данном случае оно равно 10075. Размер страницы - 4 КБ. В столбце Закр. указывается общее число закрепленных страниц, расположенных в сегментах процесса. В данном случае оно равно 3345. В столбце Пр. подкачки указывается общее число страниц пространства подкачки, выделенных процессу. В данном случае оно равно 3064. Столбец Вирт. (общее число страниц виртуальной памяти процесса) содержит значение 13310.
Во втором разделе вывода содержится информация о сегментах процессов,
указанных в первом разделе вывода. К ним относятся идентификаторы виртуальных
(ВСег) и эффективных (Эсег) сегментов. Значение
ЭСег соответствует реестру сегментов, который применяется для
доступа к соответствующим страницам. Эта информация включает в себя тип
сегмента и его описание (содержащее имя тома и i-узел файла в случае сегмента
постоянной памяти). Кроме того, отчет содержит информацию о
размере страниц сегмента, где s указывает на страницы по
4 КБ, а L - на страницы по 16 МБ, число страниц в оперативной памяти (
Занято), число закрепленных страниц в памяти (Закр.), число страниц в пространстве подкачки
(Пр.пдкчк.), а также число виртуальных страниц (Виртуальн.).
# svmon -S f001e 400 e83dd -l -r -j
Vsid Esid Тип Описание PSize Inuse Pin Pgsp Virtual
f001e d раб. текст общ. библ. s 4857 0 36 6823
Диап. адр.: 0..60123
Сегмент текста общ. библ.
400 2 раб. частн. процесс s 480 2 303 675
Диап. адр.: 0..969 : 65305..65535
pid(s)=17032
e83dd - лич. /dev/hd2:71733 s 2 0 - -
/usr/lib/nls/loc/uconvTable/ISO8859-1
Диап. адр.: 0..1
pid(s)=17552, 17290, 17032, 16264, 14968, 9620
В поле Диапазон адресов указывается один диапазон для сегментов постоянной памяти и сегментов клиентов, и два диапазона для рабочих сегментов. Диапазон адресов сегментов постоянной памяти и сегментов клиентов имеет вид '0..x,' где x - максимальное число виртуальных страниц, когда либо выделявшихся процессу. Для рабочих сегментов указывается значение вида '0..x : y..65535', где диапазон 0..x содержит глобальные данные, а диапазон y..65535 содержит стек. У первого диапазона изменяется правая граница, а у второго - левая. Таким образом, пространство адресов рабочего сегмента представляет собой два диапазона, которые увеличиваются навстречу друг другу. Все вышесказанное относится только к личным рабочим сегментам процесса и не относится к сегментам ядра и общих библиотек.
В приведенном выше примере указан личный рабочий сегмент процесса 400; его диапазон адресов равен 0..969 : 65305..65535. В сегменте f001e хранится рабочий текстовый сегмент общей библиотеки; его диапазон равен 0..60123.
Некоторые сегменты могут применяться несколькими процессами. В этом случае
все страницы из этого сегмента будут прибавлены к значению
Занято каждого из процессов. Таким образом, сумма
всех значений Занято может быть больше общего числа
страниц физической памяти. То же самое относится к полям
Пр. подкачки и Закр..
Значения в итоговом разделе равны сумме полей
Занято, Закр. и
Пр. подк., а также значений Виртуальн.
всех используемых процессами сегментов.
В приведенном выше примере сегмент e83dd используется несколькими
процессами со следующими PID: 17552, 17290, 17032, 16264, 14968 и 9620.