Home > Linux, Server Linux, Tutorial > Konfigurasi Pembagi Beban HTTP dengan HAProxy

Konfigurasi Pembagi Beban HTTP dengan HAProxy

Hari ini bereksperimen dengan konfigurasi ‘weight’ di HAProxy untuk mengatur balancing beban permintaan HTTP (layanan web). HAProxy telah menyediakan layanan web yang high-available dengan membagi beban ke beberapa server backend yang hidup.

Di jam 23.00, laju permintaan sesi (session rate) rata-rata terpantau sebesar 25 sesi, dengan laju maksimal 52 sesi perdetik. Jumlah sesi bersamaan (concurrent) yang dilayani rata-rata 155 sesi dan maksimal 191 sesi.

Saat menggunakan server backend tunggal (8 buah CPU, RAM 16 GB), semua sesi ditangani oleh server tersebut. Load CPU terpakai sebesar 68.7% us (9.05, 8.80, 8.97) dan memori terpakai 9.6GB.

Sebuah server backend (4 buah CPU, RAM 8 GB) akan ditambahkan. Dengan algoritma balancing menggunakan roundrobin, kedua server akan mendapatkan giliran sesuai dengan weightnya masing-masing. Jika tidak ditentukan (weight default 1), kedua server akan mempunyai giliran yang sama. Dan ini tidak adil karena server kedua mempunyai spesifikasi yang lebih rendah.

Konfigurasi balancing Haproxy perlu diubah.

Tiap server backend diberikan weightnya masing-masing. Server 1 diberikan weight 100 dan server 2 dengan weight 25, sehingga server 1 akan mendapatkan beban 4 kali dari server 2.

Konfigurasinya adalah sebagai berikut:

# /etc/haproxy/haproxy.conf
listen balanced-server *:80
balance roundrobin
server server1 weight 100
server server2 weight 25

Reload konfigurasi haproxy:

$ sudo /etc/init.d/haproxy reload

Setelah aktif, laju permintaan sesi total rata-rata terpantau sebesar 32 sesi perdetik (perbandingan server1:server2 sebesar 5:26), dengan laju maksimal 88 sesi perdetik (17:71). Jumlah sesi bersamaan (concurrent) yang dilayani rata-rata 175 sesi (67:108) dan maksimal 273 sesi (79:222).

Load CPU server1 terpakai sebesar 64.3% us (7.79 7.89 7.71) dan memori terpakai 10.7GB. Dengan load masing-masing yang relatif lebih kecil, sistem dengan dua server backend dapat melayani permintaan HTTP lebih banyak. Dengan perbandingan weight 4:1, perbandingan beban server juga berkisar 4:1 dilihat dari jumlah session yang ditanganinya.

Disclaimer: Perhitungan-perhitungan kinerja tersebut di atas masih kasar, masih perlu profiling yang lebih presisi.

Referensi:

    http://cbonte.github.io/haproxy-dconv/configuration-1.5.html#weight
Categories: Linux, Server Linux, Tutorial
  1. No comments yet.
*

This blog is kept spam free by WP-SpamFree.

Skip to toolbar