I have been evaluating SQUID to deploy in front of a large web site to cache
all static content (Images, JS Files, CSS Files, HTML files etc...) for the
web site. I used JMeter as a load testing tool to evaluate the scalability
of SQUID. This is my current config:-
cache_mem - 256MB
disk cache - 10MB.
I purposely have a very low disk cache so that i can get most out of
in-memory caching of static content. I also set content expiry (if not set)
for images, JSP files etc to
14400 80% 43200
My load test is extremely simple:
I have one thread doing 100 Iterations against the SQUID proxy and against
the Apache Web Server directly. For a particular URL and the 45 images
referenced by that URL, these are the results i see:
Against SQUID - 307 Ms Avg response time. Throughput 90/Minute
Against Web App directly - 377 Ms. Avg response time. Througput 84/Minute
Now i start to crank up the no of cocurrent clients to 5 users doing 50
iterations. These are the results:-
Against SQUID - 1.67 Seconds Avg Response Time. Througput 117/Minute
Against Web App directly - 1.64 Seconds Avg Response Time. Thorughput
114/Minute
Then i crank up to 10 users doing 50 iterations. These are the results:-
Against SQUID - 3.5 Seconds Avg Response TIme. Throughput 110/Minute
Against Web App directly - 2.9 Seconds Avg Response TIme. Throughput
111/minute.
For these tests i had a 95% Cache Hit ratio on SQUID with around 40% as
MEMORY Cache Hits.
Why is that the Web application scales better than SQUID? The one thing that
stands out is that SQUID is running as one process one thread, whereas the
web
site is multithreaded.
Is there a way for SQUID to spawn more processes/threads? How can i
configure SQUID to scale much better?
Received on Sat Mar 06 2004 - 15:37:56 MST
This archive was generated by hypermail pre-2.1.9 : Thu Apr 01 2004 - 12:00:01 MST