Mengapa swappiness default 60? Apa efeknya jika saya menurunkan nilai swappiness untuk PC desktop saya?


16

Saya membaca tentang swappiness di berbagai forum dan saya melihat beberapa video. Banyak yang menyatakan bahwa itu adalah hal yang baik bagi pengguna desktop untuk mengurangi nilai swappiness di bawah 60 (yang merupakan default). Beberapa menyatakan bahwa 60 baik untuk server. Tepatnya mengapa lebih baik bagi saya untuk menurunkannya dan mengapa 60 bagus untuk server? Saya mencoba mencari jawaban (saya mencari di sini misalnya) tetapi tidak bisa mengerti. ... Silakan gunakan istilah yang mudah: D


mengedit pertanyaan. Apakah sekarang baik?
Mina Michael

Jawaban:


22

Premis Anda salah. Tidak ada nilai swapiness 'baik untuk server'.

Swapiness adalah jumlah swapping yang dilakukan, terutama seberapa agresif Anda bertukar. Untuk server saya, swappiness mendekati nol, karena saya yakin mereka memiliki cukup memori untuk semuanya. Tidak ada nilai 'terbaik untuk server'. ada 60, yang merupakan default, dan kemudian ada "nilai Anda" yang tergantung pada penggunaan dan memori yang tersedia.

Jika Anda memiliki server yang terkadang menggunakan LOADS memori, Anda bisa membuatnya lebih tinggi dari standar, tetapi saya akan mengatakan bahwa beberapa server (server basis data?) Mungkin ingin menyimpannya jauh lebih rendah daripada komputer di rumah.


baik-baik saja: DI mengikuti unix.stackexchange.com/questions/88693/… ini . jawaban kedua (yang saat ini dengan 2 upvotes) mengatakan bahwa 60 mungkin paling cocok untuk server. ... Dan biarkan aku meluruskan ini. Saya harus menetapkan swappiness tinggi jika saya melakukan proses yang membutuhkan memori besar dan rendah jika saya melakukan beberapa proses kecil?
Mina Michael

(dan tergantung spesifikasi komputer saya ofcourse) saya memiliki core 2 duo sekitar 2,9 GHz dengan intel grafis terintegrasi dengan cara
Mina Michael

1
Tidak mungkin dikatakan. Bergantung pada banyak hal, seperti juga dinyatakan dalam jawaban itu -> beberapa database mungkin melakukan caching mereka sendiri, tetapi beberapa mungkin tidak. Tergantung pada program dan perangkat keras Anda. Ada default dan hal terbaik yang dapat Anda lakukan adalah menguji kinerja sistem Anda dalam situasi apa. Seperti yang saya katakan, saya telah menambahkan cukup mem ke sistem saya, dan saya tahu apa yang mereka butuhkan, sehingga saya bisa memiliki swappiness di dekat 0. Tetapi pada sistem yang sehat beberapa swapping bisa menjadi hal yang baik. tidak ada saran pengaturan 'allah untuk semua' yang mudah di sini, baca jawaban terbaik yang dipilih. Juga: ia mengatakan "mungkin", bukan "adalah" dalam jawaban ke-2
Nanne

(dan sesuai spesifikasi Anda: hal yang paling penting jika Anda berbicara dengan memori yang Anda miliki dan Anda, tetapi tidak ada kebutuhan khusus untuk menambahkannya di sini: kita bisa berbicara berhari-hari tentang semua jenis spesifik, hal terbaik yang harus dilakukan adalah membaca jawaban tertinggi pada tautan unix yang Anda berikan, dan lanjutkan dengan pengujian cara kerjanya di lingkungan Anda.) '
Nanne

baik saat itulah saya mengatakan bahwa saya tidak bisa mengerti apa yang saya baca. Saya cukup lemah dalam pengetahuan (dan bahkan bahasa untuk jujur ​​XD) ... jadi saya hanya perlu terus mencoba! oke terima kasih: D
Mina Michael

8

Nilai swappiness ditingkatkan dengan cara yang membingungkan orang. Mereka melihatnya memiliki kisaran 0-100 sehingga mereka berpikir persen, ketika benar-benar minimum efektif adalah sekitar 50.

60 kira-kira berarti tidak bertukar sampai kita mencapai sekitar 80% penggunaan memori, menyisakan 20% untuk cache dan semacamnya. 50 berarti menunggu sampai kehabisan memori. Nilai yang lebih rendah berarti sama, tetapi dengan meningkatnya agresivitas dalam mencoba membebaskan memori dengan cara lain.

Uraikannya dengan cukup baik di http://lwn.net/Articles/83588/


Apa yang dimaksud dengan nilai yang lebih tinggi, misalnya 80 atau 100?
jocull

5

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.

Silakan lihat jawaban yang saya tulis untuk pertanyaan yang sangat mirip:

/ubuntu//a/184221/54256

Kutipan:

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.

Jangan ragu untuk membaca seluruh posting di /ubuntu//a/184221/54256


0

Swappiness benar-benar bertentangan dengan semua jawaban ini.

Kerja Nyata swappiness dijelaskan dalam artikel: https://gokulvasanblog.wordpress.com/2016/11/14/empathising-mammoths-mentality-a-study-on-linux-memory-management/

Ambiguitas tersebut dikuatkan oleh pernyataan dari Andrew Morton: https://lwn.net/Articles/83593/

Aku akan menempelkan jari-jariku di telingaku dan menyanyikan "la la la" sampai orang-orang memberitahuku "Aku menetapkan swappiness ke nol dan itu tidak melakukan apa yang aku inginkan."

Semoga bermanfaat


1
Selamat datang di AU. Bisakah Anda meringkas poin-poin utama dari artikel yang Anda tunjuk dan menjelaskan bagaimana hal itu menjawab pertanyaan, yang bukan untuk menjelaskan apakah swappiness itu atau tidak.
Marc Vanhoomissen
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.