Integrated Cache Test

The integrated cache provides in-memory storage on the Citrix NetScaler appliance and serves Web content to users without requiring a round trip to an origin server. The cache monitors HTTP and SQL requests that flow through the Citrix NetScaler appliance and compares the requests with stored policies. Depending on the outcome, the integrated cache feature either searches the cache for the response or forwards the request to the origin server.  

For best performance, majority of requests for web content should be serviced by the cache, without disturbing the origin server. If the cache is not sized right however, this might not be possible! To quickly detect irregularities in cache usage and sizing, administrators should know how much memory is used up by objects in cache, how much cache memory is free, and whether/not the cache is able to service requests efficiently with the memory available to it. This is exactly what the Integrated Cache test reveals!

This test monitors the requests to the cache, checks how well the cache processes the requests, and reveals whether cache misses are more than cache hits or vice versa. In the event that many requests are not serviced by the cache (i.e., if cache misses are more), administrators can use the memory usage statistics reported by this test to figure out if the cache is sized commensurate to its load.

Target of the test : A NetScaler VPX/MPX

Agent deploying the test : A remote agent

Outputs of the test : One set of results for the NetScaler appliance being monitored.

Configurable parameters for the test
Parameter Description

Test Period

How often should the test be executed.

Host

The IP address of the host for which the test is being configured.

NetScaler Username and NetScaler Password

To monitor a NetScaler device, the eG agent should be configured with the credentials of a user with read-only privileges to the target NetScaler device. Specify the credentials of such a user in the NetScaler Username and NetScaler Password text boxes.

SSL

The eG agent collects performance metrics by invoking NITRO (NetScaler Interface Through Restful interfaces and Objects) APIs on the target NetScaler device. Typically, the NITRO APIs can be invoked through the HTTP or the HTTPS mode. By default, the eG agent invokes the NITRO APIs using the HTTPS mode. This is why, the SSL flag is set to Yes by default. If the target NetScaler device is not SSL-enabled, then the NITRO APIs can be accessed through the HTTP mode only. In this case, set the SSL flag to No.

Measurements made by the test
Measurement Description Measurement Unit Interpretation

Hits

Indicates the number of requests serviced by the cache since the last measurement period.

Number

Ideally, the value of this measure should be high.

Misses

Indicates the number of requests serviced by origin server during the last measurement period.

Number

Ideally, the value of this measure should be 0 or much lower than the value of the Hits measure. A very high value is a cause for concern as it indicates that the cache is poorly utilized.

Requests

Indicates the total number of requests for web content that is passing through the NetScaler appliance.

Number

This is the sum of the values of the Hits and Misses measures.

Hit ratio

Indicates the percentage of requests that have been serviced by the cache.

Percent

Ideally, the value of this measure should be 80% and above. A value lesser than 80% indicates that the cache is unable to service many requests, maybe because the objects requested are not in cache. This could be due to poor cache size. 

Origin bandwidth saved

Indicates the percentage of origin bandwidth saved, expressed as the ratio of the number of bytes served from the integrated cache divided by all bytes served.

Percent

The integrated cache saves bandwidth by servicing requests that would otherwise have fetched data from the origin server and consumed considerable bandwidth resources in the process.

This is why, the value of this measure should be high, ideally.

A very low value indicates excessive bandwidth consumption and abysmal bandwidth saving owing to the inability of the cache to service majority of the requests. 

Non-304 hits

Indicates the total number of full (non-304) responses served by the cache during the last measurement period.

Number

 

304 hits

Indicates the total number of 304 responses served by the cache during the last measurement period.

Number

A 304 status code indicates that a response has not been modified since the last time it was served.

304 hit ratio

Indicates the percentage of 304 responses served by the cache during the last measurement period.

Percent

Ideally, the value of this measure should be close to 100%.

Data served by NetScaler

Indicates the total number of HTTP response bytes served by NetScaler from both the origin and the cache during the last measurement period.

MB

 

Data served by cache

Indicates the total number of HTTP response bytes served by the cache since the last measurement period.

MB

 

Data hit ratio

Indicates what percentage of the total data served by NetScaler has been served y the cache.

Percent

A value close to 100% is desired for this measure.

If compression is On in the NetScaler, this ratio may not reflect the bytes served by the compression module. If the compression is Off, this ratio is the same the ratio of the Origin bandwidth saved.

Compressed data from cache

Indicates the number of compressed bytes served from the cache during the last measurement period.

 

