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

From: Amos Jeffries <squid3_at_treenet.co.nz>
Date: Wed, 21 Oct 2009 23:53:23 +1300

GaneshKumar Natarajan wrote:
> 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 ?

It depends highly o the traffic load and object sizes. Best-practice is
to start small'ish and increase it gradually while watching that RAM
does not get full or start to swap. swapping is very bad for performance.

> 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.

I can't think of anything that would be useful for a general benchmark.

Thanks.
Amos

>
> 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
>
>
>

-- 
Please be using
   Current Stable Squid 2.7.STABLE7 or 3.0.STABLE19
   Current Beta Squid 3.1.0.14
Received on Wed Oct 21 2009 - 10:53:29 MDT

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