Bộ nhớ Linux quá mức


12

Tôi đã xem xét bộ nhớ quá mức trong Linux bằng cách sử dụng /proc/sys/vm/overcommit_memoryvà tôi đã đọc một vài bài viết không nói điều tương tự.

Tài liệu này , dưới tiêu đề "Đi sai hướng", tiếp tục nói, "giá trị 1: làm quá mức và 0 (mặc định): không", nhưng trong vài dòng tiếp theo, nó đề cập đến, tương tự điều này thực sự không đúng và 0 có nghĩa là "đoán xem mức độ quá mức là hợp lý". Điều đó có nghĩa là bộ nhớ quá mức không bị vô hiệu hóa khi sử dụng giá trị 0, phải không?

Nó cũng nói rằng 1 chỉ ra "không bao giờ từ chối bất kỳ malloc ()" nào, với 2 nghĩa là "chính xác về phần thừa - không bao giờ cam kết một không gian địa chỉ ảo lớn hơn không gian hoán đổi cộng với một phần overcommit_ratio của bộ nhớ vật lý."

Mặt khác , tạp chí Red Hat tuyên bố, "nếu giá trị bằng 0, thì nhân kiểm tra để xác định xem có đủ bộ nhớ để cấp yêu cầu bộ nhớ cho một cuộc gọi malloc từ một ứng dụng hay không. yêu cầu được cấp. Nếu không, nó sẽ bị từ chối và mã lỗi được trả lại cho ứng dụng. " Điều này nghe có vẻ chính xác như vô hiệu hóa overcommit.

"Nếu giá trị được đặt thành 1, thì hạt nhân sẽ cấp phát trên mức RAM vật lý và trao đổi trong hệ thống như được xác định bởi giá trị overcommit_ratio .... Nếu cài đặt trong tệp này là 2, hạt nhân cho phép tất cả phân bổ bộ nhớ , bất kể trạng thái cấp phát bộ nhớ hiện tại. " Về mặt giá trị 1 và 2, điều đó trái ngược với những gì tài liệu trước đã nói, phải không?

Có ai biết điều gì thực sự chính xác không và liệu có thể 'vô hiệu hóa' quá mức không?


Quên cái này đi! Xin lỗi vì điều đó.
Doddy

Câu trả lời:


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.