Gateway Load Balancer (GWLB) melakukan pemeriksaan kesehatan untuk menentukan ketersediaan server backend. Saat fitur pemeriksaan kesehatan diaktifkan, jika GWLB mendeteksi bahwa server backend tidak sehat, GWLB berhenti meneruskan permintaan ke server tersebut dan mengalihkannya ke server backend lainnya. Ketika GWLB mendeteksi bahwa server backend telah pulih, GWLB kembali meneruskan lalu lintas ke server tersebut.
Status pemeriksaan kesehatan
Tabel berikut menjelaskan status yang berbeda dari pemeriksaan kesehatan pada server backend.
Status pemeriksaan kesehatan | Deskripsi |
Menginisialisasi | Instansi GWLB dikonfigurasi dengan pemeriksaan kesehatan, dan daftar server backend sedang diinisialisasi. |
Sehat | Server backend berjalan sesuai harapan. |
Tidak Sehat | Server backend tidak merespons atau gagal dalam pemeriksaan kesehatan. |
Idle | Server backend tidak digunakan. |
Pemeriksaan Kesehatan Dinonaktifkan | Pemeriksaan kesehatan dinonaktifkan. |
Cara kerjanya
Selama pemeriksaan kesehatan oleh GWLB, pesan permintaan tidak dienkapsulasi menggunakan protokol Geneve.
Pemeriksaan kesehatan TCP
Untuk meningkatkan efisiensi pemeriksaan kesehatan TCP, GWLB mengirimkan probe TCP yang disesuaikan untuk menguji ketersediaan server backend, seperti yang ditunjukkan pada gambar berikut.
Berikut adalah cara GWLB melakukan pemeriksaan kesehatan TCP:
GWLB mengirimkan paket TCP-SYN ke alamat IP internal dan port pemeriksaan kesehatan server backend sesuai pengaturan listener.
Jika port server backend aktif, server backend akan mengembalikan paket SYN-ACK setelah menerima paket TCP-SYN.
Jika GWLB tidak menerima paket SYN-ACK dari server backend sebelum periode timeout respons berakhir, server backend dinyatakan tidak sehat. Kemudian, GWLB mengirimkan paket RST ke server backend untuk menutup koneksi TCP.
Jika GWLB menerima paket SYN-ACK dari server backend sebelum periode timeout respons berakhir, server backend lulus pemeriksaan kesehatan. GWLB mengirimkan paket ACK dan kemudian segera mengirimkan paket RST untuk menutup koneksi TCP.
Pemeriksaan kesehatan HTTP
Pemeriksaan kesehatan HTTP memperoleh informasi status melalui probe GET, seperti yang ditunjukkan pada gambar berikut.
Mekanisme pemeriksaan kesehatan HTTP adalah sebagai berikut:
Server di kluster GWLB mengirimkan permintaan HTTP GET (termasuk [nama domain] yang dikonfigurasikan) ke IP jaringan privat + [port pemeriksaan kesehatan] + [jalur pemeriksaan] server backend sesuai pengaturan pemeriksaan kesehatan.
Setelah menerima permintaan, server backend mengembalikan kode status HTTP berdasarkan status operasi layanan terkait.
Jika server di kluster GWLB tidak menerima informasi dari server backend dalam [periode timeout respons], layanan dianggap tidak responsif, dan pemeriksaan kesehatan dianggap gagal.
Jika server di kluster GWLB berhasil menerima informasi dari server backend dalam [periode timeout respons], informasi yang diterima dibandingkan dengan kode status yang dikonfigurasikan. Jika cocok, pemeriksaan kesehatan dianggap berhasil; jika tidak, dianggap gagal.
Jendela waktu pemeriksaan kesehatan
Fitur pemeriksaan kesehatan meningkatkan ketersediaan layanan Anda. Namun, failover yang sering disebabkan oleh server backend yang tidak sehat dapat memengaruhi ketersediaan sistem. Jendela waktu pemeriksaan kesehatan diperkenalkan untuk mengontrol failover. Failover hanya dilakukan ketika server backend secara berturut-turut lulus atau gagal dalam sejumlah pemeriksaan kesehatan tertentu dalam jendela waktu. Jendela waktu pemeriksaan kesehatan ditentukan oleh faktor-faktor berikut:
Interval pemeriksaan kesehatan: waktu antara dua pemeriksaan kesehatan.
Timeout respons: waktu yang diperlukan server backend untuk merespons.
Ambang batas pemeriksaan kesehatan: jumlah kali berturut-turut server backend lulus atau gagal dalam pemeriksaan kesehatan.
Jendela waktu pemeriksaan kesehatan dihitung berdasarkan rumus berikut:
Jendela waktu untuk kegagalan pemeriksaan kesehatan = Timeout respons × Ambang batas tidak sehat + Interval pemeriksaan kesehatan × (Ambang batas tidak sehat - 1)

