Вы можете посмотреть / proc /
(или pmap -x
, если ваша ОС поддерживает) идентификаторы заинтересованных процессов и сравнение результатов для определения областей разделяемой памяти. Это включает в себя сегменты разделяемой памяти через вызовы shmget, а также любые разделяемые библиотеки и файлы.
Редактировать: как mr.spuratic указал в своем ответе здесь , есть более подробная информация о стороне ядра
Вы можете посмотреть RSS-канал процесса с помощью ps, однако он не принимает во внимание все общие страниц. Чтобы увидеть RSS для конкретного процесса, см. Ниже инструмент
cv@thunder:~$ ps -o rss,pid,comm -p $$,7023
RSS PID COMMAND
22060 7023 xfwm4
6876 18094 bash
smem
, который предоставляет более подробную информацию с учетом общих страниц. См. Ниже вывод того же процесса
cv@thunder:~$ smem -t |egrep "RSS|$$|7023"
PID User Command Swap USS PSS RSS
9852 cv grep -E RSS|18094|7023 0 340 367 2220
18094 cv bash 0 3472 4043 6876
7023 cv xfwm4 --display :0.0 --sm-c 0 5176 7027 22192
From man smem
:
smem reports physical memory usage, taking shared memory pages into account. Unshared memory is reported as the USS (Unique Set Size). Shared
memory is divided evenly among the processes sharing that memory. The unshared memory (USS) plus a process's proportion of shared memory is
reported as the PSS (Proportional Set Size). The USS and PSS only include physical memory usage. They do not include memory that has been
swapped out to disk.