"free" 명령에서 "공유" 메모리는 무엇을 의미합니까?

"free" 명령에서 "공유" 메모리는 무엇을 의미합니까?

출력의 네 번째 열 free이름은 다음과 같습니다.공유됨. 인터넷에서 볼 수 있는 대부분의 출력에서공유됨메모리가 0입니다. 하지만 내 컴퓨터에서는 그렇지 않습니다.

$ free -h
          total        used        free      shared  buff/cache   available
Mem:       7,7G        3,8G        1,1G        611M        2,8G        3,0G
Swap:      3,8G          0B        3,8G

이는 또한 출력에서 ​​발췌한 것입니다 ps_mem.py.

 Private  +   Shared  =  RAM used   Program
---------------------------------
 21.4 MiB +   1.0 MiB =  22.4 MiB   bash (9)
 29.2 MiB +   5.3 MiB =  34.5 MiB   Xorg
 35.9 MiB + 858.5 KiB =  36.7 MiB   tor
 42.9 MiB +   9.6 MiB =  52.5 MiB   urxvt (16)
121.0 MiB +  24.9 MiB = 145.8 MiB   okular (2)
151.8 MiB +   2.8 MiB = 154.6 MiB   soffice.bin
  3.7 GiB + 209.3 MiB =   4.0 GiB   chromium (39)
---------------------------------
                          4.6 GiB
=================================

수단공유됨메모리?

질문 14102에 대한 주요 답변은 다음과 같습니다.공유: 더 이상 존재하지 않는 개념입니다. 이전 버전과의 호환성을 위해 출력에 유지됩니다.. 제가 보기에는 충분하지 않습니다. "존재하지 않는다"는 개념은 600MB 이상의 RAM을 차지하지 않습니다.

답변1

"shared" free및 "Shmem" /proc/meminfo통계는 tmpfs 파일 시스템(메모리의 파일 시스템)과 공유 메모리(에서 할당 shmget(2))에서 사용하는 모든 메모리를 계산합니다. 이 내용은 다음과 같이 기록됩니다.https://www.kernel.org/doc/Documentation/filesystems/tmpfs.txt.

다음은 내 서버 중 하나의 예입니다.

$ free -k
              total        used        free      shared  buff/cache   available
Mem:      264036296     1275384   254696692     1182024     8064220   260536208
Swap:      63998972           0    63998972

$ grep Shmem /proc/meminfo
Shmem:           1182024 kB

$ df -BK | grep tmpfs
tmpfs        26403632K       51424K    26352208K   1% /run
tmpfs       132018148K         224K   132017924K   1% /dev/shm
tmpfs            5120K           4K        5116K   1% /run/lock
tmpfs       132018148K           0K   132018148K   0% /sys/fs/cgroup
tmpfs       251658240K     1129036K   250529204K   1% /run/shm
tmpfs        26403632K          24K    26403608K   1% /run/user/108
tmpfs        26403632K           0K    26403632K   0% /run/user/5800006

나열된 모든 tmpfs 파일 시스템의 사용된 크기(세 번째 열)를 합산하면 df그 합계가 "shared" 및 "shmem"과 동일하다는 것을 알 수 있습니다.

관련 정보