Chính xác là gì shmpages
trong sơ đồ lớn của thuật ngữ kernel và bộ nhớ. Nếu tôi đạt đến một shmpages
giới hạn, điều đó có nghĩa là gì?
Tôi cũng tò mò nếu điều này áp dụng cho nhiều hơn linux
Chính xác là gì shmpages
trong sơ đồ lớn của thuật ngữ kernel và bộ nhớ. Nếu tôi đạt đến một shmpages
giới hạn, điều đó có nghĩa là gì?
Tôi cũng tò mò nếu điều này áp dụng cho nhiều hơn linux
Câu trả lời:
Các quy trình chế độ người dùng có thể sử dụng Giao tiếp liên tiến trình (IPC) để liên lạc với nhau, phương pháp nhanh nhất để đạt được điều này là sử dụng các trang bộ nhớ dùng chung ( shmpages
).
Điều này xảy ra ví dụ nếu phát banshee
nhạc và vlc
phát video, cả hai quá trình phải truy cập pulseaudio
để phát ra một số âm thanh.
Cố gắng tìm hiểu thêm về cấu hình và cách sử dụng bộ nhớ dùng chung với một số lệnh sau:
Hiển thị cấu hình bộ nhớ dùng chung:
sysctl kernel.shm{max,all,mni}
Theo mặc định (Linux 2.6), điều này sẽ xuất ra:
kernel.shmmax = 33554432
kernel.shmall = 2097152
kernel.shmmni = 4096
shmmni
là số lượng phân đoạn bộ nhớ chia sẻ được phép tối đa, shmmax
là kích thước được phép của phân khúc bộ nhớ dùng chung (32 MB) và shmall
là tổng kích thước tối đa của tất cả các phân đoạn (được hiển thị dưới dạng trang, dịch thành 8 GB)
Bộ nhớ dùng chung hiện đang được sử dụng:
grep Shmem /proc/meminfo
Nếu được bật bởi phân phối:
ls -l /dev/shm
ipcs
là một công cụ tuyệt vời để tìm hiểu thêm về việc sử dụng IPC:
ipcs -m
sẽ xuất mức sử dụng bộ nhớ dùng chung, bạn có thể thấy các phân đoạn được phân bổ với kích thước tương ứng.
ipcs -m -i <shmid>
hiển thị thêm thông tin về một phân đoạn được chỉ định, bao gồm cả PID của quá trình tạo (cpid) và cuối cùng (lpid) bằng cách sử dụng nó.
ipcrm
có thể xóa các phân đoạn bộ nhớ được chia sẻ (nhưng lưu ý rằng những phân đoạn đó chỉ bị xóa nếu không có quá trình nào khác được gắn vào chúng, xem cột nattach trong ipcs -m
).
ipcrm -m <shmid>
Hết bộ nhớ dùng chung có thể là một chương trình sử dụng nhiều bộ nhớ dùng chung, một chương trình không tách rời các phân đoạn được phân bổ hợp lý, sysctl
các giá trị được sửa đổi , ...
Đây không phải là Linux cụ thể và cũng áp dụng cho (hầu hết) các hệ thống UNIX (bộ nhớ dùng chung xuất hiện lần đầu tiên trong CB UNIX ).
shmpages
so với kernel.shm{max,all,mni}
cái gì?
grep Shmem /proc/meminfo
Điều này ngăn UUC (Sử dụng mèo vô dụng ...)