「free」コマンドの「共有」メモリの意味は何ですか?


12

の出力の4番目の列のfree名前はsharedです。私がインターネットで見ることができるほとんどの出力では、共有メモリはゼロです。しかし、私のコンピューターではそうではありません。

$ 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の主な回答は次のとおりです。共有:存在しない概念。下位互換性のために出力に残されています。私には不十分に見えます。「存在しない」概念は、600 MB以上のRAMを必要としません。



試しましたman freeか?
Archemar 2016

@Archemarのマンページには、「共有:tmpfs(/ proc / meminfoのShmem)が(主に)使用するメモリ」と書かれています。それはあまり明確ではありません。より詳しい説明をお願いします。
BertS 2016

回答:


5

「共有」freeおよび「Shmem」は/proc/meminfo、tmpfsファイルシステム(メモリ内のファイルシステム)によって使用されるすべてのメモリと、共有メモリ(によって割り当てられます)をカウントしますshmget(2)。これはhttps://www.kernel.org/doc/Documentation/filesystems/tmpfs.txtに文書化されています

これは私のサーバーの1つからの例です:

$ 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ファイルシステムの使用済みサイズ(3列目)をdf合計すると、その合計は「共有」と「shmem」に等しいことがわかります。


説明していただきありがとうございます。これらtmpfsは必要ですが、削除できますか。できれば削除するにはどうすればよいですか。システムを休止状態からウェイクアップした後、この問題に何度も遭遇しました(shared
〜4GBはが使用

2
こんにちは@KasunSiyambalapitiya。Shmemには、カーネルソースのコメントとlist.kernelnewbies.org/pipermail/kernelnewbies/2013-July/…のように、GEMグラフィックバッファーも含まれています。以前のバージョンのsystemdには、グラフィックサーバーが終了したときにグラフィックバッファーを(深刻に)リークするバグがありました...それは「楽しい」ものでした。unix.stackexchange.com/questions/431982/…。その特定の問題は、グラフィカルセッション全体がクラッシュした場合、またはセッション全体から故意にログアウトした(そして再びログインした)場合にのみ当てはまる可能性があります。
sourcejedi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.