I'm having problems with squid 3.2.5 exceeding the cache_dir size.
I have a 5 GB disk partition with nothing else on it, with a cache_dir
size of 3800 MB:
cache_dir aufs /cache/squid/aufs 3800 15 253
maximum_object_size 131072 KB
Today I found squid had terminated and the /cache partition was
100% full.
After a little investigation in the cache directory I found this file:
# ls -l 02/8C/00027F4A
-rw-r----- 1 nobody nobody 915697664 Jan 8 21:15 02/8C/00027F4A
Very strange, a 900 MB file stored when I have a maximum_object_size of 128 MB.
Here's the header of the file, with the initial binary data stripped out:
http://152.2.63.23/WUNC HTTP/1.0 200 OK
Content-Type: application/x-mms-framed
Server: Cougar/9.00.00.3372
Date: Tue, 08 Jan 2013 10:14:18 GMT
Pragma: no-cache, client-id=3433994619, xResetStrm=1, features="broadcast", timeout=60000, AccelBW=3500000, AccelDuration=20000, Speed=1.000
Cache-Control: no-cache
Last-Modified: Tue, 08 Jan 2013 10:14:18 GMT
Supported: com.microsoft.wm.srvppair, com.microsoft.wm.sswitch, com.microsoft.wm.predstrm, com.microsoft.wm.fastcache
It is a streaming audio of a local radio station.
I'm guessing that since there isn't a content-length header squid will store
the data until it all arrives, then flush it from disk later on. This is a problem
because my swap.state files are on the same partition. When squid
can no longer write to swap.state because of the full disk, it terminates.
The only solution is to move the swap.state files, but that is
counter to the recommendation in the squid.conf.documented file:
# TAG: cache_swap_state
# Location for the cache "swap.state" file. This index file holds
# the metadata of objects saved on disk. It is used to rebuild
# the cache during startup. Normally this file resides in each
# 'cache_dir' directory, but you may specify an alternate
# pathname here. Note you must give a full filename, not just
# a directory. Since this is the index for the whole object
# list you CANNOT periodically rotate it!
...
# them). We recommend you do NOT use this option. It is
# better to keep these index files in each 'cache_dir' directory.
Since it is possible to have files much larger than maximum_object_size
in the cache_dir directory, there is always a possibility of running out
of space. Not being able to write swap.state causes squid to abort,
which leads me to believe that swap.state should never be on the
same partition as the cache_dir directory.
Mike Mitchell
Received on Wed Jan 09 2013 - 21:57:01 MST
This archive was generated by hypermail 2.2.0 : Tue Jan 15 2013 - 12:00:04 MST