Ý nghĩa của bộ nhớ `shared` trong lệnh` free` là gì?


12

Cột thứ tư trong đầu ra của freeđược đặt tên được chia sẻ . Trên hầu hết các kết quả đầu ra tôi có thể thấy trên internet, bộ nhớ dùng chung bằng không. Nhưng đó không phải là trường hợp trên máy tính của tôi:

$ 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

Đây cũng là một đoạn trích của đầu ra của 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
=================================

Ý nghĩa của một bộ nhớ chia sẻ là gì?

Câu trả lời chính trong Câu hỏi 14102 nói: chia sẻ: một khái niệm không còn tồn tại. Nó còn lại trong đầu ra cho khả năng tương thích ngược . Có vẻ không đủ với tôi. Một khái niệm "không tồn tại" không mất hơn 600 MB RAM.


4
Bản sao có thể có của việc sử dụng bộ nhớ thực

bạn đã thử man freechưa
Archemar

Trang web @Archemar nói: "shared: Bộ nhớ được sử dụng (phần lớn) bởi tmpfs (Shmem in / Proc / meminfo)". Điều đó không rõ ràng lắm; Tôi muốn một lời giải thích công phu hơn.
BertS

Câu trả lời:


5

"Được chia sẻ" trong freevà "Shmem" /proc/meminfođếm tất cả bộ nhớ được sử dụng bởi hệ thống tệp tmpfs (một hệ thống tệp trong bộ nhớ) và cả bộ nhớ dùng chung (được cấp phát bởi shmget(2)). Đây là tài liệu trong https://www.kernel.org/doc/Documentation/filesystems/tmpfs.txt .

Đây là một ví dụ từ một trong các máy chủ của tôi:

$ 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

Nếu bạn tổng hợp kích thước được sử dụng (cột thứ 3) của tất cả các hệ thống tệp tmpfs được liệt kê bởi df, bạn sẽ thấy tổng bằng "chia sẻ" và "shmem".


Cảm ơn đã giải thích, nhưng những thứ đó tmpfslà cần thiết, tôi có thể xóa chúng không và nếu có thể làm cách nào để xóa chúng?. Tôi đã gặp vấn đề này nhiều lần sau khi đánh thức hệ thống khỏi chế độ ngủ đông (~ 4GB được thực hiện shared)
Kasun Siyambalapitiya

2
Xin chào @KasunSiyambalapitiya. Shmem cũng bao gồm các bộ đệm đồ họa GEM, theo nhận xét và danh sách nguồn kernel.kernelnewbies.org/pipermail/kernelnewbies / 2013-July / . Một số phiên bản trước của systemd có lỗi làm rò rỉ bộ đệm đồ họa (nghiêm trọng) khi máy chủ đồ họa thoát ... đó là "niềm vui". unix.stackexchange.com/questions/431982/ . Vấn đề cụ thể đó chỉ có thể áp dụng nếu toàn bộ phiên đồ họa của bạn bị hỏng hoặc nếu bạn cố tình đăng xuất khỏi toàn bộ phiên (và quay lại lần nữa).
sourcejedi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.