Why doesn’t RR load balancing appear to be even?
Envoy utilizes a siloed threading model. This means that worker
threads and the load balancers that run on them do not coordinate with each other. When utilizing
load balancing policies such as round robin,
it may thus appear that load balancing is not working properly when using multiple workers. The
--concurrency
option can be used to adjust the number of workers if desired.
The siloed execution model is also the reason why multiple HTTP/2 or HTTP/3 connections may be established to each upstream; connection pools are not shared between workers.