Tôi hiện đang thử nghiệm với các thông số hạt nhân được tìm thấy trong /proc/sys/vm
, đặc biệt là dirty_ratio
và dirty_background_ratio
.Sự khác biệt giữa vm.dirty_ratio và vm.dirty_background_ratio?
Các doc hạt nhân có những lời giải thích sau cho cả hai:
dirty_background_ratio
Có, theo phần trăm của tổng số bộ nhớ có sẵn mà chứa các trang miễn phí và các trang có thể khai phá, số lượng các trang mà tại đó background kernel chủ đề flusher sẽ bắt đầu ghi dữ liệu bẩn.
và
dirty_ratio
Có, theo phần trăm của tổng số bộ nhớ có sẵn mà chứa các trang miễn phí và các trang có thể khai phá, số lượng các trang mà tại đó một quá trình mà là ghi đĩa tạo chính nó sẽ bắt đầu ghi dữ liệu bẩn.
Trên hệ thống linux của tôi dirty_background_ratio
là 10 và dirty_ratio
là 20. Tôi hiểu rằng sự khác biệt là, dữ liệu bị ghi là ai. Vì vậy, nếu bộ nhớ được sử dụng của tôi đạt đến 10% hạt nhân bắt đầu viết lại và 20% không bao giờ nên đạt được.
Câu hỏi của tôi bây giờ là: Có giá trị cao hơn là dirty_background_ratio
và dirty_ratio
bất kỳ ý nghĩa nào hoặc chỉ là vấn đề "giá trị thấp hơn và giá trị của nó" là gì?
Vì vậy, hãy để tôi nói lại điều đó, chỉ để xem tôi có hiểu đúng không. Nếu đã đạt đến mức bẩn_background_ratio, hạt nhân bắt đầu thực hiện các đoạn mã trong nền nhưng các ứng dụng vẫn có thể ghi vào bộ đệm trang mà không bị chặn. Nếu đạt được dirty_ratio, các ứng dụng sẽ chặn bằng văn bản cho đến khi không còn đạt được dirty_ratio nữa. Đúng không? – happyMOOyear
có, tôi cũng đã cập nhật một trường hợp sử dụng nếu nó giúp. – askb
Tôi chấp nhận câu trả lời của bạn vì câu trả lời cho câu hỏi của tôi và giúp tôi rất nhiều. Cảm ơn bạn! Chỉ thêm một câu hỏi: Có một số nơi mà hành vi này được ghi chép? – happyMOOyear