MB

 

Storable misses

Indicates the number of cache misses in the last measurement period, for which the response fetched from the origin server was stored in the cache before serving to the client.

Number

A high value is desired for this measure, as it may reduce cache misses going forward.

Non-storable misses

Indicates the number of cache misses in the last measurement period, for which the response fetched from the origin server was not stored in the cache before serving to the client.

Number

Ideally, the value of this measure should be 0. This is because, non-storable misses are inappropriate for caching. By default, any response that contains the following status codes is a non-storable cache miss:

201, 202, 204, 205, 206 status codes

All 4xx codes, except 403, 404 and 410

5xx status codes

Revalidations

Indicates the number of responses that an intervening cache revalidated with the integrated cache before serving to the client.

Number

Max-Age setting in a Cache-Control header determines, in number of seconds, when an intervening cache must revalidate the content with the integrated cache before serving it to the user.

The value of this measure signifies the number of times the Max-Age setting was violated, causing revalidation to be attempted.

Successful revalidations

Indicates the number of successful revalidations in the last measurement period.

Percent

Ideally, the value of this measure should be the same as the value of the Revalidations measure.

Conversions to conditional requests

Indicates the number of user-agent requests for a cached Poll Every Time (PET) response that were sent to the origin server as conditional requests.

 

Number

You can configure the NetScaler appliance to always consult the origin server before serving a stored response. This is known as Poll Every Time (PET). When the NetScaler appliance consults the origin server and the PET response has not expired, a full response from the origin server does not overwrite cached content. This property is useful when serving client-specific content. After a PET response expires, the NetScaler appliance refreshes it when the first full response arrives from the origin server.

A client issues a conditional request to ensure that the response that it has is the most recent copy. A user-agent request for a cached PET response is always converted to a conditional request and sent to the origin server. A conditional request has validators in If-Modified-Since or If-None-Match headers. The If-Modified-Since header contains the time from the Last-Modified header. An If-None-Match header contains the response's ETag header value.

If the client's copy of the response is fresh, the origin server replies with 304 Not Modified. If the copy is stale, a conditional response generates a 200 OK that contains the entire response.

Storable miss ratio

Indicates the percentage of all cache misses, for which responses were fetched from the origin, stored in the cache, and then served to the client.

Percent

Higher the value of this measure, lesser will be the count of cache misses going forward. A value close to 100% will be ideal.

Successful revalidation ratio

Indicates the percentage of times stored content was successfully revalidated by a 304 (Object Not Modifed) response rather than by a full response.

Percent

The value 100% will be ideal for this measure.

Expire at last byte

Indicates the number of times content expired immediately fter receiving the last body byte due to the Expire at Last Byte setting of the content group.

Number

 

Flashcache misses

Indicates the number of requests to a content group with flash cache enabled that were not serviced by the cache.

Number

The phenomenon of Flash crowds occurs when a large number of clients access the same content. The result is a sudden surge in traffic toward the server. The Flash Cache feature enables the NetScaler appliance to improve performance in such situations by sending only one request to the server. All other requests are queued on the appliance and the single response is served to all of the requests.

Ideally, the value of this measure should be 0.

Flashcache hits

Indicates the number of requests to a content group with flash cache enabled that were serviced by the cache.

Number

Ideally, the value of this measure should be high.

Parameterized invalidation requests

Indicates the number of requests in the last measurement period that match a policy with an invalidation (INVAL) action and a content group that uses an invalidation selector or parameters.

 

Number

Policies enable the integrated cache to determine whether to try to serve a response from the cache or the origin.

Actions determine what the NetScaler appliance does when traffic matches a policy.

Policies that you associate with the INVAL action for instance, immediately expire cached responses and refresh them from the origin server.

An invalidation selector/parameter in a content group is a filter that locates particular objects in a content group that need to be expired.

The value of this measure represents the number of requests that match an invalidation policy configured with an invalidation selector or parameter. A non-zero value for this measure indicates that one/more responses in the content group match the invalidation selector/parameter specification in the invalidation policy and have hence been expired. 

Full invalidation requests

Indicates the number of requests in the last measurement period that match an invalidation policy where the invalGroups parameter is configured and expires one or more content groups.

Number

The invalGroups parameter in an INVAL policy configuration indicates the content groups to be invalidated/expired.

A non-zero value for this measure therefore indicates that content groups configured for invalidation have been found and have been expired.

Invalidation requests

