Cara Mengubah Parameter Swappiness di Linux

Swappiness adalah paramater kernel yang mendefinisikan seberapa banyak dan seringnya kernel Linux menyalin halaman memori dari RAM ke swap. Parameter swappiness di linux memiliki nilai default yaitu 60. Nilai ini dapat disesuaikan antara 0 hingga 100. Semakin besar swappiness, semakin agresif kernel akan menggunakan swap.

Parameter swappiness mengontrol kecenderungan kernel untuk memindahkan proses dari RAM ke swap. Karena memori swap pada umumnya lebih lambat daripada RAM, ini menyebabkan response time menjadi lebih lambat pada sistem dan aplikasi, jika perpindahan memory pages dari RAM ke swap atau sebaliknya terlalu sering.

Melihat Proses yang Menggunakan Swap di Linux

Menggunakan swap di Linux dapat memperlambat kinerja sistem. Adalah sesuatu yang normal, ketika sistem Linux menggunakan swap, walaupun jumlah RAM yang tersedia masih cukup banyak. Sebab kernel akan memindah memory pages ke swap untuk aplikasi yang jarang digunakan.

Penggunaan ruang swap hanya akan menimbulkan masalah ketika RAM tidak tersedia. Agar memastikan proses dan aplikasi tetap dapat berjalan, kernel akan memaksa secara terus menerus memindahkan memory pages ke swap memory dan kembali ke RAM. Dalam hal ini aplikasi monitor sistem akan menampilkan aktifitas disk i/o dalam jumlah yang banyak.

Untuk melihat banyaknya penggunaan swap di Linux, Anda bisa menggunakan beberapa perintah vmstat.

Pada vmstat, ‘si’ menunjukkan jumlah memory pages yang dipindahkan dari disk (swap) ke memori fisik (RAM). Sedangkan ‘so’ menunjukkan proses kebalikannya, yaitu jumlah memory pages yang dipindahkan dari memori fisik ke disk.

Anda juga bisa melisting semua proses aplikasi yang menggunakan swap dengan menjalankan shell script berikut ini:

#!/bin/bash
# Get current swap usage for all running processes
SUM=0
OVERALL=0
for DIR in `find /proc/ -maxdepth 1 -type d | egrep "^/proc/[0-9]"` ; do
        PID=`echo $DIR | cut -d / -f 3`
        PROGNAME=`ps -p $PID -o comm --no-headers`
        for SWAP in `grep Swap $DIR/smaps 2>/dev/null| awk '{ print $2 }'`
        do
                let SUM=$SUM+$SWAP
        done
        echo "PID=$PID - Swap used: $SUM - ($PROGNAME )"
        let OVERALL=$OVERALL+$SUM
        SUM=0
 
done
echo "Jumlah keseluruhan proses yang menggunakan swap: $OVERALL"

Gunakan text editor vi atau nano, dan simpan dengan nama “checkswap.sh”.

nano checkswap.sh && chmod +x checkswap.sh

Kemudian, agar proses yang sama sekali tidak menggunakan swap tidak ditampilkan, Anda bisa menjalankan script diatas dengan perintah berikut:

./checkswap.sh  | egrep -v "Swap used: 0" |sort -n -k 5

Mengubah Parameter Swappiness di Linux

Apabila swappiness di set ke 0, berarti kernel akan mencegah proses swapping dari memori fisik (RAM) selama mungkin. Sedangkan apabila swappiness di set ke 100, maka ini menginstruksikan kernel untuk menjalankan proses swapping secara agresif dari memori fisik ke memori swap.

Sehingga mengurangi nilai parameter swapping akan meningkatkan kinerja sistem secara keseluruhan pada penggunaan yang umum. Nilai parameter swappiness yang direkomendasikan adalah 10, namun Anda bisa bereksperimen untuk menyesuaikan nilai swappiness yang tepat untuk karakteristik penggunaan server Linux yang digunakan.

Untuk melihat nilai parameter swappiness di linux, dapat menggunakan perintah berikut:

cat /proc/sys/vm/swappiness

Selanjutnya apabila Anda ingin mengubah nilai parameter swappiness di linux untuk sementara waktu, gunakan perintah berikut:

sysctl vm.swappiness=20

Dengan x adalah nilai swappiness yang ingin Anda sesuaikan, dengan range 0 hingga 100. Nilai parameter swappiness di linux akan kembali ke default ketika Anda merestar sistem. Apabila Anda ingin mengubahnya secara permanen, edit file /etc/sysctl.conf dengan menggunakan aplikasi text editor seperti vi atau nano.

nano /etc/sysctl.conf

Kemudian tambahkan baris berikut:

vm.swappiness=x

Dengan x adalah nilai swappiness yang ingin Anda sesuaikan. Karena Anda sudah menentukan nilai parameter swappiness di linux pada konfigurasi sysctl, maka nilai tersebut akan diterapkan secara otomatis saat Anda merestart sistem.

 

Leave a Reply