Cara Menambah Ruang Swap pada Ubuntu

Salah satu cara untuk menghindari kesalahan kehabisan memori dalam aplikasi adalah dengan menambahkan sejumlah ruang swap ke server Anda. Dalam panduan ini, kita akan membahas cara menambah suatu berkas swap ke server Ubuntu.
Apa itu Swap?
Swap adalah bagian dari penyimpanan hard drive yang telah disisihkan pada sistem operasi untuk secara sementara menyimpan data yang tidak dapat lagi disimpan di RAM. Ini memungkinkan Anda untuk menambah jumlah informasi yang dapat disimpan oleh server Anda di dalam memori yang sedang bekerja, dengan beberapa peringatan. Ruang swap pada hard drive akan digunakan terutama saat tidak ada lagi ruang yang cukup di RAM untuk menyimpan data aplikasi yang sedang digunakan.
Informasi yang ditulis ke diska akan lebih lambat secara signifikan dibandingkan informasi yang disimpan dalam RAM, tetapi sistem operasi akan lebih memilih untuk tetap menjalankan data aplikasi dalam memori dan menggunakan swap untuk data yang lebih tua. Secara garis besar, memiliki ruang swap sebagai pilihan alternatif saat RAM sistem Anda habis dapat menjadi jaring pengaman yang baik terhadap eksepsi kehabisan memori pada sistem dengan penyimpanan non-SSD.
Langkah 1 – Memeriksa Sistem untuk Informasi Swap
Sebelum memulai, kita dapat memeriksa apakah sistem sudah memiliki sebagian ruang swap yang tersedia. Dimungkinkan untuk memiliki beberapa berkas swap atau partisi swap, tetapi pada umumnya satu sudah cukup.
Kita dapat melihat apakah sistem memiliki swap yang terkonfigurasi dengan mengetik:
1 | sudo swapon --show |
Jika Anda tidak mendapat keluaran apa pun, ini berarti sistem Anda tidak memiliki ruang swap yang tersedia saat ini.
Anda dapat memverifikasi bahwa tidak ada swap yang aktif dengan menggunakan utilitas free:
1 | free -h |
1 | Output |
Seperti yang Anda lihat di baris Swap pada keluaran, tidak ada swap yang aktif pada sistem.
Langkah 2 – Memeriksa Ruang Tersedia pada Partisi Hard Drive
Sebelum menciptakan berkas swap, kita akan memeriksa penggunaan diska saat ini untuk memastikan kita memiliki cukup ruang. Lakukan ini dengan mengetik:
1 | df -h |
1 | Output |
Perangkat dengan / di dalam kolom Mounted on adalah diska kita dalam kasus ini. Kita memiliki banyak ruang yang tersedia dalam contoh ini (hanya digunakan 1,4 G). Penggunaan Anda mungkin akan berbeda.
Meskipun ada banyak pendapat tentang ukuran ruang swap yang sesuai, hal itu benar-benar bergantung pada preferensi pribadi dan persyaratan aplikasi Anda. Secara umum, jumlah yang sama atau dua kali dari jumlah RAM pada sistem Anda adalah titik awal yang baik. Patokan yang baik lainnya adalah swap apa pun di atas 4 G mungkin tidak diperlukan jika Anda hanya menggunakannya sebagai pilihan alternatif RAM.
Langkah 3 – Menciptakan Berkas Swap
Kini setelah kita mengetahui ruang hard drive yang tersedia, kita dapat menciptakan berkas swap di sistem kita. Kita akan mengalokasikan berkas dengan ukuran yang diinginkan yang bernama swapfile di direktori root (/) kita.
Cara terbaik untuk menciptakan berkas swap adalah dengan program fallocate. Perintah ini seketika menciptakan berkas dengan ukuran yang ditentukan.
Karena server dalam contoh kita memiliki 1 G RAM, kita akan menciptakan berkas 1 G dalam panduan ini. Sesuaikan ini untuk memenuhi kebutuhan server Anda:
1 | sudo fallocate -l 1G /swapfile |
Kita dapat memverifikasi bahwa jumlah ruang yang benar telah disiapkan dengan mengetik:
1 | ls -lh /swapfile |
1 | -rw-r--r-- 1 root root 1.0G Apr 25 11:14 /swapfile |
Berkas telah dibuat dengan menyisihkan jumlah ruang yang benar.
Langkah 4 – Mengaktifkan Berkas Swap
Karena sudah memiliki berkas dengan ukuran yang benar, kita perlu mengubahnya menjadi ruang swap yang sesungguhnya.
Pertama-tama, kita perlu untuk mengunci izin berkas sehingga hanya pengguna dengan privilese root yang dapat membaca konten. Ini mencegah pengguna normal untuk dapat mengakses berkas, yang akan memiliki implikasi keamanan yang signifikan.
Buat berkas hanya dapat diakses oleh root dengan mengetik:
1 | sudo chmod 600 /swapfile |
Lakukan verifikasi perubahan izin dengan mengetik:
1 | ls -lh /swapfile |
1 | Output |
Seperti yang terlihat, hanya pengguna root yang memiliki bendera baca dan tulis yang diaktifkan.
Sekarang kita dapat menandai berkas sebagai ruang swap dengan mengetik:
1 | sudo mkswap /swapfile |
1 | Output |
Setelah menandai berkas, kita dapat mengaktifkan berkas swap, yang mengizinkan sistem kita untuk mulai menggunakannya:
1 | sudo swapon /swapfile |
Lakukan verifikasi bahwa swap tersedia dengan mengetik:
1 | sudo swapon --show |
1 | Output |
Kita dapat memeriksa keluaran utilitas free lagi untuk menguatkan temuan kita:
1 | free -h |
1 | Output |
Swap telah berhasil disiapkan dan sistem operasi kita akan mulai menggunakannya ketika diperlukan.
Langkah 5 – Membuat Berkas Swap Jadi Permanen
Perubahan terbaru kita telah mengaktifkan berkas swap untuk sesi ini. Namun, jika kita melakukan boot ulang, server tidak akan mempertahankan pengaturan swap secara otomatis. Kita dapat mengubah ini dengan menambahkan berkas swap ke berkas /etc/fstab.
Cadangkan berkas /etc/fstab seandainya ada kesalahan:
1 | sudo cp /etc/fstab /etc/fstab.bak |
Tambahkan informasi berkas swap di akhir berkas /etc/fstab dengan mengetik:
1 | echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab |
Selanjutnya, kita akan meninjau beberapa pengaturan yang dapat kita perbarui untuk menyetel ruang swap.
Langkah 6 – Menyetel Pengaturan Swap Anda
Ada beberapa opsi yang dapat Anda atur agar berdampak pada kinerja sistem Anda saat berurusan dengan swap.
Menyesuaikan Properti Swappiness
Parameter swappiness mengonfigurasi seberapa sering sistem Anda melakukan swap data dari RAM ke ruang swap. Ini adalah nilai antara 0 dan 100 yang mewakili persentase.
Dengan nilai yang dekat dengan nol, kernel tidak akan melakukan swap data ke diska kecuali benar-benar diperlukan. Ingat, interaksi dengan berkas swap adalah hal “mahal” yang dalam hal ini berarti memakan waktu lebih lama daripada interaksi dengan RAM dan dapat menyebabkan pengurangan kinerja yang signifikan. Memberi tahu sistem untuk tidak terlalu banyak mengandalkan swap secara umum akan membuat sistem Anda lebih cepat.
Nilai yang lebih dekat dengan 100 akan mencoba menaruh lebih banyak data ke dalam swap sebagai upaya untuk menjaga lebih banyak ruang RAM yang lowong. Tergantung profil memori aplikasi atau kegunaan server, ini mungkin pilihan yang lebih baik dalam beberapa kasus.
Kita dapat melihat nilai swappiness saat ini dengan mengetik:
1 | cat /proc/sys/vm/swappiness |
1 | Output |
Untuk Desktop, pengaturan swappiness 60 bukanlah nilai yang buruk. Untuk server, Anda mungkin ingin memindahkannya lebih dekat dengan 0.
Kita dapat mengatur swappiness ke nilai yang berbeda dengan menggunakan perintah sysctl.
Misalnya, untuk mengatur swappiness menjadi 10, kita dapat mengetik:
1 | sudo sysctl vm.swappiness=10 |
1 | Output |
Pengaturan ini akan terus ada hingga boot ulang selanjutnya. Kita dapat mengatur nilai ini secara otomatis saat memulai ulang dengan menambahkan baris ke berkas /etc/sysctl.conf:
1 | sudo nano /etc/sysctl.conf |
Di bagian bawah, Anda dapat menambahkan:
1 | `/etc/sysctl.conf` |
Simpan dan tutup berkas saat Anda sudah selesai.
Menyesuaikan Pengaturan Cache Pressure
Nilai terkait lainnya yang mungkin Anda ingin modifikasi adalah vfs_cache_pressure. Pengaturan ini mengonfigurasi seberapa banyak sistem akan memilih untuk melakukan cache pada inode dan informasi dentry dibandingkan data lainnya.
Pada dasarnya, ini adalah data akses tentang sistem berkas. Secara umum, ini sangat sulit untuk dicari dan sangat sering diminta, jadi sebaiknya sistem Anda melakukan cache. Anda dapat melihat nilai saat ini dengan melakukan kueri sistem berkas proc lagi:
1 | cat /proc/sys/vm/vfs_cache_pressure |
1 | Output |
Dalam konfigurasi saat ini, sistem kita menghapus informasi inode dari cache dengan terlalu cepat. Kita dapat mengatur ini ke pengaturan yang lebih konservatif seperti 50 dengan mengetik:
1 | sudo sysctl vm.vfs_cache_pressure=50 |
1 | Output |
Sekali lagi, ini hanya valid untuk sesi kita saat ini. Kita dapat mengubah hal itu dengan menambahkannya ke berkas konfigurasi seperti yang kita lakukan dengan pengaturan swappiness:
1 | sudo nano /etc/sysctl.conf |
Di bagian bawah, tambahkan baris yang menentukan nilai baru Anda:
1 | /etc/sysctl.conf |
Simpan dan tutup berkas saat Anda sudah selesai.
Kesimpulan
Mengikuti langkah-langkah dalam panduan ini akan memberi Anda sebagian ruang bernapas dalam kasus terkait eksepsi kehabisan memori. Ruang swap dapat menjadi sangat berguna untuk menghindari sebagian masalah umum ini.
Jika Anda menjumpai pesan kesalahan OOM (kehabisan memori), atau jika Anda menemukan bahwa sistem tidak dapat menggunakan aplikasi yang Anda perlukan, solusi terbaiknya adalah dengan mengoptimalkan konfigurasi aplikasi atau meningkatkan server.