Indicates the requests that in the last measurement period match an invalidation policy and result in expiration of specific cached responses or entire content groups.

Number

A non-zero value for this measure indicates that content groups and/or one/more responses in content groups have been found to be match with configured invalidation policies and the matching groups/responses have been expired.

Parameterized requests

Indicates the number of cache requests in the last measurement period that were processed using a policy with a parameterized content group – i.e., a content group configured with hit and/or invalidation parameters/selectors.

Number

 

Parameterized non-304 hits

Indicates the number of cache requests in the last measurement period that were processed using a policy with a parameterized content group, where full cached response was found, and the response was not a 304 (object not updated) response.

Number

 

Total parameterized hits

Indicates the number of cache requests in the last measurement period that were processed using a policy with a parameterized content group, where the cached object was found.

Number

 

Parameterized 304 hit ratio

Indicates the percentage of 304 (object not updated) responses that were found using a parameterized policy, relative to all cache hits.

Percent

 

Poll every time requests

Indicates the number of cache requests in the last measurement period that triggered a search for a content group that has Poll Every Time (PET) enabled.

Number

You can configure the NetScaler appliance to always consult the origin server before serving a stored response. This is known as Poll Every Time (PET). When the NetScaler appliance consults the origin server and the PET response has not expired, a full response from the origin server does not overwrite cached content. This property is useful when serving client-specific content.

After a PET response expires, the NetScaler appliance refreshes it when the first full response arrives from the origin server.

Poll every time hits

Indicates the number of times a cache hit was found using the Poll Every Time method.

Number

 

Poll every time hit ratio

Indicates the percentage of cache hits in content groups that have Poll Every Time enabled, relative to all searches of content groups with Poll Every Time enabled.

Number

A high value is desired for this measure.

Maximum memory

Indicates the largest amount of memory the NetScaler can dedicate to caching.

MB

Typically, upto 50% of memory available to the NetScaler appliance can be allocated for caching. If the global memory limit of the cache is set to 0, it indicates that the integrated cache feature is disabled.

Maximum memory active

Indicates the maximum amount of memory (active value) that will be set after the memory is actually allocated to the cache.

MB

Once the global memory limit is set, you can reset it to any other positive value later. However, this change will not alter the existing memory allocation to the Integrated cache immediately. For instance, you can change the global memory limit from 4000 MB to 6000 MB. But, if you query the memory limit soon after, you will find that while  the Maximum memory measure reports the new memory limit of 6000 MB, the actual memory usage limit in effect currently continues to be 4000 MB and is by Maximum memory active measure. To ensure that the change to the global memory limit is effected, save the new configuration and restart the appliance. Once this is done, then before the Maximum memory and Maximum memory active measures will report the same value.

Utilized memory

Indicates the amount of memory the cache is currently using.

MB

If the value of this measure is very close to the Maximum memory active measure, it indicates that the cache is running out of memory and will not be able to hold any more requested objects.  This will drastically reduce cache hits and increase cache misses. Also, accesses to the origin server will increase, thereby adversely impacting bandwidth usage.

Under such circumstances, you may want to consider resizing the cache by allocating more memory to it. 

Memory allocation failures

Indicates the total number of times in the last measurement period, the cache failed to allocate memory to store responses.

Number

Ideally, the value of this measure should be 0. A high value for this measure could indicate that the cache does not have adequate memory to allocate for responses. In such a situation, consider resizing the cache by allocating more memory to it.

Largest response so far

Indicates the the size (in bytes) of the largest response sent to client from the cache or the origin server.

MB

 

Cached objects

Indicates the number of responses currently in the cache.

Number

One of the reasons for a memory drain on the cache is the presence of too many objects in the cache. Whenever Memory allocation failures are high, check the value of this measure to figure out if too many objects have been cached.

Marker objects

Indicates the number of marker objects in the marker cell.

Number

Marker objects are created when a response exceeds the maximum or minimum size for entries in its content group or has not yet received the minimum number of hits required for items in its content group.

Though a marker object is cacheable, it will not be cached until it meets the configured maximum or minimum size specification or the minimum number of hits specification.

If too many cache misses occur because of a marker object, you may want to change the Minimum Response Size, Maximum Response Size, and/or the MinHits for the content group.

Hits being served

Indicates the number of requests currently being served by the cache.

Number

 

Misses being handled

Indicates the number of requests for which responses are fetched from the origin server but are currently being served by the cache.

Number