Pengaturan swappiness adalah perubahan pada cara Linux menghitung manfaat / kelemahan untuk bertukar dalam skenario tertentu. Swappiness tinggi tidak akan menyebabkan sistem bertukar ketika tidak perlu, dan swappiness rendah, asalkan Anda tidak menonaktifkan swapping sepenuhnya, tidak akan mencegah sistem Anda bertukar ketika benar-benar harus.
Swappiness default sekitar 60 atau lebih adalah kompromi yang sangat baik untuk memastikan kinerja sistem Anda yang baik dengan memastikan tidak sulit untuk mengalokasikan memori cache sementara ada memori program yang dialokasikan tidak terpakai.
Ingatlah bahwa jika Anda memiliki banyak RAM untuk semua proses Anda ditambah cache, yang biasanya harus menjadi kasus jika Anda memiliki banyak RAM fisik, bertukar juga seharusnya tidak menjadi masalah bagi Anda. Cara yang disukai untuk memperbaiki masalah pertukaran yang terlalu banyak adalah dengan mengurangi penggunaan RAM oleh proses, dan / atau untuk meningkatkan RAM fisik. Mengurangi swappiness akan memiliki efek negatif jika yang benar-benar Anda butuhkan adalah lebih banyak RAM.
Mengapa kebanyakan orang merekomendasikan untuk mengurangi swappiness menjadi 10-20?
Karena kebanyakan percaya bahwa bertukar = buruk dan bahwa jika Anda tidak mengurangi swappiness, sistem akan bertukar ketika itu benar-benar tidak perlu. Tak satu pun dari itu benar. Orang-orang mengasosiasikan swapping dengan waktu di mana sistem mereka macet - namun, sebagian besar swapping karena sistem macet, bukan sebaliknya. Memang benar bahwa ada saat-saat tertentu ketika swapping dapat memiliki penalti kinerja yang nyata, tetapi sistem sudah memperhitungkan bahwa dalam keputusannya untuk bertukar, dan memutuskan bahwa tidak melakukan hal itu akan memiliki penalti keseluruhan yang lebih besar dalam kinerja sistem atau stabilitas yang mungkin kemudian menjadi nyata. Secara keseluruhan, pengaturan default harus menghasilkan kinerja dan keandalan keseluruhan terbaik. Saya akan merekomendasikan untuk membiarkannya di default.
...
Setelah Anda menggunakan cukup memori sehingga tidak ada sisa yang cukup untuk cache yang berjalan lancar, Linux dapat mengalokasikan kembali beberapa memori aplikasi yang tidak digunakan dari RAM untuk swap.
Itu tidak melakukan ini menurut cutoff yang pasti sekalipun. Ini tidak seperti Anda mencapai persentase alokasi tertentu kemudian Linux mulai bertukar. Ini memiliki algoritma yang agak "fuzzy". Dibutuhkan banyak hal untuk diperhitungkan, yang dapat dijelaskan dengan "berapa banyak tekanan yang ada untuk alokasi memori". Jika ada banyak "tekanan" untuk mengalokasikan memori baru, maka itu akan meningkatkan peluang beberapa akan ditukar untuk membuat lebih banyak ruang. Jika ada sedikit "tekanan" maka itu akan mengurangi peluang ini.
Sistem Anda memiliki pengaturan "swappiness" yang membantu Anda mengubah cara "tekanan" ini dihitung. Biasanya tidak disarankan untuk mengubah ini sama sekali, dan saya pasti tidak akan merekomendasikan Anda mengubahnya. Swapping secara keseluruhan adalah hal yang sangat baik - setiap penalti kinerja sesekali dimaksudkan untuk diimbangi dengan keuntungan dalam keseluruhan respons sistem dan stabilitas untuk berbagai tugas. Jika Anda mengurangi swappiness, Anda membiarkan jumlah memori cache menyusut sedikit lebih banyak daripada yang seharusnya, bahkan ketika itu mungkin benar-benar bermanfaat. Karena itu Anda berisiko memperlambat komputer secara umum, karena ada lebih sedikit cache, sementara memori diambil oleh aplikasi yang bahkan tidak menggunakannya. Apakah ini pertukaran yang cukup baik untuk masalah spesifik apa pun yang Anda alami dengan bertukar, itu terserah Anda.
Apa yang terjadi ketika sistem macet dan bertukar banyak?
Banyak kali orang akan melihat sistem mereka yang meronta-ronta disk dan menggunakan banyak ruang swap dan menyalahkan menukar untuk itu. Itu pendekatan yang salah untuk diambil. Jika bertukar mencapai ekstrim ini, itu berarti bahwa sistem Anda sangat rendah dalam memori dan bertukar adalah satu-satunya menjaga agar tidak crash atau membunuh proses secara acak. Tanpa bertukar, dalam situasi ini, proses akan macet dan mati. Swapping adalah gejala dari masalah yang lebih dalam. Dalam sistem dengan memori yang cukup untuk semua tugasnya, bertukar hanya memastikan bahwa memori digunakan dengan cara yang efisien, membagi memori ke cache melalui proses yang tidak aktif di mana ia melihatnya akan layak. Dalam sistem di mana swapping tanpa henti meronta-ronta disk, itu bukan kesalahan swapping.
Ketika memilih apa yang akan ditukar ke disk, sistem mencoba untuk memilih memori yang sebenarnya tidak digunakan - baca atau tulis. Ini memiliki algoritma yang cukup sederhana untuk menghitung ini yang memilih dengan baik sebagian besar waktu.
...
Tetapi bagaimana cara swap mempercepat sistem saya? Tidak menukar hal-hal lambat?
Tindakan mentransfer data dari RAM ke swap adalah operasi yang lambat, tetapi itu hanya diambil ketika kernel cukup yakin manfaat keseluruhan akan lebih besar daripada ini. Misalnya, jika memori aplikasi Anda telah naik ke titik di mana Anda hampir tidak memiliki cache yang tersisa dan I / O Anda sangat tidak efisien karena ini, Anda sebenarnya bisa mendapatkan lebih banyak kecepatan dari sistem Anda dengan membebaskan beberapa memori, bahkan setelah biaya awal swapping data untuk membebaskannya.