Belajar Keepalived - Performance Tuning & Latency Reduction
Episode 15 of 23

Belajar Keepalived - Performance Tuning & Latency Reduction

Episode ini mengoptimalkan timing Keepalived: menyetel advert_int dan mengenal satuan centisecond VRRPv3, memahami skew time dan master down interval, serta menyesuaikan daemon untuk HA skala besar dengan failover yang berlatensi rendah.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

Pada topologi HA, waktu adalah segalanya. Makin cepat node baru mengambil alih VIP, makin kecil jendela gangguan bagi klien. Episode 15 membuka kotak alat performance tuning: menyetel advert_int, memahami rumus timing VRRP, dan menyesuaikan daemon agar failover terasa hampir tanpa jeda.

Tapi kecepatan bukan satu-satunya sasaran. Failover yang terlalu agresif bisa memicu flapping dan gangguan yang lebih besar. Kalian akan belajar menemukan titik keseimbangan antara latensi failover dan stabilitas, serta parameter apa saja yang aman diubah di lingkungan produksi.

Menyetel Advert Interval

Dasar advert_int

advert_int adalah interval pengiriman advertisement MASTER, default 1 detik. Semakin kecil intervalnya, semakin cepat BACKUP mendeteksi MASTER mati, karena BACKUP menunggu sekitar tiga kali interval sebelum memutuskan MASTER hilang.

Satuan Centisecond di VRRPv3

Keepalived modern menerima satuan centisecond dengan akhiran cs:

advert_int dalam centisecond
vrrp_instance VI_1 {
  state MASTER
  interface eth0
  virtual_router_id 51
  priority 100
  advert_int 100cs
  virtual_ipaddress {
    192.168.1.100/24 dev eth0
  }
}

Nilai advert_int 100cs setara dengan 1 detik. Untuk failover lebih cepat, kalian bisa menurunkan ke 50cs atau 20cs pada VRRPv3, tetapi ingat bahwa setiap advertisement adalah paket jaringan yang harus dikirim secara berkala ke semua node.

Trade-off Interval

Interval kecil membuat deteksi lebih cepat tapi menambah beban jaringan dan sensitivitas terhadap packet loss. Satu paket advertisement yang hilang bukan masalah besar pada interval 1 detik, tapi bisa memicu false failover pada interval sangat kecil. Mulailah dengan 100cs dan turunkan bertahap sambil memantau kestabilan.

Memahami Skew Time dan Master Down Interval

Rumus Timing

Seperti dibahas di episode 2, dua rumus ini menentukan kecepatan takeover:

Timing takeover VRRP
skew_time = (256 - priority) / 256 detik
master_down_interval = (3 * advert_int) + skew_time

skew_time membuat node berprioritas tinggi menunggu lebih singkat, sehingga node yang memang pantas menjadi MASTER menang dalam kompetisi. master_down_interval adalah jendela sebelum BACKUP mengambil alih.

Menghitung dengan Contoh

Dengan advert_int 100cs dan priority 90, skew time sekitar 0.65 detik dan master down interval sekitar 3.65 detik. Turunkan advert_int ke 50cs, dan master down interval menyusut ke sekitar 2.15 detik. Perhitungan sederhana ini membantu kalian memperkirakan target SLO failover sebelum mengubah konfigurasi.

Menyesuaikan GARP untuk Takeover Cepat

Saat MASTER baru mengambil alih, GARP yang cepat membuat klien dan switch segera mengalihkan traffic:

GARP yang responsif
vrrp_instance VI_1 {
  state MASTER
  interface eth0
  virtual_router_id 51
  priority 100
  advert_int 100cs
  garp_master_delay 1
  garp_master_repeat 3
  virtual_ipaddress {
    192.168.1.100/24 dev eth0
  }
}

garp_master_delay 1 mengirim GARP 1 detik setelah menjadi MASTER, dan garp_master_repeat 3 mengirimkannya tiga kali. Ini menyeimbangkan kecepatan dengan toleransi switch yang mungkin sedikit lambat menyerap GARP.

Tuning Daemon untuk Skala Besar

Banyak Instance dalam Satu Daemon

Satu daemon Keepalived bisa menangani ratusan instance VRRP. Untuk skala besar, perhatikan:

  • advert_int yang wajar, misalnya 100cs sampai 1 detik, untuk membatasi jumlah paket.
  • vrrp_sync_group agar instance yang saling terkait tidak bergerak liar.
  • Beban health check: batasi interval script dan jumlah script berat.

Memantau Dampak di Log

Setelah tuning, pantau daemon dari log:

Pantau setelah tuning
sudo journalctl -u keepalived -f

Perhatikan pola transisi MASTER dan BACKUP di journalctl -u keepalived. Flapping yang muncul setelah interval diperkecil adalah sinyal untuk kembali ke nilai yang lebih konservatif.

Strategi Pengujian Failover Berlatensi Rendah

Latensi failover hanya bisa diklaim setelah diukur. Buat prosedur terukur:

Ukur waktu failover
date +%s.%N > /tmp/failover-start
sudo systemctl stop keepalived
while ! ping -c 1 -W 1 192.168.1.100 > /dev/null; do sleep 0.2; done
date +%s.%N > /tmp/failover-end
awk '{print "failover:", $1}' /tmp/failover-start

Urutan systemctl stop keepalived lalu menunggu VIP kembali hidup mengukur jendela gangguan aktual. Catat hasilnya di setiap perubahan tuning agar keputusan didasarkan data, bukan perasaan.

Penutup

Episode 15 membuat failover kalian cepat tapi tetap stabil: advert_int dalam centisecond, pemahaman skew time dan master down interval, GARP yang responsif, serta pengujian latensi yang terukur. HA kalian kini bukan hanya andal, tapi juga gesit.

Inti yang harus dibawa pulang:

  • advert_int menentukan kecepatan deteksi MASTER mati.
  • 50cs atau 20cs mempercepat failover tapi menambah sensitivitas.
  • master_down_interval hampir tiga kali advert_int ditambah skew time.
  • GARP cepat mempercepat pengalihan traffic di klien dan switch.
  • Interval terlalu kecil bisa memicu flapping.
  • Ukur latensi failover setelah setiap perubahan tuning.

Di episode 16 selanjutnya kita membahas health check advanced patterns — health check untuk layanan eksternal, HTTP dan script custom, deteksi kegagalan bertingkat dengan rise dan fall, serta integrasi restart dan alerting dengan monitoring.