bottleneck testcase based on rubbos
[bottlenecks.git] / rubbos / app / httpd-2.0.64 / docs / manual / mod / mod_mem_cache.html.en
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!--
4         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5               This file is generated from xml source: DO NOT EDIT
6         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7       -->
8 <title>mod_mem_cache - Apache HTTP Server</title>
9 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11 <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
12 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
13 <body>
14 <div id="page-header">
15 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p>
16 <p class="apache">Apache HTTP Server Version 2.0</p>
17 <img alt="" src="../images/feather.gif" /></div>
18 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
19 <div id="path">
20 <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Server</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.0</a> &gt; <a href="./">Modules</a></div>
21 <div id="page-content">
22 <div id="preamble"><h1>Apache Module mod_mem_cache</h1>
23 <div class="toplang">
24 <p><span>Available Languages: </span><a href="../en/mod/mod_mem_cache.html" title="English">&nbsp;en&nbsp;</a> |
25 <a href="../ja/mod/mod_mem_cache.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
26 <a href="../ko/mod/mod_mem_cache.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
27 </div>
28 <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Content cache keyed to URIs</td></tr>
29 <tr><th><a href="module-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
30 <tr><th><a href="module-dict.html#ModuleIdentifier">Module Identifier:</a></th><td>mem_cache_module</td></tr>
31 <tr><th><a href="module-dict.html#SourceFile">Source File:</a></th><td>mod_mem_cache.c</td></tr></table>
32 <h3>Summary</h3>
33
34     <div class="warning">
35       This module is experimental. Documentation is still under
36       development...
37     </div>
38
39     <p>This module <em>requires</em> the service of <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>. It acts as a support module for <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> and provides a memory based storage manager.
40     <code class="module"><a href="../mod/mod_mem_cache.html">mod_mem_cache</a></code> can be configured to operate in two
41     modes: caching open file descriptors or caching objects in heap storage.
42     <code class="module"><a href="../mod/mod_mem_cache.html">mod_mem_cache</a></code> is most useful when used to cache locally
43     generated content or to cache backend server content for <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> configured for <code class="directive"><a href="../mod/mod_proxy.html#proxypass">ProxyPass</a></code> (aka <dfn>reverse proxy</dfn>).</p>
44
45     <p>Content is stored in and retrieved from the cache using URI based
46     keys. Content with access protection is not cached.</p>
47 </div>
48 <div id="quickview"><h3 class="directives">Directives</h3>
49 <ul id="toc">
50 <li><img alt="" src="../images/down.gif" /> <a href="#mcachemaxobjectcount">MCacheMaxObjectCount</a></li>
51 <li><img alt="" src="../images/down.gif" /> <a href="#mcachemaxobjectsize">MCacheMaxObjectSize</a></li>
52 <li><img alt="" src="../images/down.gif" /> <a href="#mcachemaxstreamingbuffer">MCacheMaxStreamingBuffer</a></li>
53 <li><img alt="" src="../images/down.gif" /> <a href="#mcacheminobjectsize">MCacheMinObjectSize</a></li>
54 <li><img alt="" src="../images/down.gif" /> <a href="#mcacheremovalalgorithm">MCacheRemovalAlgorithm</a></li>
55 <li><img alt="" src="../images/down.gif" /> <a href="#mcachesize">MCacheSize</a></li>
56 </ul>
57 <h3>See also</h3>
58 <ul class="seealso">
59 <li><code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code></li>
60 <li><code class="module"><a href="../mod/mod_disk_cache.html">mod_disk_cache</a></code></li>
61 </ul></div>
62
63 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
64 <div class="directive-section"><h2><a name="MCacheMaxObjectCount" id="MCacheMaxObjectCount">MCacheMaxObjectCount</a> <a name="mcachemaxobjectcount" id="mcachemaxobjectcount">Directive</a></h2>
65 <table class="directive">
66 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The maximum number of objects allowed to be placed in the
67 cache</td></tr>
68 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>MCacheMaxObjectCount <var>value</var></code></td></tr>
69 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>MCacheMaxObjectCount 1009</code></td></tr>
70 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
71 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
72 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_mem_cache</td></tr>
73 </table>
74     <p>The <code class="directive">MCacheMaxObjectCount</code> directive sets the
75     maximum number of objects to be cached. The value is used to create the
76     open hash table. If a new object needs to be inserted in the cache and
77     the maximum number of objects has been reached, an object will be
78     removed to allow the new object to be cached. The object to be removed
79     is selected using the algorithm specified by <code class="directive"><a href="#mcacheremovalalgorithm">MCacheRemovalAlgorithm</a></code>.</p>
80
81     <div class="example"><h3>Example</h3><p><code>
82       MCacheMaxObjectCount 13001
83     </code></p></div>
84
85 </div>
86 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
87 <div class="directive-section"><h2><a name="MCacheMaxObjectSize" id="MCacheMaxObjectSize">MCacheMaxObjectSize</a> <a name="mcachemaxobjectsize" id="mcachemaxobjectsize">Directive</a></h2>
88 <table class="directive">
89 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The maximum size (in bytes) of a document allowed in the
90 cache</td></tr>
91 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>MCacheMaxObjectSize <var>bytes</var></code></td></tr>
92 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>MCacheMaxObjectSize 10000</code></td></tr>
93 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
94 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
95 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_mem_cache</td></tr>
96 </table>
97     <p>The <code class="directive">MCacheMaxObjectSize</code> directive sets the
98     maximum allowable size, in bytes, of a document for it to be considered
99     cacheable.</p>
100
101     <div class="example"><h3>Example</h3><p><code>
102       MCacheMaxObjectSize 6400000
103     </code></p></div>
104
105     <div class="note"><h3>Note</h3>
106       <p>The value of <code class="directive">MCacheMaxObjectSize</code> must be
107       greater than the value specified by the <code class="directive"><a href="#mcacheminobjectsize">MCacheMinObjectSize</a></code> directive.</p>
108     </div>
109
110 </div>
111 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
112 <div class="directive-section"><h2><a name="MCacheMaxStreamingBuffer" id="MCacheMaxStreamingBuffer">MCacheMaxStreamingBuffer</a> <a name="mcachemaxstreamingbuffer" id="mcachemaxstreamingbuffer">Directive</a></h2>
113 <table class="directive">
114 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Maximum amount of a streamed response to buffer in memory
115 before declaring the response uncacheable</td></tr>
116 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>MCacheMaxStreamingBuffer <var>size_in_bytes</var></code></td></tr>
117 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>MCacheMaxStreamingBuffer the smaller of 100000 or MCacheMaxObjectSize</code></td></tr>
118 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
119 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
120 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_mem_cache</td></tr>
121 </table>
122     <p>The <code class="directive">MCacheMaxStreamingBuffer</code> directive
123     specifies the maximum number of bytes of a streamed response to
124     buffer before deciding that the response is too big to cache.
125     A streamed response is one in which the entire content is not
126     immediately available and in which the <code>Content-Length</code>
127     may not be known. Sources of streaming responses include proxied
128     responses and the output of CGI scripts. By default, a streamed
129     response will <em>not</em> be cached unless it has a
130     <code>Content-Length</code> header. The reason for this is to
131     avoid using a large amount of memory to buffer a partial response
132     that might end up being too large to fit in the cache.
133     The <code class="directive">MCacheMaxStreamingBuffer</code> directive allows
134     buffering of streamed responses that don't contain a
135     <code>Content-Length</code> up to the specified maximum amount of
136     space. If the maximum buffer space is reached, the buffered
137     content is discarded and the attempt to cache is abandoned.</p>
138
139     <div class="note"><h3>Note:</h3>
140       <p>Using a nonzero value for <code class="directive">MCacheMaxStreamingBuffer</code> 
141       will not delay the transmission of the response to the client.
142       As soon as <code class="module"><a href="../mod/mod_mem_cache.html">mod_mem_cache</a></code> copies a block of streamed
143       content into a buffer, it sends the block on to the next output
144       filter for delivery to the client.</p>
145     </div>
146
147     <div class="example"><p><code>
148       # Enable caching of streamed responses up to 64KB:<br />
149       MCacheMaxStreamingBuffer 65536
150     </code></p></div>
151
152 </div>
153 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
154 <div class="directive-section"><h2><a name="MCacheMinObjectSize" id="MCacheMinObjectSize">MCacheMinObjectSize</a> <a name="mcacheminobjectsize" id="mcacheminobjectsize">Directive</a></h2>
155 <table class="directive">
156 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The minimum size (in bytes) of a document to be allowed in the
157 cache</td></tr>
158 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>MCacheMinObjectSize <var>bytes</var></code></td></tr>
159 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>MCacheMinObjectSize 0</code></td></tr>
160 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
161 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
162 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_mem_cache</td></tr>
163 </table>
164     <p>The <code class="directive">MCacheMinObjectSize</code> directive sets the
165     minimum size in bytes of a document for it to be considered
166     cacheable.</p>
167
168     <div class="example"><h3>Example</h3><p><code>
169       MCacheMinObjectSize 10000
170     </code></p></div>
171
172 </div>
173 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
174 <div class="directive-section"><h2><a name="MCacheRemovalAlgorithm" id="MCacheRemovalAlgorithm">MCacheRemovalAlgorithm</a> <a name="mcacheremovalalgorithm" id="mcacheremovalalgorithm">Directive</a></h2>
175 <table class="directive">
176 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The algorithm used to select documents for removal from the
177 cache</td></tr>
178 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>MCacheRemovalAlgorithm LRU|GDSF</code></td></tr>
179 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>MCacheRemovalAlgorithm GDSF</code></td></tr>
180 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
181 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
182 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_mem_cache</td></tr>
183 </table>
184     <p>The <code class="directive">MCacheRemovalAlgorithm</code> directive specifies
185     the algorithm used to select documents for removal from the cache.
186     Two choices are available:</p>
187
188     <dl>
189       <dt><code>LRU</code> (Least Recently Used)</dt>
190       <dd><code>LRU</code> removes the documents that have not been accessed
191       for the longest time.</dd>
192
193       <dt><code>GDSF</code> (GreadyDual-Size)</dt>
194       <dd><code>GDSF</code> assigns a priority to cached documents based
195       on the cost of a cache miss and the size of the document. Documents
196       with the lowest priority are removed first.</dd>
197     </dl>
198
199     <div class="example"><h3>Example</h3><p><code>
200       MCacheRemovalAlgorithm GDSF<br />
201       MCacheRemovalAlgorithm LRU
202     </code></p></div>
203
204 </div>
205 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
206 <div class="directive-section"><h2><a name="MCacheSize" id="MCacheSize">MCacheSize</a> <a name="mcachesize" id="mcachesize">Directive</a></h2>
207 <table class="directive">
208 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The maximum amount of memory used by the cache in
209 KBytes</td></tr>
210 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>MCacheSize <var>KBytes</var></code></td></tr>
211 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>MCacheSize 100</code></td></tr>
212 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
213 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
214 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_mem_cache</td></tr>
215 </table>
216     <p>The <code class="directive">MCacheSize</code> directive sets the maximum
217     amount of memory to be used by the cache, in KBytes (1024-byte units).
218     If a new object needs to be inserted in the cache and the size of the
219     object is greater than the remaining memory, objects will be removed
220     until the new object can be cached. The object to be removed is
221     selected using the algorithm specified by <code class="directive"><a href="#mcacheremovalalgorithm">MCacheRemovalAlgorithm</a></code>.</p>
222
223     <div class="example"><h3>Example</h3><p><code>
224       MCacheSize 700000
225     </code></p></div>
226
227     <div class="note"><h3>Note</h3>
228       <p>The <code class="directive">MCacheSize</code> value must be greater than
229       the value specified by the <code class="directive"><a href="#mcachemaxobjectsize">MCacheMaxObjectSize</a></code> directive.</p>
230     </div>
231
232 </div>
233 </div>
234 <div class="bottomlang">
235 <p><span>Available Languages: </span><a href="../en/mod/mod_mem_cache.html" title="English">&nbsp;en&nbsp;</a> |
236 <a href="../ja/mod/mod_mem_cache.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
237 <a href="../ko/mod/mod_mem_cache.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
238 </div><div id="footer">
239 <p class="apache">Copyright 2009 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
240 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div>
241 </body></html>