mirror of
https://github.com/apache/httpd.git
synced 2025-05-30 01:07:09 +03:00
as a MCacheMinObjectSize of 0 does not make sense and leads to a signal Floating point exception (8) (division by zero) in memcache_gdsf_algorithm. PR: 40576 Submitted by: Xuekun Hu <xuekun.hu gmail.com> Reviewed by: rpluem git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@469895 13f79535-47bb-0310-9956-ffa450edef68
218 lines
8.5 KiB
XML
218 lines
8.5 KiB
XML
<?xml version="1.0"?>
|
|
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
|
|
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
|
|
<!-- $LastChangedRevision$ -->
|
|
|
|
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one or more
|
|
contributor license agreements. See the NOTICE file distributed with
|
|
this work for additional information regarding copyright ownership.
|
|
The ASF licenses this file to You under the Apache License, Version 2.0
|
|
(the "License"); you may not use this file except in compliance with
|
|
the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
|
|
<modulesynopsis metafile="mod_mem_cache.xml.meta">
|
|
|
|
<name>mod_mem_cache</name>
|
|
<description>Content cache keyed to URIs</description>
|
|
<status>Extension</status>
|
|
<sourcefile>mod_mem_cache.c</sourcefile>
|
|
<identifier>mem_cache_module</identifier>
|
|
|
|
<summary>
|
|
<p>This module <em>requires</em> the service of <module
|
|
>mod_cache</module>. It acts as a support module for <module
|
|
>mod_cache</module> and provides a memory based storage manager.
|
|
<module>mod_mem_cache</module> can be configured to operate in two
|
|
modes: caching open file descriptors or caching objects in heap storage.
|
|
<module>mod_mem_cache</module> is most useful when used to cache locally
|
|
generated content or to cache backend server content for <module
|
|
>mod_proxy</module> configured for <directive module="mod_proxy"
|
|
>ProxyPass</directive> (aka <dfn>reverse proxy</dfn>).</p>
|
|
|
|
<p>Content is stored in and retrieved from the cache using URI based
|
|
keys. Content with access protection is not cached.</p>
|
|
</summary>
|
|
<seealso><module>mod_cache</module></seealso>
|
|
<seealso><module>mod_disk_cache</module></seealso>
|
|
|
|
<directivesynopsis>
|
|
<name>MCacheSize</name>
|
|
<description>The maximum amount of memory used by the cache in
|
|
KBytes</description>
|
|
<syntax>MCacheSize <var>KBytes</var></syntax>
|
|
<default>MCacheSize 100</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
|
|
<usage>
|
|
<p>The <directive>MCacheSize</directive> directive sets the maximum
|
|
amount of memory to be used by the cache, in KBytes (1024-byte units).
|
|
If a new object needs to be inserted in the cache and the size of the
|
|
object is greater than the remaining memory, objects will be removed
|
|
until the new object can be cached. The object to be removed is
|
|
selected using the algorithm specified by <directive
|
|
module="mod_mem_cache">MCacheRemovalAlgorithm</directive>.</p>
|
|
|
|
<example><title>Example</title>
|
|
MCacheSize 700000
|
|
</example>
|
|
|
|
<note><title>Note</title>
|
|
<p>The <directive>MCacheSize</directive> value must be greater than
|
|
the value specified by the <directive module="mod_mem_cache"
|
|
>MCacheMaxObjectSize</directive> directive.</p>
|
|
</note>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>MCacheMaxObjectCount</name>
|
|
<description>The maximum number of objects allowed to be placed in the
|
|
cache</description>
|
|
<syntax>MCacheMaxObjectCount <var>value</var></syntax>
|
|
<default>MCacheMaxObjectCount 1009</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
|
|
<usage>
|
|
<p>The <directive>MCacheMaxObjectCount</directive> directive sets the
|
|
maximum number of objects to be cached. The value is used to create the
|
|
open hash table. If a new object needs to be inserted in the cache and
|
|
the maximum number of objects has been reached, an object will be
|
|
removed to allow the new object to be cached. The object to be removed
|
|
is selected using the algorithm specified by <directive
|
|
module="mod_mem_cache">MCacheRemovalAlgorithm</directive>.</p>
|
|
|
|
<example><title>Example</title>
|
|
MCacheMaxObjectCount 13001
|
|
</example>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>MCacheMinObjectSize</name>
|
|
<description>The minimum size (in bytes) of a document to be allowed in the
|
|
cache</description>
|
|
<syntax>MCacheMinObjectSize <var>bytes</var></syntax>
|
|
<default>MCacheMinObjectSize 1</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
|
|
<usage>
|
|
<p>The <directive>MCacheMinObjectSize</directive> directive sets the
|
|
minimum size in bytes of a document for it to be considered
|
|
cacheable.</p>
|
|
|
|
<example><title>Example</title>
|
|
MCacheMinObjectSize 10000
|
|
</example>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>MCacheMaxObjectSize</name>
|
|
<description>The maximum size (in bytes) of a document allowed in the
|
|
cache</description>
|
|
<syntax>MCacheMaxObjectSize <var>bytes</var></syntax>
|
|
<default>MCacheMaxObjectSize 10000</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
|
|
<usage>
|
|
<p>The <directive>MCacheMaxObjectSize</directive> directive sets the
|
|
maximum allowable size, in bytes, of a document for it to be considered
|
|
cacheable.</p>
|
|
|
|
<example><title>Example</title>
|
|
MCacheMaxObjectSize 6400000
|
|
</example>
|
|
|
|
<note><title>Note</title>
|
|
<p>The value of <directive>MCacheMaxObjectSize</directive> must be
|
|
greater than the value specified by the <directive
|
|
module="mod_mem_cache">MCacheMinObjectSize</directive> directive.</p>
|
|
</note>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>MCacheRemovalAlgorithm</name>
|
|
<description>The algorithm used to select documents for removal from the
|
|
cache</description>
|
|
<syntax>MCacheRemovalAlgorithm LRU|GDSF</syntax>
|
|
<default>MCacheRemovalAlgorithm GDSF</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
|
|
<usage>
|
|
<p>The <directive>MCacheRemovalAlgorithm</directive> directive specifies
|
|
the algorithm used to select documents for removal from the cache.
|
|
Two choices are available:</p>
|
|
|
|
<dl>
|
|
<dt><code>LRU</code> (Least Recently Used)</dt>
|
|
<dd><code>LRU</code> removes the documents that have not been accessed
|
|
for the longest time.</dd>
|
|
|
|
<dt><code>GDSF</code> (GreadyDual-Size)</dt>
|
|
<dd><code>GDSF</code> assigns a priority to cached documents based
|
|
on the cost of a cache miss and the size of the document. Documents
|
|
with the lowest priority are removed first.</dd>
|
|
</dl>
|
|
|
|
<example><title>Example</title>
|
|
MCacheRemovalAlgorithm GDSF<br />
|
|
MCacheRemovalAlgorithm LRU
|
|
</example>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>MCacheMaxStreamingBuffer</name>
|
|
<description>Maximum amount of a streamed response to buffer in memory
|
|
before declaring the response uncacheable</description>
|
|
<syntax>MCacheMaxStreamingBuffer <var>size_in_bytes</var></syntax>
|
|
<default>MCacheMaxStreamingBuffer the smaller of 100000 or MCacheMaxObjectSize</default>
|
|
<contextlist><context>server config</context>
|
|
</contextlist>
|
|
|
|
<usage>
|
|
<p>The <directive>MCacheMaxStreamingBuffer</directive> directive
|
|
specifies the maximum number of bytes of a streamed response to
|
|
buffer before deciding that the response is too big to cache.
|
|
A streamed response is one in which the entire content is not
|
|
immediately available and in which the <code>Content-Length</code>
|
|
may not be known. Sources of streaming responses include proxied
|
|
responses and the output of CGI scripts. By default, a streamed
|
|
response will <em>not</em> be cached unless it has a
|
|
<code>Content-Length</code> header. The reason for this is to
|
|
avoid using a large amount of memory to buffer a partial response
|
|
that might end up being too large to fit in the cache.
|
|
The <directive>MCacheMaxStreamingBuffer</directive> directive allows
|
|
buffering of streamed responses that don't contain a
|
|
<code>Content-Length</code> up to the specified maximum amount of
|
|
space. If the maximum buffer space is reached, the buffered
|
|
content is discarded and the attempt to cache is abandoned.</p>
|
|
|
|
<note><title>Note:</title>
|
|
<p>Using a nonzero value for <directive>MCacheMaxStreamingBuffer</directive>
|
|
will not delay the transmission of the response to the client.
|
|
As soon as <module>mod_mem_cache</module> copies a block of streamed
|
|
content into a buffer, it sends the block on to the next output
|
|
filter for delivery to the client.</p>
|
|
</note>
|
|
|
|
<example>
|
|
# Enable caching of streamed responses up to 64KB:<br />
|
|
MCacheMaxStreamingBuffer 65536
|
|
</example>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
</modulesynopsis>
|