Forum Discussion

Patrik_Jonsson's avatar
Apr 02, 2014

Tricky (?) questions about the LTM Web Acceleration

Hello!

This is going to be a large body of text, so please have patience.

Our developers has asked some excellent detailed questions about the LTM caching which I have been unable to fully answer. So I've been trying to read up on the web acceleration but I'm afraid I don't understand.

First of all, let me state my theories/assumptions (would appreciate any corrections or validations):

  • The cache size specified in the profile means the amount of RAM used per TMM core. So in a Viprion using 8 cores a cache size of 100Mb would mean that it uses 800Mb of RAM (providing that the cache is full).
  • The F5 would try to get items from the other TMMs caches if possible before fetching content from the origin web server.
  • The F5 cache size does not take meta-data about the items into account when calculating the limit. Ie. a cache filled with 10 million items of 1 byte would take up 10Mb plus the memory it takes to store the data about said items (this one was explained to me by F5 when our memory kept running out on our LB's).
  • Items will be automatically evicted when they expire. If the cache is full, items accessed the longest time ago will be evicted first.

I've been studying this solutions article in an attempt to understand how the statistics and caching works.

Extract from the article:

---------------------------------------------
Ltm::Web Acceleration Profile: wa-profile-rbk
---------------------------------------------
Virtual Server Name               N/A

Cache
Cache Size (in Bytes)             *current cache size for this profile
Total Cached Items                *items in local cache
Total Evicted Items               *count of items that have been evicted from the local cache
Inter-Stripe Size (in Bytes)      *all the remote tmms cache
Inter-Stripe Cached Items         *remote tmms count of cached items
Inter-Stripe Evicted Items        *remote tmms count of cached items that have been evicted

Cache Hits/Misses               Count  Bytes
Hits                              0      0  *tmm local cache served response
Misses (Cacheable)                0      0  *tmm local cache items that match a rule set but are not in cache
Misses (Total)                    0      0  *tmm local cache items that either match or do not match rule set and are not served from cache
Inter-Stripe Hits                 0      0  *successful local access of remote caches
Inter-Stripe Misses               0      -  *unsuccessful local access of remote caches
Remote Hits                       0      0  *successful remote tmms accessing local cache
Remote Misses                     0      -  *unsuccessful remote tmms accessing local cache

My questions is:

  1. What does Inter-Stripe actually mean?
  2. What is the difference between "Misses (Cacheable)", "Inter-Stripe Misses" and "Remote Misses".
  3. When are "Inter-Stripe Misses" and "Remote Misses" triggered?

Attaching my cache statistics for reference:

Cache
  Cache Size (in Bytes)           1.3G
  Total Cached Items            526.2K
  Total Evicted Items            20.0M
  Inter-Stripe Size (in Bytes)  449.8M
  Inter-Stripe Cached Items      64.6K
  Inter-Stripe Evicted Items     67.8M

Cache Hits/Misses                Count   Bytes
  Hits                          737.2M    8.5T
  Misses (Cacheable)            184.9M    1.5T
  Misses (Total)                306.2M    2.6T
  Inter-Stripe Hits             611.5M    7.1T
  Inter-Stripe Misses           426.0M       -
  Remote Hits                    32.0M  209.6G
  Remote Misses                 125.1M       -

Thanks for any answers/input or even questions.

/Patrik

  • Here's some information I have;-

     

    In 10.1 and beyond, ramcache has a "striped" cache, meaning that rather than each TMM having an independent cache, the TMMs collaborate to provide a unified cache with each TMM having a piece or "stripe" of the cache. The default split is 25% inter-stripe, 75% own.

     

    http://support.f5.com/kb/en-us/solutions/public/11000/900/sol11990.html The RAM Cache feature introduces the new Ramcache.InterStripeCacheMemoryPercent database variable. This variable, set at 25 percent by default, defines what percent of the RAM Cache per TMM is reserved for local versions of cached objects.

     

    The "remote hits" and "remote misses" statistics are used when a tmm receives a request for a cacheable object "owned" by another tmm. The first tmm may have a local copy of the object in its inter-strip cache - if it does not, it has to ask the other- or "remote" (in RAM Cache lingo) tmm. Hits and misses are self-explanatory.

     

    The only use for this information I have found was to understand why eviction counts start when you reach 75% of your profile-assigned RAM Cache (as other 25% inter-stripe), although I'm sure F5 support have a use for it.