Tproxy squid bridge very slow when cache is full

squidtransparent-proxy

I have installed a bridge tproxy proxy in a fast server with 8GB ram. The
traffic is around 60Mb/s.

When I start for first time the proxy (with the cache empty) the proxy
works very well but when the cache becomes full (few hours later) the
bridge goes very slow, the traffic goes below 10Mb/s and the proxy server
becomes unusable.

Any hints of what may be happening?

I'm using:

  • linux-2.6.30.10
  • iptables-1.4.3.2
  • squid-3.1.1

compiled with these options:

./configure –prefix=/usr –mandir=/usr/share/man –infodir=/usr/share/info –datadir=/usr/share –localstatedir=/var/lib –sysconfdir=/etc/squid –libexecdir=/usr/libexec/squid –localstatedir=/var –datadir=/usr/share/squid –enable-removal-policies=lru,heap –enable-icmp –disable-ident-lookups –enable-cache-digests –enable-delay-pools –enable-arp-acl –with-pthreads –with-large-files –enable-htcp –enable-carp –enable-follow-x-forwarded-for –enable-snmp –enable-ssl –enable-async-io=32 –enable-linux-netfilter –enable-epoll –disable-poll –with-maxfd=16384 –enable-err-languages=Spanish –enable-default-err-language=Spanish

My squid.conf:

cache_mem 100 MB
memory_pools off

acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl localhost src ::1/128
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl to_localhost dst ::1/128

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 net-g1 src xxx.xxx.xxx.xxx/24

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 manager localhost
http_access deny manager

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports

http_access allow net-g1

#from where browsing should be allowed
http_access allow localnet
http_access allow localhost

http_access deny all

http_port 3128
http_port 3129 tproxy

hierarchy_stoplist cgi-bin ?

cache_dir ufs /var/spool/squid 8000 16 256

access_log none

cache_log /var/log/squid/cache.log

coredump_dir /var/spool/squid

refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern .

I have this issue when the cache is full, but do not really know if it is
because of that.

Thanks in advance and sorry my english.

Best Answer

Roberto, what is the size of this FS?

I can see that you use 8000.

cache_dir ufs /var/spool/squid 8000 16 256

Documentation states, that you have to subtract 20% from total space available for cache. Wiki is pointing that 10% should be left for OS accounting structures.

This way or another it is safe to leave some free space!

Related Topic