O algoritmo round-robin do cache_peer do Squid não está funcionando como esperado

2

Tenho um número de proxies HTTP peer-to-peer e preciso distribuir minhas solicitações entre eles uniformemente, então adicionei várias diretivas cache_peer e defino round-robin como algoritmo de seleção de pares. Esta é minha configuração:

# Basic configuration
visible_hostname squid_proxy_1
unique_hostname squid_proxy_1

http_port 3130
pid_filename /vagrant/squid_proxy_1.pid


cache deny all
http_access allow all

# Proxies
cache_peer MY_PROXY_HOST parent PROXY_PORT 0 round-robin no-query name=FIRST login=MY_PROXY_LOGIN-1:PASSWORD1
cache_peer MY_PROXY_HOST parent PROXY_PORT 0 round-robin no-query name=SECOND login=MY_PROXY_LOGIN-2:PASSWORD2
cache_peer MY_PROXY_HOST parent PROXY_PORT 0 round-robin no-query name=THIRD login=MY_PROXY_LOGIN-3:PASSWORD3

never_direct allow all

Mas tive o seguinte problema: o switch cache_peer foi criado não após cada solicitação. Veja como o meu access.log se parece com:

sudo tail -f /var/log/squid3/access.log
1460977613.775  23783 127.0.0.1 TCP_MISS/200 11371 GET http://www.google.com/ - ROUNDROBIN_PARENT/104.131.79.140 text/html
1460977621.171   4843 127.0.0.1 TCP_MISS/200 11413 GET http://www.google.com/ - ROUNDROBIN_PARENT/104.131.79.140 text/html
1460977628.367   5583 127.0.0.1 TCP_MISS/200 11412 GET http://www.google.com/ - ROUNDROBIN_PARENT/104.131.79.140 text/html
1460977634.270   4726 127.0.0.1 TCP_MISS/200 11354 GET http://www.google.com/ - ROUNDROBIN_PARENT/104.131.79.140 text/html
1460977642.429   6531 127.0.0.1 TCP_MISS/200 12841 GET http://www.google.com/ - ROUNDROBIN_PARENT/104.131.79.140 text/html
1460977645.563   1747 127.0.0.1 TCP_MISS/200 11360 GET http://www.google.com/ - ROUNDROBIN_PARENT/104.131.79.140 text/html
1460977653.731   7242 127.0.0.1 TCP_MISS/200 11408 GET http://www.google.com/ - ROUNDROBIN_PARENT/107.170.96.123 text/html
1460977658.559   3763 127.0.0.1 TCP_MISS/200 11374 GET http://www.google.com/ - ROUNDROBIN_PARENT/45.55.163.40 text/html
1460977660.516   1387 127.0.0.1 TCP_MISS/200 11398 GET http://www.google.com/ - ROUNDROBIN_PARENT/45.55.163.40 text/html
1460977662.863   1758 127.0.0.1 TCP_MISS/200 11414 GET http://www.google.com/ - ROUNDROBIN_PARENT/45.55.163.40 text/html
1460977664.667   1305 127.0.0.1 TCP_MISS/200 11419 GET http://www.google.com/ - ROUNDROBIN_PARENT/45.55.163.40 text/html
1460977676.157  10901 127.0.0.1 TCP_MISS/200 11384 GET http://www.google.com/ - ROUNDROBIN_PARENT/45.55.163.40 text/html
1460977678.565   1348 127.0.0.1 TCP_MISS/200 11321 GET http://www.google.com/ - ROUNDROBIN_PARENT/45.55.163.40 text/html
1460977681.742   2516 127.0.0.1 TCP_MISS/200 11383 GET http://www.google.com/ - ROUNDROBIN_PARENT/45.55.163.40 text/html

Acontece SOMENTE SE EU USAR ESTES PROPRIEDADES P2P PARTICULARES . Eu tentei mesmo config com proxies livres que encontrei no internado e tudo funcionou bem.

Eu acho que o problema é que meus proxies podem ser considerados mortos pelo Squid (porque eles realmente podem ser muito lentos às vezes) e, portanto, não estamos roteando tráfego para eles, mas não tenho certeza.

Existe alguma maneira de obter mais informações sobre o algoritmo de seleção de pares? Posso ajustar as opções cache_peer de alguma forma para resolver este problema?

    
por Ales Dokshanin 18.04.2016 / 13:31

1 resposta

0

Esse problema é resolvido proibindo conexões persistentes. No meu caso eu adicionei a seguinte linha para configuração e tudo está funcionando bem agora.

server_persistent_connections off

Muito obrigado ao @BillThor , que me ajudou na seção de comentários.

    
por 20.04.2016 / 16:57