Cara Menambah Ruang Swap pada Ubuntu Server

· 5 min read
Cara Menambah Ruang Swap pada Ubuntu Server
Photo by Lukas / Unsplash

Apa itu Swap?

Swap adalah bagian penyimpanan hard drive yang telah disisihkan bagi sistem operasi untuk menyimpan sementara data yang tidak lagi dapat disimpan dalam RAM. Hal ini memungkinkan Anda meningkatkan jumlah informasi yang dapat disimpan server Anda dalam memori kerjanya, dengan beberapa peringatan. Ruang swap pada hard drive akan digunakan terutama ketika tidak ada lagi cukup ruang di RAM untuk menampung data aplikasi yang sedang digunakan.

Informasi yang ditulis ke disk akan jauh lebih lambat dibandingkan informasi yang disimpan di RAM, namun sistem operasi akan lebih memilih untuk tetap menjalankan data aplikasi di memori dan menggunakan swap untuk data yang lebih lama. Secara keseluruhan, memiliki ruang swap sebagai cadangan ketika RAM sistem Anda habis dapat menjadi jaring pengaman yang baik terhadap pengecualian kehabisan memori pada sistem dengan penyimpanan non-SSD yang tersedia.

Langkah 1 – Memeriksa Sistem untuk Informasi Swap

Sebelum memulai, kita dapat memeriksa apakah sistem sudah memiliki ruang swap yang tersedia. Dimungkinkan untuk memiliki beberapa file swap atau partisi swap, tetapi umumnya satu saja sudah cukup.

Kita dapat melihat apakah sistem memiliki konfigurasi swap dengan mengetik:

sudo swapon --show

Jika Anda tidak mendapatkan output apa pun, ini berarti sistem Anda tidak memiliki ruang swap yang tersedia saat ini.

Anda dapat memverifikasi bahwa tidak ada swap aktif menggunakan utilitas free:

free -h
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 pada output, tidak ada swap yang aktif di sistem.Swap

Langkah 2 – Memeriksa Ruang yang Tersedia di Partisi Hard Drive

Sebelum kami membuat file swap, kami akan memeriksa penggunaan disk kami saat ini untuk memastikan kami memiliki cukup ruang. Lakukan ini dengan memasukkan:

df -h
OutputFilesystem      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 kolom Mounted on adalah disk kita dalam kasus ini. Kami memiliki banyak ruang yang tersedia dalam contoh ini (hanya 1.4G yang digunakan). Penggunaan Anda mungkin akan berbeda.

Meskipun ada banyak pendapat mengenai ukuran ruang swap yang tepat, hal ini sangat bergantung pada preferensi pribadi dan kebutuhan aplikasi Anda. Umumnya, jumlah yang sama atau dua kali lipat jumlah RAM pada sistem Anda adalah titik awal yang baik. Aturan praktis lainnya yang baik adalah bahwa pertukaran apa pun di atas 4G mungkin tidak diperlukan jika Anda hanya menggunakannya sebagai pengganti RAM.

Langkah 3 – Membuat File Swap

