O comando lsof
deve fornecer a maioria dessas informações.
Você pode grep sua saída para o shmid
, que você pode encontrar usando ipcs -m
.
Digamos que eu veja um arquivo chamado /dev/shm/some.segment
Como posso descobrir (com linhas de comando):
Os processos vinculados a ele?
O nó NUMA localiza?
Para # 2, posso escrever um pequeno programa em C com move_pages()
para descobrir. Apenas imagine se há algo útil.
Estou no CentOS 7 se isso for importante.
Obrigado!
================
Update (Tentei a sugestão de harrymc):
[myuser@mylinux ~]$ ipcs -pm
------ Shared Memory Creator/Last-op PIDs --------
shmid owner cpid lpid
131072 myuser 2999 3144
163841 myuser 2999 3144
262146 myuser 3226 3288
753667 myuser 3288 2006
655364 myuser 3226 2006
360453 myuser 2819 4036
622598 myuser 3226 2006
589831 myuser 3226 2006
524296 myuser 3226 2006
786441 myuser 3226 2006
819210 myuser 3226 2006
917515 myuser 4042 4050
950284 myuser 4099 4099
1048589 myuser 4106 4839
[myuser@mylinux ~]$ sudo grep 131072 /proc/*/maps
/proc/2006/maps:7f252828b000-7f252830b000 rw-s 00000000 00:04 131072 /SYSV00000000 (deleted)
/proc/2999/maps:7f2854017000-7f2854097000 rw-s 00000000 00:04 131072 /SYSV00000000 (deleted)
[myuser@mylinux ~]$ sudo grep 163841 /proc/*/maps
/proc/2006/maps:7f2527e8b000-7f252828b000 rw-s 00000000 00:04 163841 /SYSV00000000 (deleted)
/proc/2999/maps:7f2844a12000-7f2844e12000 rw-s 00000000 00:04 163841 /SYSV00000000 (deleted)
[myuser@mylinux ~]$ sudo grep 262146 /proc/*/maps
/proc/2006/maps:7f2527e2b000-7f2527e8b000 rw-s 00000000 00:04 262146 /SYSV00000000 (deleted)
/proc/3226/maps:7f28ce834000-7f28ce894000 rw-s 00000000 00:04 262146 /SYSV00000000 (deleted)
[myuser@mylinux ~]$ sudo grep 1048589 /proc/*/maps
/proc/2006/maps:7f2524c99000-7f2525499000 rw-s 00000000 00:04 1048589 /SYSV00000000 (deleted)
/proc/4106/maps:7fe5af800000-7fe5b0000000 rw-s 00000000 00:04 1048589 /SYSV00000000 (deleted)
[myuser@mylinux ~]$ ll /dev/shm/
total 1000
-rwx------ 1 myuser myuser 67108904 Sep 23 09:42 pulse-shm-1190977916
-rwx------ 1 myuser myuser 67108904 Sep 23 09:48 pulse-shm-1218108161
-rwx------ 1 myuser myuser 67108904 Sep 23 10:03 pulse-shm-1238825830
-rwx------ 1 myuser myuser 67108904 Sep 23 10:03 pulse-shm-13579424
-rwx------ 1 myuser myuser 67108904 Sep 23 09:42 pulse-shm-2544170821
-rwx------ 1 gdm gdm 67108904 Sep 23 09:42 pulse-shm-2626080508
-rwx------ 1 gdm gdm 67108904 Sep 23 09:42 pulse-shm-3289673610
-rwx------ 1 myuser myuser 67108904 Sep 23 09:42 pulse-shm-4099527713
-rwx------ 1 myuser myuser 67108904 Sep 23 09:42 pulse-shm-52369360
[myuser@mylinux ~]$ lsof /dev/shm/pulse-shm-1190977916
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
pulseaudi 2663 myuser mem REG 0,19 67108904 34513 /dev/shm/pulse-shm-1190977916
[myuser@mylinux ~]$ ps aux | grep 2663
myuser 2663 0.2 0.0 640560 8044 ? S<l 09:42 0:03 /usr/bin/pulseaudio --start --log-target=syslog
myuser 8144 0.0 0.0 112712 972 pts/0 S+ 10:05 0:00 grep --color=auto 2663
[myuser@mylinux ~]$
O comando lsof
deve fornecer a maioria dessas informações.
Você pode grep sua saída para o shmid
, que você pode encontrar usando ipcs -m
.