Friday, December 13, 2019

Membuat Swap Memory di Ubuntu Server

Beberapa waktu lalu saya diminta untuk mendeploy ELK Stack dan Kafka di sebuah server milik kantor. Ternyata, untuk service Kafka, spesifikasi server yang disediakan memiliki resource yang bisa dibilang terbatas. Yang Menjadi problem adalah Ram server hanya memiliki kapasitas 2GB dan belum memiliki swap memory. Karena server ini digunakan untuk keperluan research, dibandingkan mengupgrade spesifikasi server,  saya pikir akan lebih cepat dan hemat membuat swap memory. Sekalian saya pengen lihat, seberapa besar pengaruh hadirnya swap memory di server yang memiliki spesifikasi minim.

Seperti biasa, first thing first. Berikut adalah spesifikasi-spesifikasi yang saya gunakan saat membuat catatan ini :
vCPU : 1
RAM : 2GB
Storage : 50 GB
Operating System : Lubuntu 18.04.3 LTS
Htop Version :2.1.0
Untuk membuat swap memory, setahu saya ada dua cara.
1. Dengan membuat partisi baru, kemudian di format sebagai swap area.
2. Membuat dump file kemudian kita setup/format file tersebut menjadi swap area

Saya pikir akan lebih mudah dan cepat jika menggunakan cara kedua, untuk cara pertama biasanya dilakukan saat pertama kali install server. namun cara ini sediki lebih rumit karena harus melakukan partisi pada proses pembuatannya. 

Untuk cek apakah ada swap memory atau tidak, biasanya saya menggunakan tool bernama htop. dan secara default, tool ini tidak terinstall di distro-distro linux. untuk menginstallnya bisa menggunakan perintah :
sudo apt-get install -y htop
Jika sudah, kita tinggal run command
htop
berikut adalah penampakan htop monitoring sebelum membuat swap. kita bisa lihat pada bagian Swp masih kosong. Jika memiliki swap aktif, makan bagian tersebut tidak akan bernilai 0. Nah berikut adalah cara membuat Swap memory. (klik gambar untuk memperbesar gambar)
htop dengan swap memory 0
Pertama terlebih dahulu kita buat  dump file. Untuk membuat dump file, kita akan menggunakan perintah dd. Sesuaikan lokasi file dan besaran swap. Pada catatan saya kali ini saya akan membuat swap memory sebesar 4GB atau 4096 MB dengan lokasi file berada di /swapfile. Sehingga jika kita konversi menjadi command akan terlihat sebagai berikut :
sudo dd if=/dev/zero of=/swapfile bs=4096 count=1M
Selanjutnya setup permission file
sudo chmod 600 /swapfile
Membuat dum pfile
Selanjutnya setup file menjadi swap agar menjadi swap area
mkswap /swapfile 
Memformat file menjadi swap area

Terakhir, aktifkan swap dengan perintah
sudo swapon /swapfile
Mengaktifkan Swap

Cek kembali dengan tool htop
Swap sudah aktif dan terdeteksi

Ppastikan pada bagian Swp kapasitasnya sesuai dengan besaran yang telah di buat sebelumnya. pada gambar diatas terlihat swap file aktif sebesar 4GB atau 4096MB.

Performa Server
Bagaimana performa servernya? Well, kalo dilihat dari htop, swap memory sangat membantu, hanya saja terlihat sangat "hardcore" karena swap 4GB hampir semua di gunakan. :v

Layanan kafka ini digunakan untuk scraping salah satu platform ternama di Indonesia dan menggunakan nodejs.
Usage Resouce Server
Yaa.. karena ini cuma server riset dan development, developernya bilang asal bisa running, it's oke, ya sudahlah. Dari sini kita tahu bahwa swap memory sangat membantu performa server. Sehingga bagi anda yang memiliki server namun memerlukan memory untuk komputasi yang besar, kalo ada anggaran untuk upgrade Ram, bisa dicoba dengan menambah swap memory.

Selain itu kita juga bisa simpulkan, kafka dan service-service yang mendukungnya, idealnya memerlukan ram minimal 4GB. Kita bisa menggunakan server dengan kapasitas ram 2GB. hanya saja perlu di tambah swap memory agar service dapat berjalan.

Auto Start Swap
Swap memory akan lebih meningkatkan performa jika menyala dari komputer dinyalakan. Biasanya jika kita membuat swap memory dengan cara mempartisi storage saat menginstall sistem operasi, swap memory tersebut akan otomatis menyala saat komputer menyala. Namun karena kita membuat swap memory setelah proses install sistem operasi, maka kita perlu menambahkan swap memory yang kita buat agar menyala saat komputer pertama kali menyala.

Untuk itu kita perlu menambah swap memory yang kita buat kedalam file fstab. Silahkan gunakan text editor favorit anda, bisa vim/vi, nano ato pico, kali ini saya menggunakan nano.
sudo nano /etc/fstab
Kemudian tambahkan line berikut (bisa dimanapun, namun sebaiknya tepat dibawah file system lain, misalnya /boot)
/swapfile swap swap defaults 0 0
Bagian /swapfile disesuaikan dengan full path swapfile yang dibuat

Menambah ke command ke fstab
Untuk lebih memudahkan, saya sudah menulis simple script untuk membuat, mengaktifkan dan menambahkan swapfile ke fstab. Sehingga kita tidak perlu run command diatas satu persatu. Cukup mengkonfigurasi path swapfile dan besar kapasitas swap saja.

Mind Blowing Part
Ternyata swap memory bisa dikonsolidasi. Maksudnya adalah, kita bisa menambahkan kapasitas Swap memory dengan kapasitas tertentu tanpa harus menonaktifkan swap memory yang sedang berjalan.

Misalnya server sudah memiliki partisi swap 1GB, kita bisa menambah Swap memory tersebut dengan membuat Swap file (misalnya 1GB), mengaktifkan Swap tersebut tanpa harus menghentikan Swap memory yang sedang aktif. Dan hal ini bisa langsung live terdeteksi oleh htop. Berikut adalah screenshot salah satu server yang saya coba tambahkan swap memory nya.
Sebelum Swap file ditambahkan
Sesudah Swap file ditambahkan
Biasa aja? ya Mungkin sebagian orang ada yang sudah tau dan sebagian ada yang belum. Untuk saya pribadi yang sudah 5 tahun lebih memakai Linux, ini adalah hal baru dan menurut saya menarik. :D

Demikian catatan saya kali ini. Apabila ada pertanyaan silahkan kontak saya via telegram (lihat di profile sebelah kanan atas), atau tinggalkan komentar kolom komentar dibawah. Semoga bermanfaat. :)


Referensi :

No comments:

Post a Comment