SNMP Informant Knowledge-base |
Article: 2005-007
Last Updated: 16Jan2006
Product: SNMP Informant - Advanced Version, Application Plus Packs, WMI
versions, Standard Version
Subject: Configuring registry settings to control SNMP Informant
performance
Keywords: cache, GETNEXT, registry settings, Advanced, Standard, WMI, APP
This article is written to help you better understand how to configure the SNMP Informant registry settings found in the Advanced, Application Plus Packs, and WMI versions. First of all, let's define a query for the purpose of this article:
Query: A request made by SNMP Informant to the
local Performance Data Help (PDH) sub-system, based on the SNMP GET request that
SNMP Informant receives from a network management application or tool.
Now that we know what a query is, let's look at the
registry entries used by SNMP Informant. Values shown are decimal:
Next, let see where the registry is actually changed (thats /HKEY_LOCAL_MACHINE/SOFTWARE/WTCS/informant). The changes you make are at the product level (i.e. Advanced).
The information below this point are the names of the registry values, and describe how they affect the agents' performance.
Entry: DeltaQueryDelay
Applies to:
Advanced (v1.0 - 1.1.1)
BizTalk (v1.0 - 1.1.1)
Exchange (v1.0 - 1.1.1)
ISAServer (v1.0 - 1.0.1)
SQLServer (v1.0 - 1.2.1)
Standard (v1.0 - 1.3)
Registry Type: DWORD
Default Value: 50
Units: milliseconds
For SNMP GETNEXT (WALK) queries, the SNMP Informant agent will create a PDH
query related to the OID, take a sample, sleep for the time specified in
DeltaQueryDelay, take and second sample, delete the query, and return the
calculated value between two samples. The above is exactly the same for the SNMP
GET queries except the query will not be destroyed before returning but rather
reused for the next query. Increasing this value will give a more accurate
sample (e.g., sampling CPU usage over 50 milliseconds will be less accurate than
over 1 second) however it will cause the queries to return much slower. For SNMP
GET queries, this value will only affect the first query. After the first query,
the previous value will be used to calculate the next query.
Entry: GetNextInstanceTimeSpan
Applies to:
Advanced (v1.0 - 1.1.1)
BizTalk (v1.0 - 1.1.1)
Exchange (v1.0 - 1.1.1)
ISAServer (v1.0 - 1.0.1)
SQLServer (v1.0 - 1.2.1)
Standard (v1.0 - 1.3)
WMI Operating System (v1.0 - 1.2)
WMI Hardware (v1.0 - 1.1.1)
Registry Type: DWORD
Default Value: 5000 (PDH) 60000 (WMI)
Units: milliseconds
This registry setting applies to SNMP GETNEXT queries only. It is used to
identify when to look for new instances. When iterating across the process PDH
or WMI object for example, there would be a large performance hit if a if you
looked for a new instance each time. Instead, we only look for new instances
when GetNextInstanceTimeSpan (default time is 5000 seconds) expires or we switch
to a different PDH counter/object. Setting this value to a lower number will
keep your process list more accurate (current), but will do as at the expense of
longer response time as a new iteration is performed.
Entry: GetInstanceTimeSpan
Applies to:
Advanced (v1.2 - current)
BizTalk (v1.2 - current)
Exchange (v1.2 - current)
ISAServer (v1.2 - current)
SQLServer (v1.3 - current)
Standard (v1.4 - current)
Registry Type: DWORD
Default Value: 60000
Units: milliseconds
This registry setting applies to SNMP GET and GETNEXT queries. It is used to
identify when to look for new instances. When iterating across the process PDH
object for example, there would be a large performance hit if a if you looked
for a new instance each time. Instead, we only look for new instances when
GetInstanceTimeSpan (default time is 60 seconds) expires or we switch to a
different PDH counter/object. Setting this value to a lower number will keep
your process list more accurate (current), but will do as at the expense of
longer response time as a new iteration is performed.
Entry: MaxQueryCacheSize
Applies to:
Advanced (v1.2 - current)
BizTalk (v1.2 - current)
Exchange (v1.2 - current)
ISAServer (v1.2 - current)
SQLServer (v1.3 - current)
Standard (v1.4 - current)
WMI Operating System (v1.2.1 - current)
WMI Hardware (v1.2 - current)
WMI Exchange (v1.0 - current)
Registry Type: DWORD
Default Value: 300
Units: Number of queries
The number of different queries that can be cached for both GET and GETNEXT
queries per agent. When a request comes in, it looks for the query associated
with the OID in the cache. If it doesn't exist, then it creates a query and
caches it. The cache only contains entries that require multiple samples. For
example, the CPU object will be in the cache, but the Memory usage will not,
because the memory object counters are an "as at" (right now) sample. CPU on the
other hand, is a calculated average value based on two separate samples. Both
the last value and the query itself is stored. The query is used to take another
sample. The last value is used for the computation to determine the average
value. Increase this value for the necessary agent if you are receiving an error
message from SNMP Informant stating that the query cache size was exceeded.
Entry: QueryLifeSpan
Applies to:
Advanced (v1.2 - current)
BizTalk (v1.2 - current)
Exchange (v1.2 - current)
ISAServer (v1.2 - current)
SQLServer (v1.3 - current)
Standard (v1.4 - current)
WMI Operating System (v1.2.1 - current)
WMI Hardware (v1.2 - current)
WMI Exchange (v1.0 - current)
Registry Type: DWORD
Default Value: 21600000
Units: milliseconds
This is the length of time a query (and the accompanying value) can exist in the
cache without being requested before it is purged. Default time is 6 hours. If
the query lifespan expires, then the query (and accompanying value) is deleted.
Once this query is purged from the cache, a computation between it and a new
query cannot be performed. Should this be the case, the new query is stored in
the cache with a sample value of 0 (in preparation for a second query, where the
new value and 0 will be used to calculate an average). If a query that exists in
the cache is re-requested, the QueryLifeSpan counter restarts for that query.
Increase this value for the necessary agents if you are queries from the SNMP
Manager Station are more than 6 hours between samples.