22 Nov 2020

Cachefilesd untuk meningkatkan performansi NFS-Client Pada Centos 7

Pada artikel kali ini saya akan membahas sedikit tentang clustering moodle yang berfokus pada NFS nya. Mungkin saya perlu jelaskan untuk model clustering moodle yang saya buat, yaitu terdapat 1 atau lebih App Server Moodle yang akan terhubung pada satu NFS server dan satu Database Server.

NFS server didalamnya akan di fungsikan sebagai direktori moodledata pada aplikasi moodle, dimana moodle data berisikan cache, filestatic, tempat sampah, session.

Pada kasus yang saya buat sebelumnya NFS terasa sangat lambat pada saat penggunaan aplikasi pada 200 user concurrent. Termonitor saat itu semua CPU, & memory saat itu sangat rendah. Dugaan saya ini adalah karena waktu yang di butuhkan app server untuk mendapatkan data dari moodledata.

Saya membuat percobaan menaruh file 5G pada direktori moodledata, kemudian dari server app saya lakukan copy data, ternyata waktu yang di butuhkan kisaran 20 sampai 30 detik.

[root@moodle-app ~]# time cp /var/www/html/moodledata/testfile .

real    0m25.983s
user    0m0.015s
sys     0m4.328s

[root@moodle-app ~]# time cp /var/www/html/moodledata/testfile .

real    0m19.160s
user    0m0.006s
sys     0m4.351s

[root@moodle-app ~]# time cp /var/www/html/moodledata/testfile /tmp

real    0m25.415s

user    0m0.012s

sys     0m4.363s

dengan catatan disini konfigurasi fstab sebagai berikut :

{IP_NFS_SERVER}:{Source_Directory} {Destination_Directory} nfs      defaults    0       0

Upgrade Performance dengan cachefilesd

Cachedfilesd di install pada setiap App server, dengan cara

yum install cachefilesd -y

tunggu sampai instalasi selesai .

Secara default cachefilesd berada pada direktori /var/cache/fscache. Jika direktori tersebut bukanlah disk ssd, ada baiknya folder tersebut di rubah pada direktori yang berada pada disk ssd. Konfigurasi ada pada /etc/cachefilesd.conf.

Kemudian setting pada /etc/fstab dengan konfigurasi di bawah ini :

{IP_NFS_SERVER}:{Source_Directory} {Destination_Directory} nfs4         rsize=32768,wsize=32768,intr,hard,proto=tcp,sync,fsc,noatime,vers=4.2,nodev,nosuid,_netdev     0       0

{IP_NFS_SERVER} merupakan IP address dari nfs server

{Source_Directory} adalah direktori moodledata pada nfs_server

{Destination_Directory} adalah direktori yang ada di App Moodle untuk mounting moodledata.

Jalankan cachefilesd:

Systemctl enable –now cachefilesd

Kemudian reboot server app

Setelah itu saya lakukan pengujian kembali dengan kondisi telah menggunakan cachefilesd

[root@moodle-app ~]# time cp /var/www/html/moodledata/testfile .

real    0m36.356s
user    0m0.098s
sys     0m6.412s

[root@moodle-app ~]# time cp /var/www/html/moodledata/testfile .

real    0m5.095s
user    0m0.099s
sys     0m3.366s

[root@moodle-app ~]# time cp /var/www/html/moodledata/testfile /tmp

real    0m3.363s
user    0m0.107s
sys     0m3.257s

Table Perbandingan

Pengujian No – cachefilesd Cachefilesd
Pengujian pertama 0m25.983s 0m36.356s (no cache yet)
Pengujian kedua 0m19.160s 0m5.095s
Pengujian Ketiga 0m25.415s 0m3.363s

Pada pengujian pertama cachefilesd waktu eksekusi tinggi karena memang file yang di copy belum tercached pada app server.

Dari hasil 3 pengujian dengan membandingkan sebelum dan sesudah menggunakan cachefilesd. Maka saya melihat penggunaan cachefilesd cukup membantu dalam permintaan data dari Apps server ke NFS Server.

Selajutnya masih adalah yang masih belum terselesaikan yaitu time eksekusi dari moodle app server ke nfs server moodle data. mungkin ini bisa menjadi bahan oprekan selanjutnya.

Terima Kasih

— HanangPriambodo —

Leave a Reply