Cache Resources Test

A number of areas of the core Cache code require protection from simultaneous access by multiple processes. These areas are dubbed resources. Sometimes, when a resource requested by a Cache process is already in use, then a spin lock is created on the resource - in this case, the process simply waits in a loop ( i.e., spins) and repeatedly checks the lock status of the resource, until a lock on the resource is available to it. A few other times, the process, instead of creating a spin lock, might wait for a while to see if the resource is released, and if not, switch to the sleep mode. This process of acquiring a lock on a resource (with or without spinning) is also known as seizing. The Cache Resource test auto-discovers the resources on every configured Cache instance, and reports the number of times seizes have occurred on the discovered resources, thereby enabling administrators to determine whether there is a serious contention for resources on the Cache instance. Moreover, the detailed diagnosis of this test additionally reveals the number of seizes per seize state, thus isolating Cache instances where highly expensive seize operations are being performed.

Target of the test : A Cache Database server

Agent deploying the test : An internal/remote agent

Outputs of the test : One set of results for every InstanceName:Resource pair discovered

Configurable parameters for the test
  1. TEST PERIOD – How often should the test be executed
  2. Host – The IP address of the Cache database server
  3. Port – The port on which the server is listening
  4. INSTANCEDIRECTORY - Typically, the Cache console log file will be available in the install directory of a Cache instance. Therefore, in the INSTANCEDIRECTORY text box, specify the name of the instance being monitored and the install directory that holds the Cache console log file of that instance, in the following format: InstanceName:InstallDirectory. In case you want to monitor the console log files pertaining to multiple Cache instances, then provide a comma-separated list of InstanceName:InstallDirectory pairs in the INSTANCEDIRECTORY text box. For example: CACHEWEB:d:\Intersystems\CacheWeb,CACHE2:d:\Intersystems\Cache2.
  5. To make diagnosis more efficient and accurate, the eG Enterprise embeds an optional detailed diagnostic capability. With this capability, the eG agents can be configured to run detailed, more elaborate tests as and when specific problems are detected. To enable the detailed diagnosis capability of this test for a particular server, choose the On option. To disable the capability, click on the Off option.

    The option to selectively enable/disable the detailed diagnosis capability will be available only if the following conditions are fulfilled:

    • The eG manager license should allow the detailed diagnosis capability
    • Both the normal and abnormal frequencies configured for the detailed diagnosis measures should not be 0.
Measurements made by the test
Measurement Description Measurement Unit Interpretation

Resource seizures:

Indicates the number of times this resource was seized.

Number

Ideally, this value should be low. If the value is high, then, you can use the detailed diagnosis of this measure (if enabled), to know the seize state, and the number of seizes in every state, so that you can analyze the implications of the high seize count effectively. The various seize states are as follows:

Seize State

Description

A Seize

Number of times spun before acquiring lock on the resource

N Seize

Number of times spun before failing to acquire a lock on the resource

B Seize

Number of times spun and switched to sleep mode before acquiring a lock on the resource

BusySet

Other waiters spinning should wait behind this one

N Seizes are typically expensive on SMP systems.