Re: [squid-users] squid 3.1.0.13 performance results ready - reverse proxy - (2.6.x vs 3.1.x) - need help

From: GaneshKumar Natarajan <itisgany_at_gmail.com>
Date: Tue, 20 Oct 2009 20:11:06 -0400

Thanks Amos.

> Is this with the gzip feature already enabled?
NO. gzip is not enabled in 3.1 and also client doesnt send accept-encoding.
the request are typically the same that was sent to 2.6 version.
> Is the web server agent sending chunked replies?
NO
> both could be noticeably slower as the entire object needs to be
> re-formatted.
>

we have 32 GB, but we use only 50% of it. how much we could increase
cache_mem ?
also i will try heap LRU as you suggested for memory_replacement_policy.

let me know, if you need any other options to try.
I will run the test again and post some results to you.

Ganesh

On Tue, Oct 20, 2009 at 6:44 PM, Amos Jeffries <squid3_at_treenet.co.nz> wrote:
> On Tue, 20 Oct 2009 13:43:05 -0400, GaneshKumar Natarajan
> <itisgany_at_gmail.com> wrote:
>> We wanted to evaluate 3.1.0.13 squid to move from our current squid
>> version of 2.6.x ( stable 4 + few custom changes )
>>
>> We did the following performance test from a Avalance setup.
>>
>> 1. preload objects in squid cache.
>> 2. 3500 transactions/sec with 90-10 hit-miss ratio.
>> 3. mean size of object 23 kb.
>> 4. ran it for 30 minutes. ( 5 min ramp up to load 3500, 20 min with
>> load 3500, 5 min to cool down )
>>
>> Average response time Results we got.
>>
>> 2.6.x version = 22 milli second
>> 3.1.0.13 = 274 milli second. ( the graph increases over period of
> time... )
>>
>
> This is a bit strange. The other benchmarks I've seen (2.6STABLE5 vs
> 3.0STABLE2) show a small lag increase of around 10% for small objects and a
> large 10x decrease for MB sized objects. But not a 10x increase. This is
> one of the first benchmarks received for 3.1 so its hard to say where its
> coming from.
>
> Is this with the gzip feature already enabled?
> Is the web server agent sending chunked replies?
>  both could be noticeably slower as the entire object needs to be
> re-formatted.
>
> 3.1 does not yet do collapsed forwarding (planned for merge 3.2 if anyone
> gets time), that might also be having an effect.
>
>> ---
>>
>> similarly, we did for large objects with 40 transaction/sec, mean
>> object size 1.8 MB.
>> 2.6.x => 91 ms,  squid 3.1.0.13 => 109 ms.
>> this is somewhat ok..
>>
>> ---
>>
>> We wanted to move to 3.1.0.13 to make use of gzip+ecap feature and
>> other 3.1 features, but this performance results is disappointing.
>> The OS and squid.conf parameters for small file objects are typically
>> the same for both 2.6 and 3.1 setup.
>> [ to mention a few: cache_mem = 16 GB ( we have 32 GB max ),
>>     max_object_size_in_memory = 1 MB
>> refer config file below ]
>>
>> Questions:
>> 1. Is there any paramater am missing for 3.1 squid, which would help
>> to improve performance for high loads?
>
> cache_mem would have been the key one.
>
>>
>> 2. Or Is squid 3.1 really not ready yet for high load situations for
>> small objects? Any performance related work going on, any
>> dates/versions to expect ?
>
> Has not yet had serious testing for loads. I've only seen two quality
> independent benchmarks since 2.5.
> Adrian did a lot of benchmarking and tuning, then only plugged the results
> back into 2.7, leaving 3.x out in the cold.
> The 12-18 months of work for 3.2 is geared at pushing the bar up again
> trying to surpass 2.7.
>
>
>>    am giving the squid.conf entries 3.1 (its the same for 2.6 also ).
>>
>> let me know, if you need any other details.
>>
>> Regards,
>> Ganesh
>>
>>
>> OS
>> --
>> linux RH4 -release 8
>> Linux 2.6.9-89.ELsmp #1 SMP Mon Apr 20 10:33:05 EDT 2009 x86_64 x86_64
>> x86_64 GNU/Linux
>>
>> SQUID 3.1.0.13 Squid.conf entries for Small file objects
>> --------------------------------------------------------
>>
>> (note: the following squid parameters were the same for 2.6 squid.)
>>
>> http_port 80 vhost vport=80
>> acl port80 port 80
>> icp_port 0
>> udp_incoming_address 0.0.0.0
>> udp_outgoing_address 255.255.255.255
>> icp_query_timeout 0
>> maximum_icp_query_timeout 2000
>> mcast_icp_query_timeout 2000
>> dead_peer_timeout 10 seconds
>> hierarchy_stoplist cgi-bin ?
>> acl QUERY urlpath_regex \?
>> acl CGI urlpath_regex cgi-bin
>> acl readCommunityString snmp_community icds-nms
>> acl LMS src 192.168.2.4
>> snmp_access allow readCommunityString all
>> acl apache rep_header Server ^Apache
>> cache_swap_low 95
>> cache_swap_high 98
>> maximum_object_size 100 MB
>> minimum_object_size 0 KB
>> maximum_object_size_in_memory 1 MB
>
> The above may be limiting the 3.1 large object results. 3.1 no longer has
> the huge object speed limitations that 2.x does, so this can be increased
> provided the RAM can cope.
>
>> ipcache_size 2048
>> ipcache_low 95
>> ipcache_high 98
>> cache_replacement_policy lru
>> memory_replacement_policy lru
>
> "heap" types are better here regardless of the squid version.
>
>> cache_log /squid/logs/cache.log
>> cache_store_log none
>> log_ip_on_direct on
>>
>> debug_options ALL,1
>>
>> client_netmask 255.255.255.255
>>
>> dns_timeout 10 seconds
>> refresh_pattern ^ftp:           1440    20%     10080
>> refresh_pattern ^gopher:        1440    0%      1440
>> refresh_pattern .               1440    100%    1440    ignore-reload
>> quick_abort_min -1 KB
>> quick_abort_max 16 KB
>> quick_abort_pct 95
>> negative_ttl 1 minutes
>> positive_dns_ttl 1 hour
>> negative_dns_ttl 1 minute
>> range_offset_limit -1 MB
>> connect_timeout 5 seconds
>> peer_connect_timeout 5 seconds
>> read_timeout 60 seconds
>> request_timeout 10 seconds
>> persistent_request_timeout 10 minutes
>> pconn_timeout 120 seconds
>> shutdown_lifetime 30 seconds
>> acl manager proto cache_object
>> acl localhost src 127.0.0.1/32
>> acl SSL_ports port 443 563
>> acl Safe_ports port 80
>> acl OBJECT method OBJECT
>> acl CONNECT method CONNECT
>> acl PURGE method PURGE
>> acl Safe_methods method GET POST HEAD PUT
>> acl Safe_protos proto HTTP
>> http_access allow manager localhost1
>> http_access allow manager localhost
>> http_access deny manager
>> http_access allow Safe_methods
>> http_access allow PURGE localhost1
>> http_access allow PURGE localhost
>> http_access allow OBJECT localhost
>> http_access allow OBJECT localhost1
>
> All the below lines collapse down to:
>
>  http_access deny all
>
>> http_access deny PURGE
>> http_access deny OBJECT
>> http_access deny !Safe_ports
>> http_access deny !Safe_protos
>> http_access deny CONNECT !SSL_ports
>> http_access deny all
>>
>> http_reply_access allow all
>>
>> reply_header_max_size 20 KB
>> cache_mgr webmaster
>> cache_effective_user icds
>>
>> announce_host dummy.net
>> announce_port 3131
>>
>> forwarded_for on
>> icp_hit_stale on
>>
>> cachemgr_passwd passw0rd info stats/objects
>> client_db off
>> maximum_single_addr_tries 1
>> snmp_port 161
>> offline_mode off
>> uri_whitespace encode
>> nonhierarchical_direct on
>> prefer_direct off
>> strip_query_terms off
>> coredump_dir none
>> redirector_bypass off
>> client_persistent_connections on
>> server_persistent_connections on
>> cache_dir aufs /squid/cache0 158522 29 830
>> cache_dir aufs /squid/cache1 252949 29 830
>> cache_dir aufs /squid/cache2 252949 29 830
>> cache_dir aufs /squid/cache3 252949 29 830
>> cache_dir aufs /squid/cache4 252949 29 830
>> cache_dir aufs /squid/cache5 252949 29 830
>> request_body_max_size 100 KB
>> request_header_max_size 8 KB
>> minimum_expiry_time 0 seconds
>> read_ahead_gap 400 KB
>> cache_mem 16083 MB
>>
>>
>> acl 1001 dstdomain www1.acm.com
>> acl 1002 dstdomain www2.acm.com
>> acl 1003 dstdomain www3.acm.com
>> ...
>> acl 1025 dstdomain www25.acm.com
>> cache_peer xxx parent 8000 0 no-query originserver
> forceddomain=www.acm.com
>> cache_peer_access 10.0.1.4 allow 1001
>> cache_peer_access 10.0.1.4 allow 1002
>> cache_peer_access 10.0.1.4 allow 1003
>> ...
>> cache_peer_access 10.0.1.4 allow 1025
>> logformat L1001 %{%m/%d/%Y %H:%M:%S}tl   %>a   %la   "%ru"       %>Hs
>>    %{Content-Length}<h       %<st       %>st       %tr
>> "%{Referer}>h"    %Ss     %<A     %{Content-Range}<h
>> logformat L1002 %{%m/%d/%Y %H:%M:%S}tl   %>a   %la   "%ru"       %>Hs
>>    %{Content-Length}<h       %<st       %>st       %tr
>> "%{Referer}>h"    %Ss     %<A     %{Content-Range}<h
>> ...
>> logformat L1025 %{%m/%d/%Y %H:%M:%S}tl   %>a   %la   "%ru"       %>Hs
>>    %{Content-Length}<h       %<st       %>st       %tr
>> "%{Referer}>h"    %Ss     %<A     %{Content-Range}<h
>>
>> access_log /squid/logs/queue/1001/log L1001 1001
>> access_log /squid/logs/queue/1002/log L1002 1002
>> access_log /squid/logs/queue/1003/log L1003 1003
>> ...
>> access_log /squid/logs/queue/1025/log L1025 1025
>

-- 
Regards,
Gany
Received on Wed Oct 21 2009 - 00:18:57 MDT

This archive was generated by hypermail 2.2.0 : Wed Oct 21 2009 - 12:00:02 MDT