Jika Anda menjalankan server dengan traffic yang sangat padat, penting kiranya untuk mengetahui berapa jumlah yang bisa dilayani oleh server kita.
Tentunya pertimbangan kita berdasarkan jumlah RAM yang digunakan, serta kemampuan server itu sendirinya dapat menampung permintaan hingga berapa jumlahnya.
Maka yang perlu kita lakukan adalah mencari batas max clients yang ideal, agar server tidak overload.
Apa itu Max Clients?
Jika Anda menginstall cPanel/WHM, Anda dapat melihat pengertian apa itu max clients pada Service Configuration → Apache Configuration → Global Configuration → Max Request Workers (sebelumnya Max Clients). Yaitu: This directive sets the limit on the number of simultaneous requests that will be served.
Simultaneous requests adalah permintaan pada waktu yang sama ke server. Max clients adalah jumlah maksimal request yang dapat dilayani dalam waktu yang bersamaan. Untuk lebih memahami apa itu max clients, kami umpakan seperti analogi di bawah ini.
Analogi
Bayangkan sebuah restoran yang memiliki daya tampung hanya 50 pengunjung, lalu pada suatu hari ada rombongan 3 bus pariwisata yang singgah di restoran tersebut.
Dalam hal ini, server hanya mampu melayani 50 penumpang saja, sementara sisanya terpaksa harus menunggu.
Mengetahui Server Resources
Hal yang pertama kali dilakukan adalah mengetahui kemampuan server kita dalam kaitannya berapa banyak clients yang bisa ditampung. Points tersebut dapat kita rinci sebagai berikut:
- Berapa RAM server yang Anda miliki?
- Berapa RAM yang digunakan untuk OS?
- Berapa RAM yang digunakan untuk MySQL?
- Berapa RAM yang digunakan untuk rata-rata proses Apache?
Sedangkan untuk menghitung berapa jumlah max clients yang ideal rumusnya:
Max Clients = Jumlah RAM server – (Alokasi RAM ke MySQL + Alokasi RAM ke OS) / rata-rata proses Apache
Maka, kita lakukan pengumpulan data.
Berapa RAM Anda?
Menentukan berapa jumlah RAM kita sangat mudah karena kita mengetahui secara pasti berapa jumlah RAM yang kita miliki saat membeli server sebelumnya. Apakah itu 512 MB, 1 GB, 2 GB, atau 4 GB, dsb.
Yang perlu dicatat adalah RAM keseluruhan yang belum dikurangi dengan kalkulasi seperti OS, MySQL, dsb.
Dalam case ini, kami menggunakan RAM 1 GB.
Berapa RAM yang Dialokasikan Untuk OS?
Hal yang perlu dilakukan untuk mengetahui hasil terbaik berapa alokasi RAM yang digunakan untuk OS adalah dengan menon-aktifkan servis Apache dan MySQL terlebih dahulu.
Jalankan:
service httpd stop
service mysql stop
Lalu jalankan command berikut:
ps aux | awk '{sum1 +=$4}; END {print sum1}'
Hasilnya, kami mendapatkan 2.5 MB untuk OS. Tetapi kita menggunakan data yang diambil dari control panel server kita. Kita menggunakan angka 148.8 MB alokasi RAM untuk OS.
Berapa RAM yang Dialokasikan Untuk MySQL?
Untuk mengetahui RAM yang dialokasikan untuk MySQL, cara terbaik dengan menggunakan script mysqltunner.pl.
Download & Install mysqltuner.pl
- Login ke server via SSH.
- Download mysqltuner.pl
cd /usr/local/bin
https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl
- Berikan izin:
chmod +x mysqltuner.pl
- Lalu jalankan mysqltuner.pl
/usr/local/bin/mysqltuner.pl
Catatan:
Ini bukan tutorial seputar tuning MySQL, karena untuk tutorial MySQL tuning sudah kami bahas sebelumnya di artikel seputar MySQL tuning.
Setelah Anda menjalankan script mysqltuner.pl, Anda akan mendapatkan hasil misalnya seperti berikut ini:
1.1. – Contoh Hasil Scanning dari mysqltuner.pl.
Dari gambar yang kami tandai merah di atas menunjukkan, memory yang digunakan untuk 583.2 MB. Bila alokasi memory Anda menunjukkan satuan GB atau G, convert terlebih dahulu ke MB agar lebih mudah menghitungnya nanti.
Berapa Rata-Rata Proses Apache?
Untuk mengetahui berapa rata-rata proses Apache, jalankan command berikut untuk Anda pengguna CentOS:
ps -ylC httpd | awk '{x += $8;y += 1} END {print "Apache Memory Usage (MB): "x/1024; print "Average Proccess Size (MB): "x/((y-1)*1024)}'
Hasil yang kami dapatkan:
Apache Memory Usage (MB): 20.4805
Average Proccess Size (MB): 3.41341
Kita telah dapat semua data untuk disubstitusikan nanti.
Menghitung Max Clients Ideal
Seperti yang sudah kami sebutkan di atas, rumus untuk menghitung Max clients adalah:
Max Clients = Jumlah RAM server – (Alokasi RAM ke MySQL + Alokasi RAM ke OS) / rata-rata proses Apache
Kita telah mendapatkan:
- Jumlah RAM = 1 GB (1024).
- Alokasi RAM untuk MySQL = 583.2 MB.
- Alokasi RAM untuk OS = 148.8 MB.
- Rata-rata proses Apache = 3.4 (bulatkan jika lebih dari 5 di belakang ,).
Sekarang, kita substitusikan:
Max clients = 1024 – (583.2 + 148.8)/3.4
Max clients = (1024 – 732)/3.4
Max clients = 292:3.4
Max clients = 85.8
Setelah kita mendapatkan angka di atas, kita jadi mengethaui kemungkinan server kita dapat melayani permintaan pengunjung sebesar 85 atau 86 visitors.
Ini sangat membantu sekali mana kala kita menentukan berapa jumlah max clients kita dalam satu server.
Jika Anda menginstall cPanel/WHM, Anda akan terbantu dalam menentukan berapa sebaiknya jumlah max clients pada Service Configuration → Apache Configuration → Global Configuration → Max Request Workers (sebelumnya Max Clients).
Dengan angka 85.5 yang dibulatkan menjadi 86, Anda dapat mengetahui optimalnya server Anda dapat menampung clients hingga 86.
Kesimpulan
Dengan mengingat kembali arti dari Max Clients:
“This directive sets the limit on the number of simultaneous requests that will be served.”
Simultaneous requests secara sederhana dapat dipahami dengan analogi restoran di atas. Dengan demikian, yang mampu dilayani restoran dalam hal ini server, hanya 86. Jika ternyata ada permintaan 120 secara bersamaan, maka 34-nya akan menunggu sampai slot berikutnya kembali terbuka.
Banyak Faktor
Dengan menghitung jumlah max clients, kita jadi dapat menghadirkan server dengan performa yang lebih optimal. Tentunya, banyak faktor yang mempengaruhi agar server dapat berjalan optimal. Dan salah satunya adalah pada artikel ini.
Setidaknya, server yang ideal adalah yang cukup mampu melayani simultaneous requests dengan trafik tertentu. Sekiranya server tidak cukup kuat, Anda bisa bertanya-tanya tentang kualitas server tersebut.
Itulah beberapa rekomendasi kami, semoga dapat dijadikan acuan Anda untuk mengetahui seberapa optimalnya server yang Anda miliki.
Mas kalau saya mau menghitung performace application website saya ketika sudah di integrasikan ke sebuah server gimana ya, saya kurang paham?
saya mau menghitung jumlah maximal client yang bisa di layani dari application saya tersebut