"Free" komutunda "paylaşılan" hafızanın anlamı nedir?


12

Çıktısında dördüncü sütun paylaşılanfree olarak adlandırılır . İnternette görebildiğim çoğu çıkışta, paylaşılan bellek sıfır. Ama bilgisayarımda durum böyle değil:

$ 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

İşte ayrıca çıktısının bir alıntısı 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
=================================

Paylaşılan bir hafızanın anlamı nedir ?

Soru 14102'deki ana cevap: paylaştı: artık var olmayan bir kavram. Geriye dönük uyumluluk için çıktıda kalır . Bana yetersiz gözüküyor. "Var olmayan" bir kavram 600+ MB RAM almaz.



denedin man freemi
Archemar

@Archemar manpage diyor: "paylaşılan: (çoğunlukla) tmpfs tarafından kullanılan bellek (Shmem in / proc / meminfo)". Bu çok açık değil; Daha ayrıntılı bir açıklama istiyorum.
BertS

Yanıtlar:


5

"Paylaşılan" freeve "Shmem" /proc/meminfo, tmpfs dosya sistemi (bellekteki bir dosya sistemi) ve aynı zamanda paylaşılan bellek (tarafından ayrılmış) tarafından kullanılan tüm belleği sayar shmget(2). Bu, https://www.kernel.org/doc/Documentation/filesystems/tmpfs.txt dosyasında belgelenmiştir .

İşte sunucularımdan birinden bir örnek:

$ 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

Listelenen tüm tmpfs dosya sistemlerinin kullanılmış boyutunu (3. sütun) dftoplarsanız, toplamın "paylaşılan" ve "shmem" e eşit olduğunu görürsünüz.


Açıkladığınız için teşekkürler, ancak bunlar tmpfsgerekli mi, bunları silebilir miyim ve mümkünse nasıl silebilirim? Sistemi hazırda bekletme modundan çıkardıktan sonra birçok kez bu sorunla karşılaştım (~ 4GB tarafından alınır shared)
Kasun Siyambalapitiya

2
Merhaba @KasunSiyambalapitiya. Shmem, çekirdek kaynak yorumları ve listelerine göre GEM grafik tamponlarını da içerir . Systemd'in önceki bazı sürümlerinde, grafik sunucusundan çıkıldığında (gerçekten) grafik arabelleklerini (ciddi) sızdıran bir hata vardı. unix.stackexchange.com/questions/431982/… . Bu özel sorun, yalnızca grafik oturumunuzun tamamı kilitleniyorsa veya tüm oturumunuzdan kasıtlı olarak çıkış yaptıysanız (ve tekrar giriş yaptıysanız) geçerli olabilir.
sourcejedi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.