Tôi thực sự sẽ không đề nghị để đưa swappiness cao hơn. Một cơ chế phổ biến trong kernel là nó sẽ đưa các trang (khối bộ nhớ) vào trao đổi để giải phóng một số bộ nhớ cho các tác vụ đang chạy khác.
"Vấn đề" đầu tiên khi kernel muốn n trang được giải phóng, m (với m <n, m là số trang được nén để giữ n) mới được tạo trong RAM, tôi không chắc điều đó có thể làm phiền kernel hay không không phải.
Dù sao đi nữa, khi bạn có các trang trong trao đổi, có thể bạn sẽ sử dụng ứng dụng này sau đó với một số trang của nó trong trao đổi. Những gì kernel làm là đưa các trang đó trở lại vào bộ nhớ vật lý nhưng không xóa chúng khỏi trao đổi (mà với hoán đổi tiêu chuẩn có thể được xem là bộ đệm , vì vậy khi ứng dụng quay lại nền, kernel không phải ghi lại các trang đó vào trao đổi chậm). Tuy nhiên với zram có lẽ không phải là một mẹo khôn ngoan, bởi vì sau đó bạn có trong bộ nhớ các trang m trong zram + n trang trở lại trong bộ nhớ!
Hạt nhân đã định mức một "tổng bộ nhớ" mà nó có thể sử dụng để thực hiện công việc của mình. Khi bạn thêm zram, nó chỉ được tính trong bộ nhớ "hoán đổi", giống như với bất kỳ trao đổi dựa trên đĩa nào, nhưng nó làm giảm "tổng bộ nhớ" thực tế và điều đó không được dự kiến / dự đoán bởi kernel. Đôi khi bạn có thể có hành vi kỳ lạ và không muốn vì điều này!
Với zram, sẽ tốt hơn khi kernel không trao đổi quá nhiều vào khu vực này khi nó chịu áp lực bộ nhớ. Và bạn phải luôn luôn có một phân vùng trao đổi đĩa cứng thực sự lớn hơn ít nhất so với kích thước tối đa zram của bạn, để hệ thống sẽ không nhận được OOM trong khi đồng thời bạn sẽ thấy nhiều không gian trống như được báo cáo bởi free
!