Chính xác là gì shmpagestrong sơ đồ lớn của thuật ngữ kernel và bộ nhớ. Nếu tôi đạt đến một shmpagesgiớ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ì shmpagestrong sơ đồ lớn của thuật ngữ kernel và bộ nhớ. Nếu tôi đạt đến một shmpagesgiớ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 bansheenhạc và vlcphá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
shmmnilà số lượng phân đoạn bộ nhớ chia sẻ được phép tối đa, shmmaxlà kích thước được phép của phân khúc bộ nhớ dùng chung (32 MB) và shmalllà 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ó.
ipcrmcó 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ý, sysctlcá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 ).
shmpagesso 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 ...)