Search squid archive

Re: Squid performance with high load

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thank you Amos for clarifying these issues.
I will skip SMP and use single worker since Rock limit my max object
size to 32kb when used in shared environments.
My new cache_dir configuration looks like this now :

cache_dir rock /mnt/ssd/cache/ 300000 max-size=131072
cache_dir aufs /mnt/sas1/cache/store1  1400000 32 512

I have enabled store.log to be used with some other software
collecting data from it

my disks are now mounted with
noatime,barrier=0,journal_async_commit,noauto_da_alloc,nobh,data=writeback,commit=10

I will keep the list posted with my results.
Thanks.

On Sat, Mar 30, 2013 at 12:57 PM, Amos Jeffries <squid3@xxxxxxxxxxxxx> wrote:
> On 30/03/2013 6:33 a.m., Hasanen AL-Bana wrote:
>>
>> Hi,
>>
>> I am running squid 3.2 with an average of 50k req/min. Total received
>> bandwidth is around 200mbit/s.
>> I have problem when my aufs cache_dirs reaches size above 600GB.
>> Traffic starts dropping and going up again , happening every 20~30
>> minutes.
>> I have more that enough RAM in the system (125GB DDR3 !) , All disks
>> are SAS 15k rpm, one of them is and SSD 450GB.
>> So hardware should not cause any problem and I should easily spawn
>> multiple squid workers any time.
>> So what could cause such problems ?
>
>
> #1 - AUFS is *not* SMP-aware component in Squid.
>
> Each of the two workers you are using will be altering the on-disk portion
> of the cache without updating the in-memory index. When the other worker
> encounters these over-written files it will erase them.
>
> For now you are required to use the macros hacks to split the cache_dir
> lines between the workers.
>
>
> #2 - you have multiple cache_dir per disk. Or so it seems from your
> configuration. Is that correct?
>
>  * squid load balances between cache_dir treating them as separate physcal
> HDD when it comes to loading calculations.
>
> * the memory requirement for indexing these 1.6 TB of disk space is ~24GB
> per worker plus the 20GB of shared emmory cache ==> 68GB of RAM.
>
>
>
> I advise to you inform Squid about the real disk topology it is working
> with. No more than one AUFS cache_dir per physical disk and allocate the
> cache_dir size to ~80-90% the full available disk space. With each worker
> assigned to use a sub-set of the AUFS cache_dir and associated disks.
>
> For best performance and object de-duplication you should consider using
> rock cache_dir for small objects. They *are* shared between workers, and can
> also share disk space with an AUFS disk.
>
>
>
>> Thank you.
>>
>>
>> ====================================================================================
>> include /etc/squid3/refresh.conf
>>
>>
>> cache_mem 20 GB
>>
>> acl localnet src 10.0.0.0/8     # RFC1918 possible internal network
>> acl localnet src 172.16.0.0/12  # RFC1918 possible internal network
>> acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
>> acl localnet src fc00::/7       # RFC 4193 local private network range
>> acl localnet src fe80::/10      # RFC 4291 link-local (directly
>> plugged) machines
>>
>> acl SSL_ports port 443
>> acl Safe_ports port 80          # http
>> acl Safe_ports port 21          # ftp
>> acl Safe_ports port 443         # https
>> acl Safe_ports port 70          # gopher
>> acl Safe_ports port 210         # wais
>> acl Safe_ports port 1025-65535  # unregistered ports
>> acl Safe_ports port 280         # http-mgmt
>> acl Safe_ports port 488         # gss-http
>> acl Safe_ports port 591         # filemaker
>> acl Safe_ports port 777         # multiling http
>> acl CONNECT method CONNECT
>>
>>
>> http_access allow localhost manager
>> http_access deny manager
>> http_access deny !Safe_ports
>> http_access deny CONNECT !SSL_ports
>>
>> http_access allow localnet
>> http_access allow localhost
>>
>> http_access allow all
>
>
> Sure, why bother having security at all?
>
>
>>   maximum_object_size_in_memory 512 KB
>>   memory_cache_mode always
>>   memory_replacement_policy heap GDSF
>>   cache_replacement_policy heap LFUDA
>>   store_dir_select_algorithm least-load
>>   max_open_disk_fds 0
>>   maximum_object_size 200 MB
>>
>>   cache_swap_high 98
>>   cache_swap_low  97
>>
>>
>> # access_log stdio:/var/log/squid3/access.log
>>   access_log none
>>   cache_log /var/log/squid3/cache.log
>>   cache_store_log stdio:/var/log/squid3/store.log
>
>
> Usually the log you want to use is access_log, with the store debug log
> (cache_store_log) disabled.
>
>
>>   workers 2
>>
>> cache_dir aufs /mnt/ssd/cache/store1 50000 32 512
>> cache_dir aufs /mnt/ssd/cache/store2 50000 32 512
>> cache_dir aufs /mnt/ssd/cache/store3 50000 32 512
>> cache_dir aufs /mnt/ssd/cache/store4 50000 32 512
>> cache_dir aufs /mnt/ssd/cache/store5 50000 32 512
>> cache_dir aufs /mnt/ssd/cache/store6 50000 32 512
>> cache_dir aufs /mnt/ssd/cache/store7 50000 32 512
>>
>>
>> cache_dir aufs /mnt/sas1/cache/store1  50000 32 512
>> cache_dir aufs /mnt/sas1/cache/store2  50000 32 512
>> cache_dir aufs /mnt/sas1/cache/store3  50000 32 512
>> cache_dir aufs /mnt/sas1/cache/store4  50000 32 512
>> cache_dir aufs /mnt/sas1/cache/store5  50000 32 512
>> cache_dir aufs /mnt/sas1/cache/store6  50000 32 512
>> cache_dir aufs /mnt/sas1/cache/store7  50000 32 512
>> cache_dir aufs /mnt/sas1/cache/store8  50000 32 512
>> cache_dir aufs /mnt/sas1/cache/store9  50000 32 512
>> cache_dir aufs /mnt/sas1/cache/store10  50000 32 512
>> cache_dir aufs /mnt/sas1/cache/store11  50000 32 512
>> cache_dir aufs /mnt/sas1/cache/store12  50000 32 512
>>
>>
>> cache_dir aufs /mnt/sas2/cache/store1  50000 32 512
>> cache_dir aufs /mnt/sas2/cache/store2  50000 32 512
>> cache_dir aufs /mnt/sas2/cache/store3  50000 32 512
>> cache_dir aufs /mnt/sas2/cache/store4  50000 32 512
>> cache_dir aufs /mnt/sas2/cache/store5  50000 32 512
>> cache_dir aufs /mnt/sas2/cache/store6  50000 32 512
>> cache_dir aufs /mnt/sas2/cache/store7  50000 32 512
>> cache_dir aufs /mnt/sas2/cache/store8  50000 32 512
>> cache_dir aufs /mnt/sas2/cache/store9  50000 32 512
>> cache_dir aufs /mnt/sas2/cache/store10  50000 32 512
>> cache_dir aufs /mnt/sas2/cache/store11  50000 32 512
>> cache_dir aufs /mnt/sas2/cache/store12  50000 32 512
>>
>> ===========================================================
>>
>> and my refresh patterns are :
>>
>> #general
>>   refresh_pattern \.(jp(e?g|e|2)|tiff?|bmp|gif|png)
>>                            12560  99% 30240    ignore-no-cache
>> ignore-no-store override-expire override-lastmod ignore-private
>>   refresh_pattern
>> \.(z(ip|[0-9]{2})|r(ar|[0-9]{2})|jar|bz2|gz|tar|rpm|vpu)
>>           12560  99% 30240    ignore-no-cache ignore-no-store
>> override-expire override-lastmod ignore-private
>>   refresh_pattern \.(mp3|wav|og(g|a)|flac|midi?|rm|aac|wma|mka|ape)
>>                            12560  99% 30240    ignore-no-cache
>> ignore-no-store override-expire override-lastmod ignore-private
>>   refresh_pattern \.(exe|msi|dmg|bin|xpi|iso|mar|psf|cab|ipk|ipa|apk)
>>                            12560  99% 30240    ignore-no-cache
>> ignore-no-store override-expire override-lastmod ignore-private
>>   refresh_pattern
>>
>> \.(mpeg|ra?m|avi|mp(g|e|4)|mov|divx|asf|wmv|m\dv|rv|vob|asx|ogm|flv|3gp|on2)
>>     12560  99% 30240    ignore-no-cache ignore-no-store override-expire
>> override-lastmod ignore-private
>>   refresh_pattern fbcdn 12560  99% 30240   ignore-no-cache
>> ignore-no-store override-expire override-lastmod ignore-private
>>   refresh_pattern \.(php|jsp|cgi|asx|html|htm) 12560 100% 30240
>> reload-into-ims ignore-no-cache
>>
>>   refresh_pattern -i \.adobe\.com 161280 500% 525948 override-expire
>> ignore-reload
>>
>> #specific sites
>>   refresh_pattern \.(ico|video-stats)
>>            12560 100% 30240  override-expire ignore-reload
>> ignore-no-cache  ignore-private ignore-auth override-lastmod
>>   refresh_pattern ytimg\.com.*\.(jpg|png)
>>            12560 100% 30240  override-expire ignore-reload
>>   refresh_pattern ((facebook.com)|(85.131.151.39)).*\.(png|gif)
>>            12560 100% 30240  override-expire ignore-reload
>> ignore-no-cache ignore-private
>>   refresh_pattern photobucket.*\.(jp(e?g|e|2)|tiff?|bmp|gif|png)
>>            12560 100% 30240  override-expire ignore-reload
>>   refresh_pattern .fbcdn.net.*\.(jpg|gif|png)
>>            12560 100% 30240  ignore-no-cache override-expire
>> ignore-reload
>>   refresh_pattern ^http:\/\/images|pics|thumbs[0-9]\.
>>            12560 100% 30240   ignore-no-cache  ignore-reload
>> override-expire
>>   refresh_pattern
>> mediafire.com\/images.*\.(jp(e?g|e|2)|tiff?|bmp|gif|png)        12560
>> 100% 30240   reload-into-ims override-expire ignore-private
>>
>>   refresh_pattern . 1440 100% 2250 reload-into-ims
>
>
> NP: if you have the latest 3.2 releases ignore-no-cache is useless.
>
> Amos




[Index of Archives]     [Linux Audio Users]     [Samba]     [Big List of Linux Books]     [Linux USB]     [Yosemite News]

  Powered by Linux