Làm cách nào để định cấu hình swappiness trong Quản lý bộ nhớ Linux?


11

Tham số swappiness kiểm soát xu hướng của kernel để di chuyển các tiến trình ra khỏi bộ nhớ vật lý và vào đĩa trao đổi. Cài đặt mặc định là gì và cách định cấu hình để cải thiện hiệu suất tổng thể ?


3
Sau khi thay đổi swappiness, tôi thấy hữu ích để làm trống trao đổi với swapoff -ađể bắt đầu lại từ đầu. serverfault.com/a/354384/203035
Nemo

Câu trả lời:


10

Nhân Linux cung cấp một cài đặt có thể điều chỉnh để kiểm soát swappiness

$ cat /proc/sys/vm/swappiness
60  

mở /etc/sysctl.confnhư root. Sau đó, thay đổi hoặc thêm dòng này vào tệp:

vm.swappiness = 10

để thay đổi giá trị swappiness tạm thời, hãy thử lệnh này:

$ echo 50 > /proc/sys/vm/swappiness

1
Làm thế nào để nó trả lời "làm thế nào để cấu hình đó để cải thiện hiệu suất tổng thể?"
techraf

Hoán đổi là cần thiết khi hệ thống của bạn hoạt động chậm vì nó xảy ra vào những lúc bạn hết RAM có thể sử dụng, điều này sẽ làm chậm hệ thống của bạn (thậm chí có thể bị hỏng ứng dụng) ngay cả khi bạn không trao đổi. Vì vậy, để đơn giản hóa mọi thứ, trao đổi xảy ra do hệ thống của bạn đang bị sa lầy, thay vì cách khác - và trong một số trường hợp, nó có thể tiết kiệm trong ngày.
Mongrel

2
Bạn cũng không cần phải sudo sysctl -p /etc/sysctl.confthay đổi để có hiệu lực?
pkaramol

11

Từ Swappiness, Wikipedia

Bạn có thể đặt giá trị này trong một tệp ảo/proc/sys/vm/swappiness Giá trị được đề cập sẽ quyết định cách sử dụng không gian hoán đổi, bên dưới là các giá trị với ý định của chúng.

vm.swappiness = 0   # Swap is disabled. In earlier versions, this meant that the kernel would swap only to avoid an out of memory condition, but in later versions this is achieved by setting to 1.
vm.swappiness = 1   # Kernel version 3.5 and over, as well as kernel version 2.6.32-303 and over: Minimum amount of swapping without disabling it entirely.
vm.swappiness = 10  # This value is sometimes recommended to improve performance when sufficient memory exists in a system, this value *10* could be considered for the performance being expected. 
vm.swappiness = 60  # The default value.
vm.swappiness = 100 # The kernel will swap aggressively.

Mặc dù nó thực sự phụ thuộc vào nhu cầu, nhưng nếu bộ nhớ vật lý có sẵn là đủ, có thể không có nhu cầu lớn về không gian hoán đổi, theo thuật ngữ của Layman, sẽ không cần phải thay đổi giá trị mặc định 60.


@Techraf cập nhật câu trả lời.
Keyshov Borate

1
Trong máy ảo, tôi khuyên bạn nên thay đổi nó thành 10 chỉ trong trường hợp.
Rui F Ribeiro

2

Trong RedHat / CentOS, giá trị mặc định là 60.
"Để cải thiện hiệu suất" là thuật ngữ rất rộng. Hiệu suất nào bạn đang cố gắng cải thiện?

Bạn có vấn đề với bộ nhớ thấp?
Hệ thống của bạn có SWAP khi vẫn còn bộ nhớ / bộ nhớ đệm không?

Trong Linux RAM miễn phí = RAM lãng phí, vì vậy hầu như tất cả bộ nhớ trống được sử dụng cho bộ đệm đĩa.
Có những trường hợp với swappiness = 60 trong đó các trang trong bộ nhớ được chuyển sang SWAP nếu chúng không được truy cập trong thời gian dài, bất kể bạn có RAM chưa được phân bổ.
Di chuyển một số trang bộ nhớ sang SWAP không phải là một điều xấu.

Xin làm sáng tỏ thêm về vấn đề của bạn để có câu trả lời chi tiết hơn.

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.