Tuning


OPTIONS FOR TUNING THE CACHE
This section describes the important parameters that determine Squid cache performance.
wais_relay_host
wais_relay_port
request_header_max_size
request_body_max_size
refresh_pattern
quick_abort_min
quick_abort_max
quick_abort_pct
read_ahead_gap
negative_ttl
positive_dns_ttl
negative_dns_ttl
range_offset_limit
collapsed_forwarding
refresh_stale_hit
external_refresh_check
       
TAG NAME wais_relay_host, wais_relay_port
Description
Defines WAIS host and port to relay WAIS requests
Build Option
Default
Usage
wais_relay_host hostname
wais_relay_port portnumber
Default
wais_relay_host localhost
wais_relay_port 8000
Synopsis
WAIS, or Wide Area Information System, is a system to catalog and search large amounts of data via a WAIS or WWW browser. This defaults to localhost and 8000.
Arguments
hostname
Machine name
portnumber
Port where to bind the socket
Example(s)
wais_relay_host localhost
wais_relay_port 8000
TAG NAME request_header_max_size
Description
This specifies the maximum size for HTTP headers in a request
Build Option
Default
Usage
request_header_max_size size(KB)
Default
request_header_max_size 10 KB
Synopsis
Size of HTTP headers in a request can be controlled using this tag. Request headers are usually relatively small (about 512 bytes). Placing a limit on the request header size will catch certain bugs (for example with persistent connections) and possibly buffer-overflow or denial-of-service attacks.
Arguments
size
Maximum size of request header
Example(s)
request_header_max_size 100 KB
TAG NAME request_body_max_size
Description
Specifies the maximum size for an HTTP request body
Build Option
Default
Usage
request_body_max_sizesize(KB)
Default
request_body_max_size 0 KB
Synopsis
This is the maximum size of a PUT/POST request. A user who attempts to send a request with a body larger than this limit receives an "Invalid Request" error message. If you set this parameter to a zero (the default), there will be no limit imposed.
Arguments
size
Maximum size of request body
Example(s)
request_body_max_size 10 KB
TAG NAME refresh_pattern
Description
Used to define the manner how Squid treats the objects in the cache
Build Option
Default
Usage
refresh_pattern [-i] regexmin percent max [options]
Default (Suggested)
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
Synopsis
The way how the objects in the cache be refreshed is defined using this tag. By default, regular expressions are CASE-SENSITIVE. To make them case-insensitive, use the -i option.
Basically a cached object is:
FRESH
if expires < now, else STALE
STALE
if age > max
FRESH
if lm-factor < percent, else STALE
FRESH
if age < min
else
STALE
The refresh_pattern lines are checked in the order listed here. The first entry which matches is used. If none of the entries match, then the default will be used.
Arguments
regex
regular expression
Min
time (in minutes), an object without an explicit expire time should be considered fresh.
percent
percentage of the objects age (time since last modification age) an object without explicit expire time will be considered fresh.
Max
upper limit on how long objects without an explicit expiry time will be considered fresh.
Options:
override-expire
enforces min age even if the server sent a Expires: header. Doing this VIOLATES the HTTP standard. Enabling this
feature could make you liable for problems which it causes.
override-lastmod
enforces min age even on objects that was modified recently.
reload-into-ims
changes client no-cache or ``reload'' to If-Modified-Since requests. Doing this VIOLATES the HTTP standard. Enabling
this feature could make you liable for problems which it causes.
ignore-reload
ignores a client no-cache or ``reload'' header. Doing this VIOLATES the HTTP standard. Enabling this feature could
make you liable for problems which it causes.
ignore-no-cache
ignores any ``Pragma: no-cache'' and ``Cache-control: no-cache'' headers received from a server.
ignore-private
ignores any ``Cache-control: private'' headers received from a server. Doing this VIOLATES the HTTP standard.
Enabling this feature could make you liable for problems which it causes.
ignore-auth
caches responses to requests with authorization, irrespective of ``Cache-control'' headers received from a
server. Doing this VIOLATES the HTTP standard. Enabling this feature could make you liable for problems which it
causes.
stale-while-revalidate=NN
Squid perform an asyncronous cache validation if the object isn't more stale than NN.
ignore-stale-while-revalidate
Squid ignore any 'Cache-Control:stale-while-revalidate=NN' headers received from a server.
max-stale=NN
This option provides a maximum staleness factor.
negative-ttl=NN
This overrides the global negative_ttl parameter selectively for URLs matching this pattern.
Example(s)
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
TAG NAME quick_abort_min, quick_abort_max, quick_abort_pct
Description
Signals the cache how to continue downloads during abort signals sent by the clients
Buid Option
Default
Usage
quick_abort_min size
quick_abort_max size
quick_abort_pct percent
Default
quick_abort_min 16 KB
quick_abort_max 16 KB
quick_abort_pct 95
Synopsis
The cache by default continues downloading aborted requests which are almost completed (less than 16 KB remaining). This may be undesirable on slow (e.g. SLIP) links and/or very busy caches. Impatient users may tie up file descriptors and bandwidth by repeatedly requesting and immediately aborting
downloads.
Arguments
size
Minimum and maximum transfer size
percent
Percentage of transfer
When the user aborts a request, Squid will check the quick_abort values to the amount of data transferred until then.
If the transfer has less than quick_abort_min KB remaining, it will finish the retrieval.
If the transfer has more than quick_abort_max KB remaining, it will abort the retrieval.
If more than quick_abort_pct of the transfer has completed, it will finish the retrieval.
If you do not want any retrieval to continue after the client has aborted, set both quick_abort_min and quick_abort_max to '0 KB'.
If you want retrievals to always continue if they are being cached then set quick_abort_min to '-1 KB'.

