O Squid não é inteligente o suficiente para isso. Como a documentação do squid diz:
Squid treats all round-robin parents equally. It is not currently possible to, e.g., forward 25% of the requests to one parent and 75% to another.
IPVS e haproxy têm várias algoritmos disponíveis como round-robin ponderado, menos conexões e assim por diante. Mas eles não têm um mecanismo embutido para fazer isso pela carga da CPU nos servidores reais.
Em uma instalação do IPVS que eu gerencio, nós temos um cronjob que conecta SSH em cada servidor e pega a carga do / proc / loadavg. Com base na carga, calcula um peso adequado. Usando o comando ipvsadm, o peso para esse servidor real é então ajustado. Funciona muito bem e causa cargas quase iguais em cada servidor.
Tenha em mente que a carga não é a única coisa para se ver. O tempo médio de resposta pode ser uma representação mais precisa da experiência do usuário.