Bagaimana cara mengkonfigurasi swappiness?

345

Saya perlu langkah demi langkah, cara sederhana dan mudah untuk mengkonfigurasi swappiness.

Satu Nol
sumber
17
One linersudo bash -c "echo 'vm.swappiness = 15' >> /etc/sysctl.conf"
redanimalwar
8
@redanimalwar Anda juga harus menjalankan sudo sysctl -puntuk memuat nilai swappiness baru dari file sysctl.conf, jika tidak perubahan hanya berlaku pada reboot berikutnya.
waldyrious

Jawaban:

510

Kernel Linux menyediakan pengaturan tweakable yang mengontrol seberapa sering file swap digunakan, disebut swappiness.

Pengaturan swappiness nol berarti bahwa disk akan dihindari kecuali benar-benar diperlukan (Anda kehabisan memori), sedangkan pengaturan swappiness 100 berarti bahwa program akan ditukar ke disk hampir secara instan.

Sistem Ubuntu datang dengan default 60, yang berarti bahwa file swap akan digunakan cukup sering jika penggunaan memori sekitar setengah dari RAM saya. Anda dapat memeriksa nilai swappiness sistem Anda sendiri dengan menjalankan:

one@onezero:~$ cat /proc/sys/vm/swappiness
60

Karena saya memiliki RAM 4 GB, saya ingin mengubahnya menjadi 10 atau 15. File swap hanya akan digunakan ketika penggunaan RAM saya sekitar 80 atau 90 persen. Untuk mengubah nilai swappiness sistem, buka /etc/sysctl.confsebagai root . Kemudian, ubah atau tambahkan baris ini ke file:

vm.swappiness = 10

Mulai ulang agar perubahan diterapkan.

Anda juga dapat mengubah nilai saat sistem Anda masih berjalan dengan:

sysctl vm.swappiness=10

Anda juga dapat menghapus swap dengan menjalankan swapoff -adan kemudian swapon -asebagai root alih-alih reboot untuk mencapai efek yang sama.

Untuk menghitung Formula swap Anda:

free -m (total) / 100 = A

A * 10

root@onezero:/home/one# free -m
             total       used       free     shared    buffers     cached
Mem:          3950       2262       1687          0        407        952
-/+ buffers/cache:        903       3047
Swap:         1953          0       1953

jadi totalnya adalah 3950/100 = 39.5 * 10 = 395

Jadi yang dimaksud adalah ketika 10% (395 MB) ram dibiarkan, maka akan mulai menggunakan swap.


                                          Tolong . Ubuntu. Menukar

                                           Apa itu swappiness?

Parameter swappiness mengontrol kecenderungan kernel untuk memindahkan proses dari memori fisik dan ke swap disk. Karena disk jauh lebih lambat daripada RAM, ini dapat menyebabkan waktu respons yang lebih lambat untuk sistem dan aplikasi jika proses terlalu agresif keluar dari memori.

  • swappiness dapat memiliki nilai antara 0 dan 100.
  • swappiness=0:
    • Kernel versi 3.5 dan yang lebih baru: menonaktifkan swapiness.
    • Versi kernel lebih tua dari 3.5: menghindari proses swapping dari memori fisik selama mungkin.
  • swappiness=1:
    • Kernel versi 3.5 ke atas: swappiness minimum tanpa menonaktifkannya sepenuhnya.
  • swappiness=100:
    • Memberitahu kernel untuk secara agresif menukar proses dari memori fisik dan memindahkannya ke swap cache.

Lihat http://en.wikipedia.org/wiki/Swappiness .

Pengaturan default di Ubuntu adalah swappiness=60. Mengurangi nilai default swappiness mungkin akan meningkatkan kinerja keseluruhan untuk instalasi desktop Ubuntu yang khas. Nilai swappiness=10direkomendasikan, tetapi jangan ragu untuk bereksperimen.


Contoh

Mulai menggunakan swap pada 91% :

masukkan deskripsi gambar di sini Karena saya telah mengkonfigurasi sistem saya & vm untuk menggunakan RAM pada 90% , pada 90% tidak ada swapping.

Setelah itu saya membuka beberapa aplikasi seperti Firefox & Shutter, dan mulai bertukar karena penggunaan RAM di atas 90% .

Satu Nol
sumber
118
Swappiness of 100 tidak membuat program langsung diganti, juga nilai 60 atau 90 berarti swap tidak digunakan ketika ram 60 atau 90% penuh. Ini adalah rasio preferensi untuk mencuri halaman dari cache vs. menukar banyak hal untuk membebaskan sebagian memori ketika tidak ada cukup. Nilai rendah akan sangat suka mencuri halaman dari cache, dan nilai tinggi sangat memilih untuk mencoba dan menukar halaman. Pengaturan hanya memiliki efek setelah memori (hampir) semua digunakan, dan kernel harus memilih cara membebaskannya.
psusi
67
Anda perlu menunjukkan bahwa RAM yang TIDAK ditempati oleh menjalankan program digunakan sebagai cache disk ... jadi, dengan mengurangi swappiness, Anda meningkatkan peluang program untuk tidak ditukar, tetapi pada saat yang sama mengurangi ukurannya. cache disk, yang dapat membuat akses disk lebih lambat. Jadi efek pengaturan ini pada kinerja aktual tidak semudah itu ... Anda dipersilakan untuk bereksperimen tentu saja tetapi saya menduga defaultnya ditetapkan oleh orang-orang yang cukup memahami dalam subjek :)
Sergey
14
@Sergey dan ironi dari itu adalah mereka yang memiliki RAM kecil kemungkinan besar akan mencoba setiap trik yang dapat mereka temui untuk meningkatkan kinerja dan lebih cenderung menjadi orang-orang yang 60 atau bahkan lebih tinggi akan menjadi sosok terbaik. Beberapa dari kita mengaturnya menjadi 10 karena kita memiliki ton RAM tidak mendapatkan sebanyak mereka akan kehilangan jika mereka melakukannya.
Jon Hanna
6
@ Freedom_Ben: Lihat linuxatemyram.com :)
Sergey
5
Hanya meninggalkan diskusi serupa di sini - unix.stackexchange.com/questions/88693/...
Elijah Lynn