Example(s)
quick_abort_min 30 KB
quick_abort_max 30 KB
quick_abort_pct 80
TAG NAME read_ahead_gap
Description
Define the amount of data the cache will buffer ahead of what has been sent to the client when retrieving an object from
another server
Buid Option
Default
Usage
read_ahead_gap buffer-size
Default
read_ahead_gap 17 KB
Synopsis
This tag determines the prefetch cache buffer size for holding objects from another server while sending to the client.

Arguments
buffer-size
Size of the cache buffer
Example(s)
read_ahead_gap 30 KB
TAG NAME negative_ttl
Description
Defines Time-to-Live (TTL) for failed requests
Buid Option
Default
Usage
negative_ttl time-units
Default
negative_ttl 5 minutes
Synopsis
Certain types of failures (such as "connection refused" and "404 Not Found") are negatively-cached for a configurable amount of time. The default is 5 minutes. Note that this is different from negative caching of DNS lookups.
Arguments
time-units
Timeout for negatively cached objects
Example(s)
negative_ttl 1 minutes
TAG NAME positive_dns_ttl
Description
Defines Time-to-Live (TTL) for positive caching of successful DNS lookups
Buid Option
Default
Usage
positive_dns_ttl time-units
Default
positive_dns_ttl 6 hours
Synopsis
For positive caching of successful DNS lookups, this defines Time-to-Live period. Default is 6 hours (360 minutes). If you want to minimize the use of Squid's ipcache, set this to 1, not 0.
Arguments
time-units
Timeout for positive cachings
Example(s)
positive_dns_ttl 24 hours
TAG NAME negative_dns_ttl
Description
Time-to-Live (TTL) for negative caching of failed DNS lookups
Buid Option
Default
Usage
negative_dns_ttl time-units
Default
negative_dns_ttl 1 minutes
Synopsis
Sometimes DNS lookups may get failed. This parameter defines the Time-To-Live period for failed DNS lookups. Normally this will be a small value.
Arguments
time-units
Timeout period
Example(s)
negative_dns_ttl 1 minutes
TAG NAME range_offset_limit
Description
Sets a upper limit on how far into the file a Range request may be to cause Squid to prefetch the whole file
Buid Option
Default
Usage
range_offset_limit bytes
Default
range_offset_limit 0 KB
Synopsis
If beyond this limit then Squid forwards the Range request as it is and the result is NOT cached.

This is to stop a far ahead range request (lets say start at 17MB) from making Squid fetch the whole object up to that point before sending anything to the client.

A value of -1 causes Squid to always fetch the object from the beginning so that it may cache the result. (2.0 style)
A value of 0 causes Squid to never fetch more than the client requested. (default)
Arguments
bytes
Upper limit for the range request
Example(s)
range_offset_limit 17 MB
TAG NAME collapsed_forwarding
Description
Enables multiple requests for the same URI to be processed as one request.
Buid Option
Default
Usage
collapsed_forwarding on | off
Default
collapsed_forwarding off
Synopsis
This option enables multiple requests for the same URI to be processed as one request. Normally disabled to avoid increased latency on dynamic content, but there can be benefit from enabling this in accelerator setups where the web servers are the bottleneck and reliable and returns mostly cacheable information.
Arguments
on/off
Enable or disable this process
TAG NAME refresh_stale_hit
Description
Changes the refresh algorithm to allow concurrent requests while an object is being refreshed to be processed.
Buid Option
Default
Usage
refresh_stale_hit time-units
Default
refresh_stale_hit 0 seconds
Synopsis
This option changes the refresh algorithm to allow concurrent requests while an object is being refreshed to be processed as cache hits if the object expired less than X seconds ago.
Default is 0 to disable this feature. This option is mostly interesting in accelerator setups where a few objects is accessed very frequently.
Arguments
time-units
Timeout for refresh
TAG NAME external_refresh_check
Description
This option defines an external helper for determining whether to refresh a stale response.
Buid Option
Default
Usage
external_refresh_check [options] FORMAT.. /path/to/helper [helper_args]
Default
none
Synopsis
This option defines an external helper for determining whether to refresh a stale response. It will be called when Squid receives a request for a cached response that is stale.
FORMAT
%CACHE_URI
The URI of the cached response
%RES Header
HTTP response header value
%AGE
The age of the cached response
Example(s)
external_refresh_check %AGE path to file

0 Response to "Tuning"

Post a Comment