Sekarang kita mengetahui ruang hard drive yang tersedia, kita dapat membuat file swap pada sistem file kita. Kita akan mengalokasikan file dengan ukuran yang ingin kita panggil ).swapfile di direktori root (/

Cara terbaik untuk membuat file swap adalah dengan program fallocate. Perintah ini langsung membuat file dengan ukuran yang ditentukan.

Karena server dalam contoh kami memiliki RAM 1G, kami akan membuat file 1G dalam panduan ini. Sesuaikan ini untuk memenuhi kebutuhan server Anda sendiri:

sudo fallocate -l 1G /swapfile

Kami dapat memverifikasi bahwa jumlah ruang yang dipesan sudah benar dengan mengetik:

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

File kami telah dibuat dengan jumlah ruang yang disisihkan dengan benar.

Langkah 4 – Mengaktifkan File Swap

Sekarang kita memiliki file dengan ukuran yang benar, kita perlu mengubahnya menjadi ruang swap.

Pertama, kita perlu mengunci izin file sehingga hanya pengguna dengan hak istimewa root yang dapat membaca isinya. Hal ini mencegah pengguna biasa mengakses file, yang akan menimbulkan implikasi keamanan yang signifikan.

Jadikan file hanya dapat diakses oleh root dengan mengetik:

sudo chmod 600 /swapfile

Verifikasi perubahan izin dengan mengetik:

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

Seperti yang Anda lihat, hanya pengguna yang mengaktifkan tanda baca dan tulis.root

Sekarang kita dapat menandai file sebagai ruang swap dengan mengetik:

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

Setelah menandai file, kita dapat mengaktifkan file swap, sehingga sistem kita dapat mulai menggunakannya:

sudo swapon /swapfile

Verifikasi bahwa swap tersedia dengan mengetik:

sudo swapon --show
OutputNAME      TYPE  SIZE USED PRIO
/swapfile file 1024M   0B   -2

Kami dapat memeriksa kembali keluaran utilitas free untuk menguatkan temuan kami:

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

Pertukaran kami telah berhasil diatur dan sistem operasi kami akan mulai menggunakannya sesuai kebutuhan.

Langkah 5 – Menjadikan File Swap Permanen

Perubahan terkini kami telah mengaktifkan file swap untuk sesi saat ini. Namun jika kita reboot, server tidak akan menyimpan pengaturan swap secara otomatis. Kita dapat mengubahnya dengan menambahkan file swap ke file /etc/fstab.

Cadangkan file /etc/fstab jika terjadi kesalahan:

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

Tambahkan informasi file swap di akhir file /etc/fstab Anda 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 menyesuaikan ruang swap kita.

Langkah 6 – Menyesuaikan Pengaturan Swap Anda

Ada beberapa opsi yang dapat Anda konfigurasikan yang akan berdampak pada kinerja sistem Anda saat menangani swap.

Menyesuaikan Properti Swappiness

Parameter swappiness mengonfigurasi seberapa sering sistem Anda menukar data dari RAM ke ruang swap. Ini adalah nilai antara 0 dan 100 yang mewakili persentase.

Dengan nilai mendekati nol, kernel tidak akan menukar data ke disk kecuali benar-benar diperlukan. Ingat, interaksi dengan file swap itu “mahal” karena memerlukan waktu lebih lama dibandingkan interaksi dengan RAM dan dapat menyebabkan penurunan kinerja yang signifikan. Memberi tahu sistem untuk tidak terlalu bergantung pada swap biasanya akan membuat sistem Anda lebih cepat.

Nilai yang mendekati 100 akan mencoba memasukkan lebih banyak data ke dalam swap sebagai upaya untuk menjaga lebih banyak ruang RAM kosong. Tergantung pada profil memori aplikasi Anda atau untuk tujuan apa Anda menggunakan server, ini mungkin lebih baik dalam beberapa kasus.

Kita dapat melihat nilai swappiness saat ini dengan mengetik:

cat /proc/sys/vm/swappiness
Output60

Untuk Desktop, pengaturan swappiness 60 bukanlah nilai yang buruk. Untuk server, Anda mungkin ingin memindahkannya mendekati 0.

Kita dapat mengatur swappiness ke nilai yang berbeda dengan menggunakan perintah sysctl.

Misalnya, untuk menyetel swappiness ke 10, kita dapat mengetik:

sudo sysctl vm.swappiness=10
Outputvm.swappiness = 10

Pengaturan ini akan bertahan hingga reboot berikutnya. Kita dapat menyetel nilai ini secara otomatis saat restart dengan menambahkan baris ke file /etc/sysctl.conf kita:

sudo nano /etc/sysctl.conf

Di bagian bawah, Anda dapat menambahkan:

/etc/sysctl.conf

vm.swappiness=10

Simpan dan tutup file setelah Anda selesai.

Menyesuaikan Pengaturan Tekanan Cache

Nilai terkait lainnya yang mungkin ingin Anda ubah adalah vfs_cache_pressure. Pengaturan ini mengonfigurasi seberapa banyak sistem akan memilih untuk menyimpan cache inode dan dentry informasi dibandingkan data lainnya.

proc:

cat /proc/sys/vm/vfs_cache_pressure
Output100

Seperti yang dikonfigurasi saat ini, sistem kami menghapus informasi inode dari cache terlalu cepat. Kita dapat mengaturnya ke pengaturan yang lebih konservatif seperti 50 dengan mengetik:

sudo sysctl vm.vfs_cache_pressure=50
Outputvm.vfs_cache_pressure = 50

Sekali lagi, ini hanya berlaku untuk sesi kita saat ini. Kita dapat mengubahnya dengan menambahkannya ke file 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 file setelah Anda selesai.

Kesimpulan

Mengikuti langkah-langkah dalam panduan ini akan memberi Anda ruang untuk bernapas jika terjadi kasus yang dapat menyebabkan pengecualian kehabisan memori. Swap space bisa sangat berguna dalam menghindari beberapa masalah umum ini.

Jika Anda mengalami kesalahan OOM (kehabisan memori), atau jika ternyata sistem Anda tidak dapat menggunakan aplikasi yang Anda perlukan, solusi terbaik adalah mengoptimalkan konfigurasi aplikasi atau meningkatkan server Anda.

Sekian Terimakasih