7.3 Object Size Limits
You can control both the maximum and minimum size of
cached objects. Responses larger than
maximum_object_size aren't
stored on disk. They are still proxied, however. The logic behind
this directive is that you don't want a really big
response to take up space better utilized by many small responses.
The syntax is as follows:
maximum_object_size size-specification
Here are some examples:
maximum_object_size 100 KB
maximum_object_size 1 MB
maximum_object_size 12382 bytes
maximum_object_size 2 GB
Squid checks the response size in two different ways. If the reply
includes a Content-Length header, Squid compares
its value to the maximum_object_size value. If
the content length is the larger of the two numbers, the object
becomes immediately uncachable and never consumes any disk space.
Unfortunately, not every response has a
Content-Length header. In this case, Squid writes
the response to disk as data comes in from the origin server. Squid
checks the object size again only when the response is complete.
Thus, if the object's size reaches the
maximum_object_size limit, it continues
consuming disk space. Squid increments the total cache size only when
it is done reading a response.
In other words, the active, or in-transit, objects
don't contribute to the cache size value Squid
maintains internally. This is good because it means Squid
won't remove other objects in the cache, unless the
object remains cachable and then contributes to the total cache size.
However, it is also bad because Squid may run out of free disk space
if the reply is very large. To reduce the chance of this happening,
you should also use the reply_body_max_size
directive. A response that reaches the
reply_body_max_size limit is cut off
immediately.
Squid also has a minimum_object_size directive.
It allows you to place a lower limit on the size of cached objects.
Responses smaller than this size aren't stored on
disk or in memory. Note that this size is compared to the
response's content length (i.e., the size of the
reply body), which excludes the HTTP headers.
|