One place for hosting & domains

      Ruang

      Cara Menambah Ruang Swap pada Ubuntu 20.04


      Pengantar

      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 20.04.

      Peringatan: Meskipun biasanya swap disarankan untuk sistem yang menggunakan hard drive berputar tradisional, harap diperhatikan bahwa melakukan swap pada SSD dapat menyebabkan masalah terkait degradasi perangkat keras seiring waktu. Karena itu, kami tidak menyarankan untuk mengaktifkan swap pada DigitalOcean atau penyedia lainnya yang menggunakan penyimpanan SSD.

      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:

      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:

      Output

      total used free shared buff/cache available Mem: 981Mi 122Mi 647Mi 0.0Ki 211Mi 714Mi Swap: 0B 0B 0B

      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:

      Output

      Filesystem Size Used Avail Use% Mounted on udev 474M 0 474M 0% /dev tmpfs 99M 932K 98M 1% /run /dev/vda1 25G 1.4G 23G 7% / tmpfs 491M 0 491M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 491M 0 491M 0% /sys/fs/cgroup /dev/vda15 105M 3.9M 101M 4% /boot/efi /dev/loop0 55M 55M 0 100% /snap/core18/1705 /dev/loop1 69M 69M 0 100% /snap/lxd/14804 /dev/loop2 28M 28M 0 100% /snap/snapd/7264 tmpfs 99M 0 99M 0% /run/user/1000

      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:

      • sudo fallocate -l 1G /swapfile

      Kita dapat memverifikasi bahwa jumlah ruang yang benar telah disiapkan dengan mengetik:

      • -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:

      Lakukan verifikasi perubahan izin dengan mengetik:

      Output

      -rw------- 1 root root 1.0G Apr 25 11:14 /swapfile

      Seperti yang terlihat, hanya pengguna root yang memiliki bendera baca dan tulis yang diaktifkan.

      Sekarang kita dapat menandai berkas sebagai ruang swap dengan mengetik:

      Output

      Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes) no label, UUID=6e965805-2ab9-450f-aed6-577e74089dbf

      Setelah menandai berkas, kita dapat mengaktifkan berkas swap, yang mengizinkan sistem kita untuk mulai menggunakannya:

      Lakukan verifikasi bahwa swap tersedia dengan mengetik:

      Output

      NAME TYPE SIZE USED PRIO /swapfile file 1024M 0B -2

      Kita dapat memeriksa keluaran utilitas free lagi untuk menguatkan temuan kita:

      Output

      total used free shared buff/cache available Mem: 981Mi 123Mi 644Mi 0.0Ki 213Mi 714Mi Swap: 1.0Gi 0B 1.0Gi

      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:

      • sudo cp /etc/fstab /etc/fstab.bak

      Tambahkan informasi berkas swap di akhir berkas /etc/fstab dengan mengetik:

      • 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:

      • cat /proc/sys/vm/swappiness

      Output

      60

      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:

      • sudo sysctl vm.swappiness=10

      Output

      vm.swappiness = 10

      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:

      • sudo nano /etc/sysctl.conf

      Di bagian bawah, Anda dapat menambahkan:

      /etc/sysctl.conf

      vm.swappiness=10
      

      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:

      • cat /proc/sys/vm/vfs_cache_pressure

      Output

      100

      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:

      • sudo sysctl vm.vfs_cache_pressure=50

      Output

      vm.vfs_cache_pressure = 50

      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:

      • sudo nano /etc/sysctl.conf

      Di bagian bawah, tambahkan baris yang menentukan nilai baru Anda:

      /etc/sysctl.conf

      vm.vfs_cache_pressure=50
      

      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.



      Source link