Jendela waktu untuk keberhasilan pemeriksaan kesehatan = Waktu respons pemeriksaan kesehatan sukses × Ambang batas sehat + Interval pemeriksaan kesehatan × (Ambang batas sehat - 1)
CatatanWaktu respons pemeriksaan kesehatan sukses adalah durasi dari waktu permintaan pemeriksaan kesehatan dikirim hingga waktu respons diterima. Saat pemeriksaan kesehatan TCP dikonfigurasikan, waktu respons singkat dan hampir dapat diabaikan karena satu-satunya item pemeriksaan adalah apakah port yang diperiksa hidup. Saat pemeriksaan kesehatan HTTP dikonfigurasikan, waktu respons bergantung pada performa dan beban server aplikasi dan biasanya dalam beberapa detik.

Hasil pemeriksaan kesehatan memiliki dampak berikut pada penerusan permintaan:
Jika server backend gagal dalam pemeriksaan kesehatan, permintaan baru didistribusikan ke server backend lainnya. GWLB tetap dapat diakses oleh klien.
Jika server backend lulus pemeriksaan kesehatan, permintaan baru didistribusikan ke server backend tersebut. GWLB tetap dapat diakses oleh klien.
Jika server backend mengalami kesalahan dan gagal dalam pemeriksaan kesehatan, tetapi tidak dinyatakan tidak sehat oleh pemeriksaan kesehatan, permintaan didistribusikan ke server backend tersebut. Namun, server backend tidak dapat diakses oleh permintaan. Secara default, server backend dinyatakan tidak sehat jika gagal dalam pemeriksaan kesehatan selama tiga kali berturut-turut.
Contoh timeout respons pemeriksaan kesehatan dan interval pemeriksaan kesehatan
Dalam contoh ini, pengaturan pemeriksaan kesehatan berikut digunakan:
Response timeout period: 5 seconds
Health check interval: 2 seconds
Healthy threshold: 3 times
Unhealthy threshold: 3 times
Jendela waktu untuk kegagalan pemeriksaan kesehatan = Timeout respons × Ambang batas tidak sehat + Interval pemeriksaan kesehatan × (Ambang batas tidak sehat - 1). Dalam contoh ini, jendela waktu adalah 19 detik berdasarkan rumus 5 × 3 + 2 × (3 - 1). Jika server backend tidak merespons selama 19 detik, server backend dinyatakan tidak sehat.
Gambar berikut menunjukkan jendela waktu dari status sehat ke status tidak sehat.

Jendela waktu untuk keberhasilan pemeriksaan kesehatan = Waktu respons pemeriksaan kesehatan sukses × Ambang batas sehat + Interval pemeriksaan kesehatan × (Ambang batas sehat - 1). Dalam contoh ini, jendela waktu adalah 7 detik berdasarkan rumus (1 × 3) + 2 × (3 – 1). Jika server backend merespons dalam 7 detik, server backend dinyatakan sehat.
Waktu respons pemeriksaan kesehatan sukses adalah durasi dari waktu permintaan pemeriksaan kesehatan dikirim hingga waktu respons diterima. Saat pemeriksaan kesehatan TCP dikonfigurasikan, waktu respons singkat dan hampir dapat diabaikan karena satu-satunya item pemeriksaan adalah apakah port yang diperiksa hidup. Saat pemeriksaan kesehatan HTTP dikonfigurasikan, waktu respons bergantung pada performa dan beban server aplikasi dan biasanya dalam beberapa detik.
Gambar berikut menunjukkan jendela waktu dari status tidak sehat ke status sehat. Dalam gambar berikut, waktu yang diperlukan untuk server merespons permintaan pemeriksaan kesehatan adalah 1 detik.

Nama domain untuk pemeriksaan kesehatan HTTP
Anda dapat menentukan nama domain untuk pemeriksaan kesehatan HTTP. Pengaturan ini bersifat opsional. Beberapa server aplikasi harus memverifikasi header Host dalam permintaan sebelum server aplikasi dapat menerima permintaan tersebut. Dalam hal ini, permintaan harus membawa header Host. Jika nama domain dikonfigurasikan untuk pemeriksaan kesehatan, GWLB menyisipkan nama domain ke dalam header Host. Jika tidak, permintaan pemeriksaan kesehatan tidak membawa header Host. Dalam hal ini, permintaan pemeriksaan kesehatan ditolak oleh server, yang mungkin dinyatakan tidak sehat.
Jika server aplikasi Anda memverifikasi header Host dalam permintaan, Anda harus mengonfigurasikan nama domain untuk pemeriksaan kesehatan untuk memastikan bahwa fitur pemeriksaan kesehatan berfungsi sesuai harapan.
Referensi
Untuk informasi lebih lanjut, lihat Konfigurasi dan Kelola Pemeriksaan Kesehatan GWLB.