Hành vi này được kiểm soát thông qua cài đặt kernel được gọi là vm.swappiness
, có thể được đặt trong phạm vi từ 0 đến 100. Giá trị mặc định là 60 sẽ khiến hệ thống hoán đổi phần nào trước khi bộ nhớ vật lý hoàn toàn đầy đủ, giúp duy trì hiệu suất dưới áp suất bộ nhớ, trong khi không trao đổi quá nhiều để làm giảm hiệu suất đến đập .
Điều này có thể được vô hiệu hóa bằng cách đặt swappiness thành 0, trong trường hợp đó hệ thống sẽ không trao đổi trừ khi thực sự cần thiết. Điều này có thể có ý nghĩa nếu bạn thường có nhiều RAM miễn phí. Tuy nhiên, hiệu suất sẽ rơi xuống một vách đá ngay khi bộ nhớ vật lý của hệ thống của bạn bị lấp đầy hoàn toàn do hệ thống đột nhiên bị buộc phải trao đổi vào thời điểm không phù hợp khi ứng dụng cần bộ nhớ, thay vì trước và không được đề xuất trong trường hợp của bạn là máy chủ của bạn đang chạy gần đầy
Có lẽ tốt hơn là bạn nên đặt swappiness thành giá trị thấp (nhưng không khác) như 10, điều này sẽ giảm sự hoán đổi không cần thiết trong khi không đợi đến giây phút cuối cùng để giải phóng RAM khi chương trình cần. Cài đặt tốt nhất phụ thuộc vào môi trường của bạn, vì vậy hãy thử nghiệm với các cài đặt khác nhau cho đến khi bạn nhận được kết quả tốt nhất.
Để thay đổi cài đặt swappiness, hãy viết giá trị mong muốn vào /proc/sys/vm/swappiness
sử dụng echo
làm gốc. Để thay đổi vĩnh viễn, thêm một vm.swappiness
dòng đến /etc/sysctl.conf
(thay thế 10 bằng giá trị mong muốn của bạn khi cần):
vm.swappiness = 10
swap
.