[squid-users] TIMEOUT_ROUNDROBIN_PARENT and poor SIBLING_HIT performance

From: M. Leong Lists <leongmzlist_at_gmail.com>
Date: Wed, 23 Feb 2011 14:55:25 -0800

Hi,

I've 2 problems where squid is taking excessive time to service a request.

My setup:
-Accelerator setup
-backends are on load balancer, squid is configured to connect to the
load balancer IP multiple times
-squid's configured to store the cache as long as possible.
-icp time is set to really high, otherwise some siblings doesn't respond
in time. Should this be lowered?

Version:
Squid Cache: Version 2.7.STABLE9
configure options: '--prefix=/apps/squid' '--enable-x-accelerator-vary'
'--enable-linux-netfilter' '--enable-cache-digests' '--enable-htcp'
'--enable-snmp' '--enable-referer-log' '--enable-useragent-log'
'--enable-delay-pools' '--enable-icmp' '--enable-async-io=500'
'--with-maxfd=10240' '--enable-removal-policies=lru,heap'
'--enable-follow-x-forwarded-for' '--enable-epoll' '--with-large-files'

Relevant config:

http_port 80 vhost defaultsite=cache.example.com
cache_mem 512 MB

cache_peer lb.example.com parent 80 0 round-robin no-query originserver
no-netdb-exchange no-digest name=lb_01

... <snip>

cache_peer lb.example.com parent 80 0 round-robin no-query originserver
no-netdb-exchange no-digest name=lb_10

cache_peer cache01.example.com sibling 80 3130 proxy-only no-delay
allow-miss weight=1 no-netdb-exchange no-digest name=cache01

..<snip>

cache_peer cache08.example.com sibling 80 3130 proxy-only no-delay
allow-miss weight=1 no-netdb-exchange no-digest name=cache08

client_persistent_connections off
server_persistent_connections off
digest_generation off

icp_access allow all
icp_hit_stale on
icp_query_timeout 7000
maximum_icp_query_timeout 10000
nonhierarchical_direct off
url_rewrite_host_header off

offline_mode on
--------------------------------------

TIMEOUT_ROUNDROBIN_PARENT

All the TIMEOUT requests took at least 7000 ms, which is the value of
icp_query_timeout. Some requests took at over 30 sec to complete. I
crossed referenced those long requests against the backends and notice a
big mismatch in the times. The backends are tomcat apps w/ Java 1.6. I
extracted the times from the tomcat access log.

Squid Time Backend time:
7922 924
8422 1421
7488 487
12835 5833
25098 18096
34793 611
21806 14804

------------------------------------
High SIBLING_HIT response time:

The same problem occurs with sibling hits. The logged process time on
the sibling and the one requesting from the sibling vastly differs:

Squid Time Time on Sibling's Log
4534 30
23994 12959
6661 40

---------------
Does anyone know of a reason why it would take so long for squid to
complete a request??

mike
Received on Wed Feb 23 2011 - 22:55:35 MST

This archive was generated by hypermail 2.2.0 : Thu Feb 24 2011 - 12:00:03 MST