Cara membuat file SWAP di CentOS 7
Tags: centos, linux, indonesia
Published: 2021-02-27 04:43:47

Artikel ini akan mengajarkan cara membuat file SWAP untuk VPS yang menjalankan CentOS 7. Semua perintah yang ada dalam artikel ini dijalankan dengan menggunakan akun `root`, jika Anda menggunakan akun selain `root` maka cukup tambahkan `sudo` diawal setiap perintah yang ada. 

## Bagian Pertama

Langkah pertama cek dulu keberadaan file swap, karena ada beberapa provider VPS yang sudah menginstall otomatis file ini. Jalankan perintah berikut ini.
```
swapon -s
```

Jika tidak menampilkan output apapun, berarti belum ada file swap yang aktif. Selanjutnya jalankan perintah berikut secara berurutan untuk membuat file swap sebesar `2 GB`.
```
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
```

Apabila muncul pesan error `swapon: /swapfile: swapon failed: Invalid argument` pada perintah terakhir, ulangi langkah pembuatan file SWAP namun dengan perintah dibawah secara berurutan.
```
rm /swapfile
dd if=/dev/zero of=/swapfile count=2048 bs=1MiB
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
```

Jika sukses dan tanpa error, ketik `swapon -s` untuk mengecek file swap yang baru dibuat. Output yang muncul lebih kurang akan seperti dibawah ini.
```
Filename                                Type            Size    Used    Priority
/swapfile                               file    2097148 0       -1
```

## Bagian Kedua

Bagian ini akan menunjukkan cara membuat file SWAP jadi permanen, agar meskipun VPS di reboot file SWAP tidak akan berubah. Jalankan perintah berikut ini.
```
vi /etc/fstab
```

Tekan huruf `i` untuk mengaktifkan mode perubahan, dan tambahkan baris berikut ini pada bagian akhir dari file tersebut.
```
/swapfile   swap    swap    sw  0   0
```

Tekan `Esc` untuk menutup mode perubahan, selanjutnya ketik `:x` akhiri dengan menekan Enter untuk menyimpan file. 

## Bagian Ketiga

Untuk bagian terakhir akan menunjukkan cara mengoptimalkan file SWAP yang baru dibuat dengan mengkonfigurasi beberapa parameter yang ada. 

### Swappiness

Parameter ini mengatur seberapa sering system memindahkan data dari RAM ke file SWAP. Semakin rendah nilai dari parameter ini (min. 0) akan membuat system tidak akan terlalu bergantung pada file SWAP, sebaliknya semakin tinggi nilainya (maks. 100) maka system akan sangat bergantung pada file swap. Perlu dicatat, aplikasi yang dijalankan pada system yang bergantung pada file swap, akan menurunkan kinerja dari aplikasi tersebut. Hal ini disebabkan oleh karena akses data dari file swap lebih lambat jika dibandingkan langsung dari RAM.

Cek dulu berapa nilai `swappiness` dari VPS yang Anda miliki. Pada sistem yang menjalankan CentOS nilai default-nya adalah sebesar `30`.
```
cat /proc/sys/vm/swappiness
```

Untuk VPS disarankan agar nilainya lebih dekat ke angka `0`, dan pada artikel ini akan di set ke angka `10`.
```
sysctl vm.swappiness=10
```

Agar perubahan ini jadi permanen, jalankan perintah berikut.
```
vi /etc/sysctl.conf
```

Tekan huruf `i` untuk mengaktifkan mode perubahan, dan tambahkan baris berikut ini pada bagian akhir dari file tersebut.
```
vm.swappiness = 10
```

Tekan `Esc` untuk menutup mode perubahan, selanjutnya ketik `:x` akhiri dengan menekan Enter untuk menyimpan file. 

### Cache Pressure

Parameter lainnya adalah `vfs_cache_pressure` yang mengatur seberapa sering aktifitas baca (read) dan refresh informasi dari entri metadata khusus milik filesystem. Semakin besar nilainya berarti semakin tinggi system melakukan aktifitas baca dan refresh, karena informasi yang ada di cache dihapus terlalu cepat. Semakin lama data tersimpan di cache akan mendongkrak performa VPS.
Perlu dicatat, langkah ini bersifat opsi (tidak harus dilakukan) bagi Anda yang sudah merasa puas dengan performa VPS yang dimiliki.

Cek dulu berapa nilai `vfs_cache_pressure` dari VPS. Pada sistem yang dijalankan untuk membuat artikel ini nilainya sebesar `100`.
```
cat /proc/sys/vm/vfs_cache_pressure
```

Pada artikel ini akan di set ke angka yang dirasa lebih masuk akal yaitu `50`.
```
sysctl vm.vfs_cache_pressure=50
```

Agar perubahan ini jadi permanen, jalankan perintah berikut.
```
vi /etc/sysctl.conf
```

Tekan huruf `i` untuk mengaktifkan mode perubahan, dan tambahkan baris berikut ini pada bagian akhir dari file tersebut.
```
vm.vfs_cache_pressure = 50
```

Tekan `Esc` untuk menutup mode perubahan, selanjutnya ketik `:x` akhiri dengan menekan Enter untuk menyimpan file.