- publishing free software manuals
The Apache HTTP Server Reference Manual
by Apache Software Foundation
Paperback (6"x9"), 862 pages
ISBN 9781906966034
RRP £19.95 ($29.95)

Get a printed copy>>>

3.53  Apache Module mod_mem_cache



Description:

Content cache keyed to URIs

Status:

Extension

Module Identifier:

mem_cache_module

Source File:

mod_mem_cache.c



Summary

This module requires the service of mod_cache. It acts as a support module for mod_cache and provides a memory based storage manager. mod_mem_cache can be configured to operate in two modes: caching open file descriptors or caching objects in heap storage. mod_mem_cache is most useful when used to cache locally generated content or to cache backend server content for mod_proxy configured for ProxyPass (aka reverse proxy).

Content is stored in and retrieved from the cache using URI based keys. Content with access protection is not cached.

Note In most cases mod_disk_cache should be the preferred choice. This is explained further in the Caching Guide (p. 1293). In particular, this module’s cache is per-process, which can be partially mitigated by configuring threaded MPMS to use fewer child processes via configuration of larger values for ThreadsPerChild. This module’s cache is also limited to storing a single variant (see HTTP Vary: header) of each resource in the cache.

Directives:

MCacheMaxObjectCount

MCacheMaxObjectSize

MCacheMaxStreamingBuffer

MCacheMinObjectSize

MCacheRemovalAlgorithm

MCacheSize

See also:

MCacheMaxObjectCount Directive

Description:

The maximum number of objects allowed to be placed in the cache

Syntax:

MCacheMaxObjectCount value

Default:

MCacheMaxObjectCount 1009

Context:

server config

Status:

Extension

Module:

mod_mem_cache

The MCacheMaxObjectCount 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 MCacheRemovalAlgorithm.

Example

MCacheMaxObjectCount 13001

MCacheMaxObjectSize Directive

Description:

The maximum size (in bytes) of a document allowed in the cache

Syntax:

MCacheMaxObjectSize bytes

Default:

MCacheMaxObjectSize 10000

Context:

server config

Status:

Extension

Module:

mod_mem_cache

The MCacheMaxObjectSize directive sets the maximum allowable size, in bytes, of a document for it to be considered cacheable.

Example

MCacheMaxObjectSize 6400000

Note The value of MCacheMaxObjectSize must be greater than the value specified by the MCacheMinObjectSize directive.

MCacheMaxStreamingBuffer Directive

Description:

Maximum amount of a streamed response to buffer in memory before declaring the response uncacheable

Syntax:

MCacheMaxStreamingBuffer size_in_bytes

Default:

MCacheMaxStreamingBuffer the smaller of 100000 or MCacheMaxObjectSize

Context:

server config

Status:

Extension

Module:

mod_mem_cache

The MCacheMaxStreamingBuffer 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 Content-Length may not be known. Sources of streaming responses include proxied responses and the output of CGI scripts. By default, a streamed response will not be cached unless it has a Content-Length 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 MCacheMaxStreamingBuffer directive allows buffering of streamed responses that don’t contain a Content-Length 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.

Note: Using a nonzero value for MCacheMaxStreamingBuffer will not delay the transmission of the response to the client. As soon as mod_mem_cache copies a block of streamed content into a buffer, it sends the block on to the next output filter for delivery to the client.

# Enable caching of streamed responses up to 64KB:
MCacheMaxStreamingBuffer 65536

MCacheMinObjectSize Directive

Description:

The minimum size (in bytes) of a document to be allowed in the cache

Syntax:

MCacheMinObjectSize bytes

Default:

MCacheMinObjectSize 1

Context:

server config

Status:

Extension

Module:

mod_mem_cache

The MCacheMinObjectSize directive sets the minimum size in bytes of a document for it to be considered cacheable.

Example

MCacheMinObjectSize 10000

MCacheRemovalAlgorithm Directive

Description:

The algorithm used to select documents for removal from the cache

Syntax:

MCacheRemovalAlgorithm LRU|GDSF

Default:

MCacheRemovalAlgorithm GDSF

Context:

server config

Status:

Extension

Module:

mod_mem_cache

The MCacheRemovalAlgorithm directive specifies the algorithm used to select documents for removal from the cache. Two choices are available:

LRU (Least Recently Used)
LRU removes the documents that have not been accessed for the longest time.
GDSF (GreadyDual-Size)
GDSF 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.

Example

MCacheRemovalAlgorithm GDSF
MCacheRemovalAlgorithm LRU

MCacheSize Directive

Description:

The maximum amount of memory used by the cache in KBytes

Syntax:

MCacheSize KBytes

Default:

MCacheSize 100

Context:

server config

Status:

Extension

Module:

mod_mem_cache

The MCacheSize 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 MCacheRemovalAlgorithm.

Example

MCacheSize 700000

Note The MCacheSize value must be greater than the value specified by the MCacheMaxObjectSize directive.

ISBN 9781906966034The Apache HTTP Server Reference ManualSee the print edition