Windows Server AppFabric Caching Beta1 Migration
|
Microsoft |
|
Windows Server AppFabric Caching Beta1 Migration |
|
“Velocity” CTP3 to AppFabric Beta1 migration |
|
Rama Ramani
|
|
|
|
|
|
This guide provides a drilldown of the new changes in Beta1 with a set of steps required to migrate your “Velocity” CTP3 deployment to the Windows Server AppFabric Caching Beta1 bits |
Table of Contents
Performance Monitor Counters. 4
Updates to the Installation Program.. 5
Total Notification Poll Requests. 18
Total Notification Delivered. 19
Total Successful GetAndLock Requests. 19
Average Quorum Response Time*. 20
Average Secondary Response Time*. 20
Total Successful GetAndLock Requests. 23
Total Replication Retries*. 23
App Fabric Overview
Windows Server AppFabric delivers a set of capabilities for hosting services (RESTful or SOAP-based), workflows, and application-level monitoring. This allows developers to spend more of their time developing their applications by removing much of the complexity associated with maintaining the application infrastructure. For more information about Windows Server AppFabric see Introducing Dublin and Velocity (http://go.microsoft.com/fwlink/?LinkId=179136) and Windows Server AppFabric (http://go.microsoft.com/fwlink/?LinkId=179043) on MSDN.
One of the challenges of composite applications is scaling as the needs of the business grow. AppFabric’s distributed in-memory caching technology (previously code-named “Velocity”) caches data in the middle tier of a composite application to deliver faster performance and greater reliability (through high availability of cached data across a fabric of servers). This provides elastic scale as the number of users grows, without the need to move to larger, more expensive server architectures.
For an in-depth overview of the caching features in Windows Server AppFabric see Introduction to Caching with Windows Server AppFabric (Beta 1) (http://go.microsoft.com/fwlink/?LinkId=164828).
What is “Velocity” CTP3?
A stand-alone CTP version of the AppFabric caching was released under the codename “Velocity”. The functionality from CTP3 has been enhanced and packaged as an integrated Windows Server AppFabric starting with Beta1.
This transition from a standalone codenamed project to delivery as a component of Windows Server AppFabric is an important milestone and an appropriate time to retire the codename. Moving forward this technology will be delivered as a feature of Windows Server AppFabric
Migrating from CTP3
There is no upgrade from CTP3 à Beta1. Please follow the manual instructions below for migrating from CTP3 to Beta1
· Export cluster configuration by running the following command using the PowerShell admin tool

· Backup the web.config from the developer (client) machines
· Uninstall CTP3
· Install and Configure Beta1 following instructions from Setup and Configuration
Beta1
New Features Overview
Performance Monitor Counters
Velocity CTP4 provides performance monitor counters that can be used to measure and analyze multiple aspects of Velocity cache cluster performance.
Security Enhancements
The cache host Windows service now runs under a lower-privileged account: Network Service. To simplify deployment, the installation program now helps to configure the permissions of installation folders and the cluster configuration storage location. You still need to be an administrator on the cache servers and cluster configuration storage location in order to install Velocity.
New Replication Port
The addition of a new replication port with CTP4 has implications for configuration and management of a Velocity cache host cluster.
Updates to the Installation Program
Velocity can now be configured as only a service node, only an Administration node, or both a service and Administration node. To streamline deployment, the installation program now supports automated installation for the cache host.
New API
Velocity CTP4 introduces the following API changes:
· BulkGet API: The DataCache.BulkGet method returns objects for the specified keys from the specified region of the cache.
· BulkNotification API: The DataCache.AddCacheLevelBulkCallbacks method adds a bulk cache notification callback for cache operations occurring on all regions and items.
· Functionality for using tags with default regions.
· Exception granularity provided with the Substatus method of the DataCacheException class
· Functionality to create and remove regions through the CreateRegion and RemoveRegion methods of the DataCache type.
· The DataCacheFactory constructor has changed which has implications for programmatic use of this constructor.
Windows Server AppFabric Beta 1 is available for download athttp://go.microsoft.com/fwlink/?LinkId=179044.
Installation requirements
Platform requirements
Note: Starting with Beta1 there is no support for Windows Server 2003 installations. This is due to the fact that the integrated installer is based on CBS (Component based servicing) whereas Windows Server 2003 utilizes MSI technology.
|
Platform |
Setup package |
|
Windows Vista SP2 and Windows Server 2008 SP2 x64 |
AseSetup_amd64_6.0.exe |
|
Windows 7 and Windows Server 2008 R2 x64 |
AseSetup_amd64_6.1.exe |
|
Windows Vista SP2 and Windows Server 2008 SP2 x86 |
AseSetup_x86_6.0.exe |
|
Windows 7 x86 |
AseSetup_x86_6.1.exe |
Install component
Choose the appropriate component of the Distributed Cache:
|
Control |
Description |
|
Worker |
Application server components that enable you to reliably host and manage WF/ WCF applications |
|
Distributed Cache Service |
The distributed cache service and related components that enable you to prepare this host as a Distributed Cache Service, turning the server into the node of a cache cluster. You can create a new cache cluster or join this host to an existing cluster of Distributed Cache Services. |
|
Distributed Cache Client |
The client libraries that enable you to use Distributed Cache functionality in your applications |
|
Distributed Cache Admin |
Components that enable you to administer a Distributed Cache cluster. |
Pre-requirements
|
Control |
OS |
.NET version |
|
Distributed Cache Service |
Windows Server 2008 SP2
|
.NET 3.5 SP1 or .NET 4.0 Beta2 |
|
Distributed Cache Client |
Windows Server 2008 SP2 Windows 7 Windows Vista SP2 |
.NET 3.5 SP1 or .NET 4.0 Beta2 |
|
Distributed Cache Admin |
Windows Server 2008 SP2 |
PowerShell V2 |
NOTE: Beginning with the Beta2 version, the .NET framework requirements will change as follows. The Cache Service will require .NET 4.0 to be installed and Cache Clients developed using .NET 3.5 SP1 will be supported.
Setup andConfiguration
Please refer to the Application Server Extensions for .NET 4 Installation Guide (http://go.microsoft.com/fwlink/?LinkId=169172) and ensure your system satisfies the ‘CheckList’ criteria mentioned in the document.
With Beta1, there are a set of steps for completing the installation of Windows Server AppFabric. Refer to the “Installing the Distributed Cache Features” section in the Installation guide.
Shown below are some sample screen shots to walkthrough the installation process


|
|
The specified configuration store needs to exist prior to configuration.
When configuring the Distributed Cache settings, entering a non-existent local file share or specifying a SQL Server database that does not exist, will cause configuration to fail. When this occurs, the failure for Distributed Cache configuration is reported on the results page of the setup wizard. Detail of the failed configuration are logged in the Distributed Cache configuration error log, located at %temp%\ DistributedCacheAppServerConfig<timestamp>.log.
To ensure that configuration succeeds, perform one of the steps listed below:
|
Configuration Type |
Steps |
|
New cluster with XML Provider |
Specify an existing network share such as \\ServerName\CacheShare. |
|
Join existing cluster with XML Provider |
· Specify an existing network share such as \\ServerName\CacheShare. · Ensure that the clusterconfig.xml file is present at the specified network share. |
|
New cluster with SQL Provider |
Manually create a new database using the name specified in the connection string. |
|
Join existing cluster with SQL Provider |
Ensure that the database specified in the connection string already exists and is accessible. |
|
|
When using the XML Provider, you must expand the Network item in the browse dialog box, select a computer, and then select a network file share present on that computer if you want to browse to a network location. Manually typing in a network location using the format \\computername\mycachefileshare and then selecting Browse will not display the specified location.
Error
In case of any error, review the setup and configuration logs. The configuration file can be found in the %TEMP% directory and the file name has the format “DistributedCacheAppServerConfig(<TIMESTAMP>)”.log
Security settings
Security options are a new feature in Beta1. Follow the instructions below to setup security correctly for communication between AppFabric Cache clients and the Cache server.
Error Message
Microsoft.Data.Caching.DataCacheException: ErrorCode<ERRCA0022>:SubStatus<ES0006>:There is a temporary failure, please retry after some time. (One or more specified cache servers are unavailable, which could be caused by busy network or servers. Please ensure security permission has been granted for this client account on cluster and ensure that cache service is allowed through firewall on all cache hosts. Retry later)
at Microsoft.Data.Caching.DataCacheFactory.Initialize()
at Microsoft.Data.Caching.DataCacheFactory.CreateCacheFactory(EndpointID[] servers, Boolean routingClient, Boolean localCache, DataCacheLocalCacheSyncPolicy syncPolicy, Int32 localCacheTimeout, Int32 pollInterval, Int64 objectCount, Int32 masterTimeout, TimeSpan channelOpenTimeout, DataCacheSecurity dataCacheSecurity)
at Microsoft.Data.Caching.DataCacheFactory..ctor(DataCacheServerEndpoint[] servers, Boolean routingClient, Boolean localCache)
Server changes
· If cluster is running, from the powershell admin tool stop the cluster using ‘Stop-CacheCluster’ command.
· From the powershell admin tool, do an ‘Export-CacheClusterConfig’ to a file
· Open the above file and add the following section inside the ‘datacache’ section, but outside of any other section:
<advancedProperties>
<securityProperties mode="Transport" protectionLevel="Sign" />
</advancedProperties>
|
|
If you are within a secured environment and do not need the new security functionality, you can replace the configuration with <securityProperties mode="None" protectionLevel="None" />. Applying this setting will retain the CTP3 behavior.
· Save the file.
· Perform an ‘Import-CacheClusterConfig’ of this file back into the cluster. [You can verify that the correct config is getting into the cluster by doing ‘Export’ again].
· Use the powershell admin tool to grant permission for the particular group or user account

· Start the cluster.
Here is a sample XML file after all the changes have been applied:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="dataCache" type="Microsoft.Data.Caching.DataCacheSection, CacheBaseLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</configSections>
<dataCache size="Small">
<caches>
<cache type="partitioned" consistency="strong" name="myCache">
<policy>
<eviction type="lru" />
<expiration defaultTTL="10" isExpirable="true" />
</policy>
</cache>
</caches>
<hosts>
<host replicationPort="22236" arbitratorPort="22235" clusterPort="22234"
hostId="1863956339" size="1228" leadHost="true" account="redmond.corp.microsoft.com\CACHETEST$"
name="CACHETEST" cacheHostName="DistributedCacheService"
cachePort="22233" />
</hosts>
<advancedProperties>
<securityProperties>
<authorization>
<allow users="testdomain\testusers" />
<allow users="testdomain\testadmins" />
</authorization>
</securityProperties>
</advancedProperties>
</dataCache>
</configuration>
Client changes
The Velocity clients need to reflect the corresponding security settings. So in the web.config, make the following changes:
<dataCacheClient deployment="routing">
<localCache isEnabled="true" sync="NotificationBased" ttlValue="300" />
<clientNotification pollInterval="300" />
<hosts>
<host name="localhost" cachePort="22233" cacheHostName="DistributedCacheService"/>
</hosts>
<securityProperties mode="Transport" protectionLevel="Sign"/>
</dataCacheClient>
The security settings can also be modified via code. Here is an example used to disable security:
DataCacheSecurity security = new DataCacheSecurity(DataCacheSecurityMode.None, DataCacheProtectionLevel.None);
CacheManager.cacheFactory = new DataCacheFactory(servers, true /*routingClient*/, false /*localCache*/, 0, DataCacheLocalCacheSyncPolicy.TimeoutBased, 0, 0, security);
|
|
Security failure within an ASP.NET session client is not diagnosable
Performance Impact
Customers moving from CTP3 to Beta1, will see a performance dip of about 30% when security is enabled. This is due to the impact of employing message signing to avoid man in the middle attacks. Depending on the deployment topology, you can choose the right security option.
|
|
To disable message signing and to retain the authorization, you can setup the config file at server and client as follows:
<securityProperties mode="Transport" protectionLevel="None" />
Perfmon
Starting with Beta1, a rich set of performance monitor counters are available for monitoring.
Performance counter can be enabled ordisabled and a sample interval can be set by using following configuration element in the service configuration file.
<dataCacheConfig hostName="service-host-name"
<performanceMonitor isEnabled="true" sampleInterval="950"/>
</dataCacheConfig>
|
|
By default Performance Monitor counters are enabled. Disabling Performance Monitor is not recommended.
Here is a screenshot of the Performance Monitor tool:

Category
Velocity provides three Performance Monitor categories.
Host
A category for single-instance performance counters pertaining to a single cache host. Host counters track information such as total active connections and total client requests for a cache host.
Perfmon Category Name: Distributed Cache:Host
Perfmon explain string: A category for single-instance performance counters pertaining to a single cache host.
Cache
A category for multiple-instance performance counters pertaining to all caches in host. Each instance of a cache counter corresponds to a separate named cache in the Host.
Perfmon Category Name: Distributed Cache:Cache
Perfmon explain string: A category for multiple-instance performance counters pertaining to all caches in host.
Secondary Host
This counter will be of multiple instance type and each instance will represent a secondary server
Perfmon Category Name: Distributed Cache:Secondary Host
Perfmon explaination string: This counter will be of multiple instance type and each instance will represent a secondary server.
Host counters
Host counters provide host level information including overall information about throughput and resource usage. It combines primary and secondary information.
In future, this category may be divided into Primary and Secondary host category to capture information in finer detail.
Total Data Size*
Represents the total size of cached data in Velocity, not including cache overhead. Indicates the current data memory usage of the server.
Unit of this counter is Mega Bytes. This counter includes memory on secondary and primary cache on the host.
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Total Data Size Mbytes |
NumberOfItems64 |
Represents the total size of cached data in the cache, not including cache overhead. Indicates the current data memory usage of the server. |
Total Cache Misses
The total number of unsuccessful cache requests per second since the service has started. This provides information about how efficiently the cache is being used.
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Total Cache Misses |
NumberOfItems64 |
The total number of unsuccessful cache requests since start of cache service. |
|
Total Cache Misses /sec |
RateOfCountsPerSecond64 |
The total number of unsuccessful cache requests per second since start of cache service. |
Total Get requests
The number of Get request received from all clients since service has started. Cache is mainly designed for read operation. This counter along with Total Client Request Counter will give information about usage pattern of cache.
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Total Get Requests |
NumberOfItems64 |
The number of Get requests received from all clients since service has started. |
|
Total Get Requests /sec |
RateOfCountsPerSecond64 |
The number of Get requests per second received from all clients since service has started. |
Total Get misses
The number of Get misses from all clients since service has started.
Applicable: Host
Type: NumberOfItems64, RateOfCountsPerSecond64
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Total Get Misses |
NumberOfItems64 |
The number of Get misses from all clients since start of cache service. |
|
Total Get Misses /sec |
RateOfCountsPerSecond64 |
The number of Get misses per second from all clients since start of cache service. |
Cache Miss Percentage
The ratio of number of unsuccessful cache requests to the total number of request since the service has started. This provides information about how efficiently the cache is being used. This is a ratio of the sum of misses to total number of requests since the service has started.
RawFraction
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Cache Miss Percentage |
RawFraction |
The percentage of unsuccessful cache requests to the total number of request since start of cache service. |
|
Base Cache Miss Percentage |
RawBase |
Base counter for Cache Miss Percentage |
Total Read requests
The Thenumber of read request received from all clients since service has started. It gives information about how many operation are of read type. Bulk Get, Get and enumeration are part of read operation. Enumeration works on Batching (pre-fetching) of Object. Every ‘Current’ call in enumerator doesn’t translate to read request on server. Number of Object returned by enumerator can be obtained from ‘Total objects returned ‘counter. Number of read request for an enumeration depends on size of objects returned by the enumeration.
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Total Read Requests |
NumberOfItems64 |
The number of read requests (Bulk Get, Get and Enumeration) received from all clients since start of cache service. |
|
Total Read Requests /sec |
RateOfCountsPerSecond64 |
The number of read requests (Bulk Get, Get and Enumeration) received per second from all clients since start of cache service. |
Total objects returned
The number of objects returned by read to client. This counter along with total read requests counter shows success of read operation.
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Total Objects Returned |
NumberOfItems64 |
The number of objects returned by client read requests. This counter along with total read requests counter indicates the success of read operations. |
|
Total Objects Returned /sec |
RateOfCountsPerSecond64 |
The number of objects returned by client read requests per second. |
Total Write Operations
The number of write request since service has started. It includes put, add and lock APIs. This counter along with read request counter shows polarity of cache toward write or read operations. This counter includes write operation on secondary also. Write operation includes Add, Put, GetAndLock, Unlock, PutAndlock, ResetTimeout and replicated secondary operation
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Total Write Operations |
NumberOfItems64 |
The number of write requests since start of cache service. Put, Add and Lock methods are included with write operations. |
|
Total Write Operations /sec |
RateOfCountsPerSecond64 |
The number of write requests per second since start of cache service. Put, Add and Lock methods are included with write operations. |
Total Client Requests *
The total number request sent by the client. It includes all API calls. This counter along with total requests served will give information how good server is performing with incoming request. Secondary operation request is not included in this counter. Since this counter gives throughput of server, it is made thread safe.
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Total Client Requests |
NumberOfItems64 |
The total number of client requests, including all API calls. |
|
Total Client Requests /sec |
RateOfCountsPerSecond64 |
The total number of client requests per second, including all API calls. |
Total Requests Served
It is counter for number of request served and response sent by server since server has started. This will give an idea about throughput of server. Secondary operation served is not included in this counter.
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Total Requests Served |
NumberOfItems64 |
The number of request served and responses sent by the server since start of cache service. |
|
Total Requests Served /sec |
RateOfCountsPerSecond64 |
The number of request served and responses sent by the server per second since start of cache service. |
Total Expired Objects*
This counter stores the number of expired object since the service has started. This counter does not include the number ofobjects that have expired in secondary hosts.
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Total Expired Objects |
NumberOfItems64 |
The total number of expired objects since the cache service was last started. |
Total Evicted Objects*
This counter stores the number of evicted objects since the cache service was last started. This counter does not include the number ofobjects that have been evicted in secondary hosts.
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Total Evicted Objects |
NumberOfItems64 |
The total number of evicted objects since the cache service was last started. |
Total Memory Evicted*
Indicates the amount of memory freed from the cache since the cache service was last started. Unit of this counter is in bytes. This counter also includes expired object memory. Note that it is possible for Total memory evicted (bytes) to be non zero even if the value of Total eviction runs is zero. This includes only primary cache memory eviction.
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Total Evicted Objects |
NumberOfItems64 |
The amount of memory freed from cache since the cache service was last started. This counter also includes expired object memory. |
Total eviction runs*
The number of eviction runs since the start of the cache service. This counter may be used in conjunction with the Total Memory Evicted counter to help troubleshoot memory issues. Note that it is possible for Total memory evicted (bytes) to be non zero even if the value of Total eviction runs is zero.
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Total Eviction Runs |
NumberOfItems64 |
The number of eviction runs since the cache service was last started. |
Total Failure Exceptions
Indicates how many Application Server Cache exceptions are being thrown by server since the cache service was last started. Since exceptions are a costly operation, it is useful to know the number of exceptions to help analyze reductions in server throughput.
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Total Failure Exceptions |
NumberOfItems64 |
The number of exceptions thrown by the server since the cache service was last started. |
|
Total Failure Exceptions/sec |
RateOfCountsPerSecond64 |
The number of exceptions per second that are being thrown by the server since the cache service was last started. |
Total Retry Exception
The total number of retry operation exceptions since the cache service was last started.
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Total Retry Exception |
NumberOfItems64 |
The total number of retry operation exceptions since the cache service was last started. |
|
Total Retry Exception /sec |
RateOfCountsPerSecond64 |
The total number of retry operation exceptions per second since the cache service was last started. |
Total Notification Poll Requests
The number of poll request from client since the cache service was last started. This information may be useful for helping to adjust the polling interval.
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Total Notification Poll Requests |
NumberOfItems64 |
The total number of poll request from client since the cache service was last started. |
|
Total Notification Poll Requests /sec |
RateOfCountsPerSecond64 |
The total number of poll request per second from client since the cache service was last started. |
Total Notification Delivered
The number of notification delivered to the client since the cache service was last started.
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Total Notification Delivered |
NumberOfItems64 |
The number of notifications delivered to clients since the cache service was last started. |
|
Total Notification Delivered /sec |
RateOfCountsPerSecond64 |
The number of notifications per second delivered to clients since the cache service was last started. |
Total GetAndLock Requests
The total number of GetAndLock request since service has started.
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Total GetAndLock Requests |
NumberOfItems64 |
The total number of GetAndLock requests since start of cache service. |
|
Total GetAndLock Requests /sec |
RateOfCountsPerSecond64 |
The total number of GetAndLock requests per second since start of cache service. |
Total Successful GetAndLock Requests
The number of GetAndLock requests succeeded since the cache service was last started.
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Total Successful GetAndLock Requests |
NumberOfItems64 |
The number of GetAndLock requests succeeded since the cache service was last started. |
|
Total Successful GetAndLock Requests /sec |
RateOfCountsPerSecond64 |
The number of GetAndLock requests succeeded per second since the cache service was last started. |
Average Quorum Response Time*
This counter gives average time spent in quorum response since the cache service was last started. This provides information about how much time for write operations is spent in replication.
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Average Quorum Response Time / operation Microsecond |
AverageCount64 |
The average time spent in quorum response since the cache service was last started. It indicates amount of time spent by write operations in replication. |
|
Base Average Quorum Response Time / operation |
AverageBase |
Base counter for Average Quorum Response Time / operation |
Average Secondary Response Time*
This counter gives average time spent in all secondary response since the cache service was last started.
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Average Secondary Response Time / operation Microsecond |
AverageCount64 |
The average time spent to get response from all the secondary servers. |
|
Base Average Secondary Response Time / operation |
AverageBase |
Base counter for Average Secondary Response Time / operation. |
Cache counters
Velocity has following counters under the Perfmon cache category.
Total Data Size*
This counter will represent the total size of cached data in the cache. It does not include cache overhead. It shows the current data memory usage of Cache. This counter is measured in megabytes and includes secondary and primary cache memory on the host.
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Total Data Size Mbytes |
NumberOfItems64 |
Represents the total size of cached data in the cache, not including cache overhead. Indicates the current data memory usage of the server. |
Total Cache Misses
The total number of requests that couldn’t find the key in cache since the cache service was last started. This provides information about how efficiently cache is being used.
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Total Cache Misses |
NumberOfItems64 |
The total number of unsuccessful cache requests since the cache service was last started. |
|
Total Cache Misses /sec |
RateOfCountsPerSecond64 |
The total number of unsuccessful cache requests per second since the cache service was last started. |
Cache Miss Percentage
The ratio of number of request that couldn’t find the key to total number of request since the cache service was last started. This provides information about how efficiently cache is being used. It is a ratio of sum of misses to total number of request since the cache service was last started. This value is returned as a percentage.
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Cache Miss Percentage |
RawFraction |
The percentage of unsuccessful cache requests to the total number of request since the cache service was last started. |
|
Base Cache Miss Percentage |
RawBase |
Base counter for Cache Miss Percentage |
Total Read requests
The number of read request received from all clients since the cache service was last started. It provides information about how many operation are of read type. Bulk Get, Get and enumeration are part of read operation.
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Total Read Requests |
NumberOfItems64 |
The number of read requests (Bulk Get, Get and Enumeration) received from all clients since the cache service was last started. |
|
Total Read Requests /sec |
RateOfCountsPerSecond64 |
The number of read requests (Bulk Get, Get and Enumeration) received per second from all clients since the cache service was last started. |
Total objects returned
The number of objects returned by read to client.
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Total Objects Returned |
NumberOfItems64 |
The number of objects returned by client read requests since the cache service was last started. This counter along with total read requests counter indicates the success of read operations. |
|
Total Objects Returned /sec |
RateOfCountsPerSecond64 |
The number of objects returned by client read requests per second. |
Total Write Operations
The number of write request since the cache service was last started. It includes put, add and lock operations. This counter along with read request counter indicates polarity of cache toward write or read operations. This counter also includes write operation on secondary hosts.
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Total Write Operations |
NumberOfItems64 |
The number of write requests since the cache service was last started. Put, Add and Lock methods are included with write operations. |
|
Total Write Operations /sec |
RateOfCountsPerSecond64 |
The number of write requests per second since the cache service was last started. Put, Add and Lock methods are included with write operations. |
Total Client Requests
The total number request sent by the client since the cache service was last started. It includes all API calls. This counter along with total requests served will give information how good server is performing with incoming request. A large difference between the Client Request and Request Served counter values may be an indication of a problem on server.
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Total Client Requests |
NumberOfItems64 |
The total number of client requests, including all API calls since the cache service was last started. |
|
Total Client Requests /sec |
RateOfCountsPerSecond64 |
The total number of client requests per second, including all API calls since the cache service was last started. |
Total GetAndLock Requests
The total number of GetAndLock request since the cache service was last started.
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Total GetAndLock Requests |
NumberOfItems64 |
The total number of GetAndLock requests since the cache service was last started. |
|
Total GetAndLock Requests /sec |
RateOfCountsPerSecond64 |
The total number of GetAndLock requests per second since the cache service was last started. |
Total Successful GetAndLock Requests
The number of GetAndLock request succeeded since the cache service was last started. Lower success rate of GetAndLock will result in reduced application performance.
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Total Successful GetAndLock Requests |
NumberOfItems64 |
The number of GetAndLock requests succeeded since the cache service was last started. |
|
Total Successful GetAndLock Requests /sec |
RateOfCountsPerSecond64 |
The number of GetAndLock requests succeeded per second since the cache service was last started. |
Secondary Host Counter
Total Replication Retries*
This counter gives the total number of retry replication operation for each secondary server. This helps determine secondary servers with low response time.
|
Counter Name |
Counter Type |
Perfmon Explain String |
|
Total Replication Retries |
NumberOfItems64 |
The total number of retry replication operations for each secondary server. |
Note