Ketika saya membuka aplikasi RAM-intensif (VirtualBox ditetapkan pada 2GB RAM), beberapa ruang swap umumnya digunakan, tergantung pada apa lagi yang saya buka pada saat itu.
Namun, ketika saya keluar dari aplikasi terakhir itu, 2GB RAM dibebaskan, tetapi penggunaan ruang swap yang sama tetap.
Sebagai contoh, sekarang, sekitar dua jam setelah menutup VirtualBox, saya memiliki 1,6GB RAM gratis dan masih 770MB di swap.
Bagaimana saya bisa memberi tahu Ubuntu untuk berhenti menggunakan swap itu dan kembali menggunakan RAM?
performance
swap
ram-usage
jfoucher
sumber
sumber
Jawaban:
Hanya karena swap dialokasikan, tidak berarti itu sedang 'digunakan'. Sementara program-program seperti monitor sistem dan atas akan menunjukkan beberapa ruang swap Anda yang dialokasikan (dalam contoh Anda 770MB) itu tidak berarti bahwa sistem secara aktif bertukar masuk / keluar.
Untuk mencari tahu apakah ada yang swap masuk / keluar, Anda dapat menggunakan
vmstat
perintah. Biarkan berjalan beberapa detik untuk menyelesaikan dan menonton kolomsi
(swapin) danso
(swapout). Jika tidak ada yang terjadi maka tidak ada alasan untuk khawatir.Inilah output dari menjalankan
vmstat 1
, di mana Anda dapat melihat mesin saya tidak bertukar sama sekali.Namun di sini
top
Anda dapat melihat saya memiliki ruang swap dialokasikan: -sumber
Kernel Linux yang mendasari Ubuntu akan secara otomatis "menukar" halaman-halaman itu dari disk ke RAM sesuai kebutuhan, jadi secara umum saya katakan biarkan saja itu terjadi secara alami.
Namun, jika Anda benar-benar merasa perlu memaksanya, (saya bisa melihat skenario di mana Anda ingin tahu bahwa sistem akan responsif nanti) Anda dapat menonaktifkan dan mengaktifkan kembali swap untuk sementara waktu
ATAU sebagai satu baris
Hati-hati melakukan ini, karena Anda dapat membuat sistem Anda tidak stabil, terutama jika sudah rendah pada RAM.
sumber
Anda juga dapat mengatur nilai "swappiness" Anda dari default 60, dengan cara ini swap tidak akan tumbuh begitu besar untuk memulai. Mengapa pengiriman standar diatur ke 60 ketika nilai yang disarankan adalah 10 membingungkan saya. Dari Ubuntu SwapFAQ :
Dengan mengubah nilai ini menjadi 10 atau bahkan 0, Anda dapat menambahkan dorongan kecepatan yang signifikan dan dapat dilihat ke sistem yang lebih lama dengan drive yang lambat. Mengatur nilai ini ke 0 tidak mematikan swap untuk kernel Linux 3.4 dan di bawah tetapi dengan 3.5+ itu melakukannya Anda akan ingin menggunakan nilai 1 jika Anda ingin tetap pada pengaturan terendah *.
Saya tidak melihat alasan untuk tidak mengatur ini ke 0 karena apa pun yang mengenai disk lebih lambat dari RAM. Saya memiliki 8 core virtual, SSD yang cepat & memori 8 GB dan swap saya diatur ke 0. Pada saat ini saya memiliki 3 mesin virtual yang sedang berjalan, penggunaan memori saya adalah 7.1 dari 7.7 GB, swap yang saya gunakan hanya pada 576KB dari 952MB dan semua sistem berjalan dengan lancar!
Dari Ubuntu SwapFAQ :
Di bawah ini adalah petunjuk dasar untuk memeriksa swappiness, mengosongkan swap Anda dan mengubah swappiness ke 0:
Untuk memeriksa nilai swappiness:
Untuk sementara mengatur swap ke 0 ( seperti yang disarankan oleh SpamapS ):
Ini akan mengosongkan swap Anda dan mentransfer semua swap kembali ke memori. Pertama-tama pastikan Anda memiliki cukup memori yang tersedia dengan melihat tab sumber daya dari gnome-system-monitor, memori bebas Anda harus lebih besar daripada swap yang Anda gunakan. Proses ini mungkin memakan waktu cukup lama, gunakan gnome-system-monitor untuk memantau dan memverifikasi perkembangannya.
Untuk menetapkan nilai baru ke 0:
Untuk mengaktifkan kembali swap:
Untuk menetapkan swappiness secara permanen ke 0:
sudoedit /etc/sysctl.conf
vm.swappiness = 0
sudo shutdown -r now
# restart sistem* Dengan kernel versi 3.5+ pengaturan swappiness ke 0 tidak mematikan sepenuhnya dan pengaturan 1 direkomendasikan jika Anda ingin algoritma swappiness terendah. sumber: https://www.percona.com/blog/2014/04/28/oom-relation-vm-swappiness0-new-kernel/
sumber
Saya telah menemukan bahwa mengosongkan swap dapat banyak membantu pada sistem dengan disk yang lambat dan RAM yang terbatas. Tentu saja, seperti yang telah disebutkan, cara untuk melakukan ini adalah menjalankannya
sudo swapoff -a; sudo swapon -a
. Masalahnya di sini adalah bahwa jika ada RAM yang tidak mencukupi, melakukan hal itu akan menyebabkan semua jenis masalah.Saya telah menulis sebuah skrip yang saya sebut
toggle_swap
yang telah bekerja untuk saya selama beberapa tahun terakhir. Ini memeriksa RAM gratis yang cukup sebelum benar-benar menonaktifkan swap. Ini dia:sumber
Setelah mondar-mandir dengan swappiness selama beberapa hari, saya sampai pada kesimpulan bahwa kernel harus dibiarkan sendiri. Ia tahu apa yang dilakukannya, dan dioptimalkan untuk memberi Anda pengalaman terbaik.
Kecuali Anda memiliki alasan yang sangat bagus untuk menginginkan disk itu kembali, saya akan membiarkannya.
sumber
Itu tidak mempengaruhi kinerja jika ruang swap Anda ditempati. Satu-satunya penalti kinerja adalah barang masuk / keluar dari swap. Jika tidak ada yang ditukar / ditukar, maka Anda tidak perlu khawatir tentang apa pun.
sumber