Updated Branches: refs/heads/master 03b88fca6 -> 6648a786f
TS-350 Add documentation for the new RAM cache options Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/6648a786 Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/6648a786 Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/6648a786 Branch: refs/heads/master Commit: 6648a786f8d370f0d682be71545d9dcb64187dca Parents: 03b88fc Author: Leif Hedstrom <[email protected]> Authored: Thu Sep 5 13:14:04 2013 -0600 Committer: Leif Hedstrom <[email protected]> Committed: Thu Sep 5 13:14:04 2013 -0600 ---------------------------------------------------------------------- doc/admin/configuring-cache.en.rst | 22 +++++++++++ .../configuration/records.config.en.rst | 39 +++++++++++++++++++- 2 files changed, 59 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/trafficserver/blob/6648a786/doc/admin/configuring-cache.en.rst ---------------------------------------------------------------------- diff --git a/doc/admin/configuring-cache.en.rst b/doc/admin/configuring-cache.en.rst index 8b147cc..8eed8c7 100644 --- a/doc/admin/configuring-cache.en.rst +++ b/doc/admin/configuring-cache.en.rst @@ -65,6 +65,28 @@ and reduces load on disks, especially during temporary traffic peaks. You can configure the RAM cache size to suit your needs, as described in :ref:`changing-the-size-of-the-ram-cache` below. +The RAM cache supports two cache eviction algorithms, a regular **LRU** +(``Least Recently Used``) and the more advanced **CLFUS** (``Clocked Least +Frequently Used by Size``). The default is to use **CLFUS**, and this is +controlled via :ts:cv:`proxy.config.cache.ram_cache.algorithm`. + +Both the **LRU** and **CLFUS** RAM caches support a configuration to increase +scan resistance. In a typical **LRU**, if you request all possible objects in +sequence, you will effectively churn the cache on every request. The option +:ts:cv:`proxy.config.cache.ram_cache.use_seen_filter` can be set to add some +resistance against this problem. + +In addition, **CLFUS** also supports compressing in the RAM cache itself. +This can be useful for content which is not compressed by itself (e.g. +images). This should not be confused with ``Content-Encoding: gzip``, this +feature is only thereto save space internally in the RAM cache itself. As +such, it is completely transparent to the User-Agent. The RAM cache +compression is enabled with the option +:ts:cv:`proxy.config.cache.ram_cache.compress`. The default is 0, which means +no compression. Other possible values are 1 for **fastlz**, 2 for **libz** and +3 for **liblzma**. + + .. _changing-the-size-of-the-ram-cache: Changing the Size of the RAM Cache http://git-wip-us.apache.org/repos/asf/trafficserver/blob/6648a786/doc/reference/configuration/records.config.en.rst ---------------------------------------------------------------------- diff --git a/doc/reference/configuration/records.config.en.rst b/doc/reference/configuration/records.config.en.rst index 74867dd..f546187 100644 --- a/doc/reference/configuration/records.config.en.rst +++ b/doc/reference/configuration/records.config.en.rst @@ -1037,8 +1037,43 @@ RAM Cache .. :ts:cv:: CONFIG proxy.config.cache.ram_cache.size INT -1 - By default the RAM cache size to is automatically determined, based on cache size (approximately 10 MB of RAM cache per GB of disk cache). - Alternatively, it can be set to a fixed value such as 21474836480 (20GB). + By default the RAM cache size is automatically determined, based on + disk cache size; approximately 10 MB of RAM cache per GB of disk cache. + Alternatively, it can be set to a fixed value such as + **20GB** (21474836480) + +.. :ts:cv:: CONFIG proxy.config.cache.ram_cache.algorithm INT 0 + + Two distinct RAM caches are supported, the default (0) being the **CLFUS** + (``Clocked Least Frequently Used by Size``). As an alternative, a simpler + **LRU** (``Least Recently Used``) cache is also available, by changing this + configuration to 1. + +.. :ts:cv:: CONFIG proxy.config.cache.ram_cache.use_seen_filter INT 0 + + Enabling this option will filter inserts into the RAM cache to ensure that + they have been seen at least once. For the **LRU**, this provides scan + resistance. Note that **CLFUS** already requires that a document have history + before it is inserted, so for **CLFUS**, setting this option means that a + document must be seen three times before it is added to the RAM cache. + +.. :ts:cv:: CONFIG proxy.config.cache.ram_cache.compress INT 0 + + The **CLFUS** RAM cache also supports an optional in-memory compression. + This is not to be confused with ``Content-Encoding: gzip`` compression. + The RAM cache compression is intended to try to save space in the RAM, + and is not visible to the User-Agent (client). + + Possible values are: + + - ``0`` = no compression + - ``1`` = fastlz (extremely fast, relatively low compression) + - ``2`` = libz (moderate speed, reasonable compression) + - ``3`` = liblzma (very slow, high compression) + + NOTE: compression runs on task threads. To use more cores for + RAM cache compression, increase :ts:cv:`proxy.config.task_threads`. + Heuristic Expiration ====================
