Linux swapiness - Menyesuaikan pengaturan Kernel VM

9

Sebelum Anda membaca ini, harap dicatat bahwa saya memahami manfaat caching. Saya akrab dengan dogma bahwa ram yang tidak digunakan adalah ram yang terbuang.

Pertanyaan ini adalah salah satu yang telah saya adaptasi dari pertanyaan sebelumnya:

menghapus ram di-cache linux

Dalam pertanyaan itu saya ingin tahu tentang bagaimana menyesuaikan server saya menggunakan dan cache ram. Sistem ini cukup dinamis sehingga saya percaya bahwa file cache tidak benar-benar memberi saya banyak keuntungan. Selain itu, kami memiliki kode pada server yang harus dengan cepat mengakses ram dalam jumlah besar dalam waktu singkat untuk memproses file video dan saya percaya bahwa saya akan melihat manfaat kinerja dari menyerahkan ram secara langsung daripada membersihkannya dari cache dan kemudian menyerahkannya.

Saya ingin mengetahui apakah ada di antara Anda yang memiliki pengalaman menyesuaikan nilai default 60 pada file berikut (ini kebetulan berada di server Ubuntu):

/proc/sys/vm/swappiness  

Dan jika demikian, apa dampaknya yang Anda lihat. Jika saya mengganti nilai default 60 dengan 30 akankah saya melihat lebih sedikit swapping dan lebih banyak menggunakan kembali basi cache? Apakah saya mendekati 0 atau 100 untuk mengurangi swapiness dan meningkatkan penggunaan kembali cache?

Akhirnya, ada yang tahu mengapa default diatur ke 60?

CATATAN: Jika mendekati 0, Linux akan lebih suka menyimpan aplikasi dalam RAM dan tidak menumbuhkan cache. Jika mendekati 100, Linux akan lebih memilih untuk menukar aplikasi, dan memperbesar cache sebanyak mungkin. Standarnya adalah sehat 60. - Terima kasih atas tautan di bawah ini, 3dInfluence.

Patrick R
sumber

Jawaban:

6

Sunting: Tulis ulang jawabannya sehingga lebih pendek dan lebih jelas saya harap :)

Anda benar-benar perlu memahami cara kerja subsistem VM secara keseluruhan untuk mulai mengubah-ubah merdu atau Anda mungkin menemukan bahwa Anda tidak mendapatkan hasil yang Anda harapkan. Artikel ini adalah titik awal yang cukup bagus tentang bagaimana pengaturan ini bekerja bersama dengan kemiringan desktop.

Jadi lebih ke pertanyaan Anda. Swappiness mengontrol ketika subsistem VM mendapatkan kembali halaman proses tabel dengan membuka dan paging mereka, alias bertukar. Tunable ini berfungsi dengan memberi tahu subsistem VM untuk mencari halaman yang akan ditukar ketika% memori yang dipetakan untuk memproses tabel halaman + nilai swappiness> 100. Jadi pengaturan 60 akan menyebabkan sistem mulai membuka halaman basi dari halaman proses tabel ketika menggunakan lebih dari 40% dari memori sistem Anda. Jika Anda ingin mengizinkan program Anda menggunakan lebih banyak memori dengan mengorbankan cache Anda ingin menurunkan nilai swappiness. Anda juga ingin melihat / proc / sys / vm / min_free_kbytes dan / proc / sys / vm / vfs_cache_pressure. Karena ini juga akan mengontrol berapa banyak memori yang disimpan dalam cadangan dan seberapa agresif caching.

Pengaruh 3d
sumber
@ 3dinfluence - Saya telah mengerjakan artikel yang Anda referensikan di atas. Sumber Hebat!
Patrick R
1
linuxinsight.com/proc_sys_vm_hierarchy.html akan memberi Anda satu atau dua kalimat tentang apa yang masing-masing lakukan. Tetapi saya mendapatkan informasi tentang bagaimana swappiness bekerja dari sebuah buku berjudul "Performance Tuning for Linux Servers"
3dinfluence
+1 terima kasih 3dinfluence. Sejauh ini buku itu sangat mendidik.
Patrick R
Itu luar biasa .... apakah Anda dapat meningkatkan kinerja aplikasi Anda?
3dinfluence
Saya telah dapat meningkatkan kinerja. Juga, saya menemukan bahwa perintah berikut membantu selama tweeking: # sysctl -w vm.swappiness = 40
Patrick R