Updated on 2024-11-05 GMT+08:00

Health Check Overview

Global Accelerator provides health check to monitor the health of endpoints to help improve service reliability and availability.

After you enable health check, the global accelerator periodically sends requests to endpoints to check their status. If any endpoints become unavailable, the global accelerator stops sending requests to these endpoints. After the endpoints recover from failure, the global accelerator continue to route requests to them.

TCP can be used for health checks.

TCP Health Check

TCP health check is performed on the network layer through three-way handshakes.

Figure 1 shows the TCP health check process.

Figure 1 TCP health check

The TCP health check process is as follows:

  1. The global accelerator sends a TCP SYN packet to the endpoint.
  2. The endpoint returns an SYN-ACK packet.
    • If the global accelerator does not receive the SYN-ACK packet within the timeout duration, it declares that the endpoint is unhealthy and sends an RST packet to the endpoint to terminate the TCP connection.
    • If the global accelerator receives the SYN-ACK packet from the endpoint within the timeout duration, it declares that the endpoint is healthy and sends an ACK packet and an RST packet to the endpoint to terminate the TCP connection.

Health Check Time Window

Health check helps ensure service availability. To avoid frequent health checks on endpoints, you can disable health check after several consecutive health checks that declare endpoints healthy or unhealthy.

The time required for declaring endpoints healthy or unhealthy is determined by the following factors:

  • Interval: how often health checks are performed.
  • Timeout: how long the global accelerator waits for the response from the endpoint.
  • Maximum Retries: the maximum number of consecutive health checks after which an endpoint is declared healthy.

Endpoints can be declared unhealthy after three consecutive health checks that detect the endpoints are unhealthy, regardless of the value set for Maximum Retries.

The following is a formula for you to calculate the time:

  • Time required for declaring endpoints healthy = Timeout x Maximum retries + Interval x (Maximum retries – 1)
  • Time required for declaring endpoints unhealthy = Timeout x 3 + Interval x (3 – 1)

For example, if the interval is set to 4s and the timeout is set to 2s, the time required for declaring endpoints unhealthy is 2 x 3 + 4 x (3 – 1) = 14s