Distribusi load balancer timpang dan health check keliru LB imbalance, bad health checks
ID penyebab dc-lb-imbalance · Penanggung jawab utama Infrastruktur jaringan (Tim Infrastruktur) · Turut terlibat Pengembangan server (Tim Pengembang Game)
Koneksi menumpuk di satu server saja, atau pemain terus dikirim ke server yang sudah mati.
Mengapa Aturan distribusi tidak sesuai, atau health check tidak melihat kondisi sebenarnya → Akibatnya Hanya satu server yang kelebihan beban, atau ada percobaan koneksi ke server yang sudah mati → Di layar Hanya sebagian channel atau sebagian pemain yang mengalami slow motion, tidak bisa masuk, atau loading tanpa henti
Tepat setelah login atau maintenance, Saat banyak pemain berkumpul
Penanggung jawab
Penanggung jawab utama Infrastruktur jaringan (Tim Infrastruktur) · Turut terlibat Pengembangan server (Tim Pengembang Game)
Tugas Tim Pengembang Game
Implementasikan health check yang menjawab permintaan pemeriksaan dari load balancer berdasarkan kondisi game sebenarnya (tick berjalan, koneksi DB), sertakan juga nilai beban server.
Tugas Tim Infrastruktur
Ganti health check ke cara yang memeriksa respons game sebenarnya, distribusikan berdasarkan beban server, pantau selisih jumlah koneksi antarserver.
Di grafik
Hanya sebagian yang tinggi · Jumlah koneksi dan utilisasi CPU per server
Yang diperiksa
Tumpangkan jumlah koneksi (ss -s) dan utilisasi CPU setiap server di belakang load balancer dalam satu grafik, lalu bandingkan status kesehatan target di load balancer (AWS: HealthyHostCount dan UnHealthyHostCount di CloudWatch) dengan kondisi server game yang sebenarnya
Cocok jika
Hanya satu atau dua server yang jumlah koneksi dan CPU-nya jauh lebih tinggi daripada server lain, atau server yang tick-nya berhenti tetap berstatus “sehat” dan terus menerima koneksi baru
Tidak cocok jika
Jumlah koneksi per server merata, tetapi hanya satu channel yang lambat: mengarah ke beban di dalam channel itu (“Kelebihan beban di area single-thread (hotspot)”)
Load Balancing in the DatacenterGoogle Round robin sederhana membuat penggunaan CPU antar-task berbeda hingga 2 kali lipat; distribusi berbobot dengan backend menyertakan beban di respons dan health check; status lame duck yang menyatakan tidak mau menerima request lagi
Health checks for Network Load Balancer target groupsAWS Health check default berinterval 30 detik dan target dikeluarkan setelah 2 kali gagal; layanan UDP diperiksa dengan health check TCP atau HTTP, jadi disarankan mengonfigurasinya agar mencerminkan kondisi layanan sebenarnya