Use DmPerfss.cfg to exclude Performance Library DLLs that cause collection problems

NTSMF version 2.4.6 and higher utilizes a facility that allows you to specifically exclude Performance Library DLLs that cause collection problems. Instructions to exclude specific Performance Library (Perflib) DLLs are contained in an optional configuration file named DmPerfss.cfg that is stored in the NTSMF root directory. The format of theDmPerfss.cfg file, which use a simple XML syntax, is documented in this Technical Note.

The main dispatcher thread of the Collection service generates a separate collection thread for each Perflib DLL that it finds installed on the local machine during the Discovery phase at the beginning of every collection cycle. (Follow this link for more .) Each Open and Collect call to a Perflib DLL is performed under a dedicated collection thread. With the threaded collector, it is possible to detect and recover from most failures involving direct calls to Perflib DLLs, sometimes even when calls via the Microsoft PDH and WMI plumbing that other products use, including System Monitor, fail. Under normal circumstances, the NTSMF collection service continues to gather performance data even in the face of buggy, third party Perflib DLL modules.

There are extenuating circumstances when it is desirable for the NTSMF collection agent to ignore completely specific Performance Library DLLs that are defective and perform no processing on these modules. Performance Library DLLs that malfunction in the following ways are candidates for exclusion from all NTSMF processing :

  • The Perflib fails to return properly from any Open or Collect call and causes the collection agent, the application being monitored, or the system to hang.
  • When NTSMF successfully opens the Performance Library DLL, the module cannot be shared properly with other applications that also attempt to Open them.

When defective Perflibs are excluded from processing, the NTSMF collection agent does not attempt to load the DLLs or call their Open routines during the Discovery phase at the beginning of every collection cycle. You exclude these defective Perflibs from all NTSMF-related processing using entries in the DmPerfss.cfg configuration file.

Note: the use of the the DmPerfss.cfg configuration file is optional. A default DmPerfss.cfg configuration file is installed automatically when you run the standard software Setup routine. The default DmPerfss.cfg configuration file contains entries for Performance Library DLLs that we have seen cause severe problems in some of our customer sites. We recommend that you install and use the default DmPerfss.cfg configuration file.  You can modify the defaultDmPerfss.cfg configuration file using any text editor if you determine there are additional Performance Library DLLs that need to be excluded from NTSMF processing. We recommend that you contact Customer Support before you make modifications to the DmPerfss.cfg configuration file for your environment. If you are having a problem, there may well be other solutions to consider. If the Performance Library DLL is defective, we might like to let other customers know about it.

The <Perflibs> section of the DmPerfss.cfg configuration file can contain an Exclude list and an Include section. These sections identify specific Performance Library DLLs by module name (and optionally by version) that are to be excluded or included for processing at the beginning of a collection cycle.

Exclude list. The Exclude list causes the collector to exclude the modules listed (by version, if specified) from all NTSMF collection agent processing. The collection agent will not attempt to load a Perflib DLL module on the Exclude list at the beginning of a collection cycle. The Version specification is optional. Module entries without a version specification cause all versions of the Perflib DLL to be excluded. If specific Perflib DLL module versions are to be excluded, then they must be listed in the Version section. If there are duplicate entries, the Exclude list takes precedence over modules on the Include list .

Code a <Module FileName=”filename“></Module> section for each Performance Library DLL that you want to exclude from processing. Optionally, you can add one or more <Version> specifications that qualify which versions of the Performance Library DLL should be excluded. If the <Version> specification does not exist, any version of the Performance Library DLL that is found is excluded.

An example DmPerfss.cfg configuration file with an Exclude list is coded below:


<! — Sybase ASA object –>
<Module FileName=”dbctrs8.dll”></Module>

<!– .NET CLR Data, NET CLR Networking –>
<Module FileName=”netfxperf.dll”><Version>1.0.3215.11</Version></Module>

<!– .NETFramework –>
<Module FileName=”mscoree.dll”><Version>1.0.3215.11</Version></Module>

<!– FileReplicaConn, FileReplicaSet –>

<Module FileName=”NTFRSPRF.dll”><Version>5.1.3590.0</Version></Module>

<!– WmiApRpl –>
<Module FileName=”wmiaprpl.dll”><Version>5.1.3590.0</Version></Module>

<!– Lotus Notes –>
<Module FileName=”nnotes.dll”> </Module>


Text inside a <! This is a comment > Comment section is ignored.

During the Discovery phase at the start of every collection cycle, the DmPerfss.cfg configuration file is processed to determine what Performance Library DLLs should be excluded from processing during that cycle. An Event ID 214 Informational message is written to the <computername>.ntsmf.log file that documents the Performance Library DLLs that were specifically excluded from processing, as illustrated below:

08/02/04-00:00:11 – Event ID: 214, Category: Discovery, Severity: Info

The following Performance Libraries are excluded from processing as specified in DmPerfss.cfg. Performance data from these libraries will not be available this cycle.
.NET CLR Data (.NET CLR Data), “netfxperf.dll”, version 1.1.4322.573
.NET CLR Networking (.NET CLR Networking), “netfxperf.dll”, version 1.1.4322.573
.NETFramework (.NETFramework), “mscoree.dll”, version 1.1.4322.573
WmiApRpl (WmiApRpl), “C:WINDOWSSystem32wbem

Error Messages. In the case of errors accessing the DmPerfss.cfg configuration file, the configuration file is ignored and collection cycle processing proceeds as if theDmPerfss.cfg configuration file did not exist.

If the the DmPerfss.cfg configuration file is invalid, then the following Warning message is written:

08/02/03-00:50:13 – Event ID: 96, Category: None, Severity: Warning
The configuration file failed to open.
The Inclusion/Exclusion list will not be used this cycle.

If the DmPerfss.cfg configuration file contains syntax errors, then the following Warning message is written:

08/02/03-00:50:13 – Event ID: 96, Category: None, Severity: Warning
Failed to load, “E:DmPerfss 2.4.6binDebugDmPerfss.cfg”.
Parse error, 0xC00CE503, encountered on line, 25, at position, 14.
Reason = Incorrect syntax was used in a comment.

, , ,

Comments are closed.