Bagaimana cara mengkonfigurasi swappiness di Linux Memory Management?

11

Parameter swappiness mengontrol kecenderungan kernel untuk memindahkan proses dari memori fisik dan ke swap disk. Apa pengaturan default dan cara mengonfigurasinya untuk meningkatkan kinerja secara keseluruhan ?

GAD3R
sumber
3
Setelah mengubah swappiness, saya merasa berguna untuk mengosongkan swap dengan swapoff -amemulai dari awal. serverfault.com/a/354384/203035
Nemo

Jawaban:

10

Kernel Linux menyediakan pengaturan tweakable yang mengontrol swappiness

$ cat /proc/sys/vm/swappiness
60  

buka /etc/sysctl.confsebagai root. Kemudian, ubah atau tambahkan baris ini ke file:

vm.swappiness = 10

untuk mengubah nilai swappiness untuk sementara coba perintah ini:

$ echo 50 > /proc/sys/vm/swappiness
Anjing kampung
sumber
1
Bagaimana cara menjawab "bagaimana mengonfigurasinya untuk meningkatkan kinerja secara keseluruhan?"
techraf
Bertukar diperlukan ketika kinerja sistem Anda lambat karena itu terjadi pada saat Anda kehabisan RAM yang dapat digunakan, yang akan memperlambat sistem Anda (bahkan mungkin aplikasi crash) bahkan jika Anda tidak memiliki swap. Jadi untuk mempermudah, bertukar terjadi karena sistem Anda menjadi macet, bukan sebaliknya - dan dalam beberapa kasus dapat menghemat hari.
Mongrel
2
Bukankah Anda juga perlu agar sudo sysctl -p /etc/sysctl.confperubahan diterapkan?
pkaramol
11

Dari Swappiness, Wikipedia

Anda dapat mengatur nilai ini dalam file virtual/proc/sys/vm/swappiness . Nilai yang disebutkan akan menentukan bagaimana ruang swap harus digunakan, di bawah ini adalah nilai dengan maksud mereka.

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.

Meskipun sebenarnya tergantung pada kebutuhan juga, jika memori fisik yang tersedia cukup, mungkin tidak ada kebutuhan besar ruang swap, dalam istilah Layman tidak akan ada kebutuhan untuk mengubah nilai default 60.

Borongan Keyshov
sumber
@ techraf memperbarui jawabannya.
Keyshov Borate
1
Dalam VMs saya menyarankan untuk mengubahnya menjadi 10 untuk berjaga-jaga.
Rui F Ribeiro
2

Dalam RedHat / CentOS nilai default adalah 60.
"Untuk meningkatkan kinerja" adalah istilah yang sangat luas. Kinerja apa yang Anda coba tingkatkan?

Apakah Anda memiliki masalah dengan memori rendah?
Apakah sistem Anda SWAP ketika masih ada memori bebas / memori cache?

Di Linux, RAM bebas = RAM terbuang, sehingga hampir semua memori bebas digunakan untuk cache disk.
Ada kasus dengan swappiness = 60 di mana halaman dalam memori dipindahkan ke SWAP jika belum diakses untuk periode waktu yang lama, tidak peduli Anda memiliki RAM yang tidak terisi.
Memindahkan beberapa halaman memori ke SWAP tidak perlu hal buruk.

Tolong beri sedikit penjelasan tentang masalah Anda untuk jawaban yang lebih rinci.

fireto
sumber