Performance Monitor Interface to the PI System Version 1.4.0.0 Rev E How to Contact Us OSIsoft, Inc. Worldwide Offices 777 Davis St., Suite 250 OSIsoft Australia San Leandro, CA 94577 USA Perth, Australia Auckland, New Zealand Telephone (01) 510-297-5800 (main phone) OSI Software GmbH Altenstadt, Germany (01) 510-357-8136 (fax) (01) 510-297-5828 (support phone) OSI Software Asia Pte Ltd. Singapore techsupport@osisoft.com OSIsoft Canada ULC Montreal, Canada Houston, TX OSIsoft, Inc. Representative Office Johnson City, TN Shanghai, People’s Republic of China Mayfield Heights, OH Phoenix, AZ Savannah, GA OSIsoft Japan KK Tokyo, Japan Seattle, WA OSIsoft Mexico S. De R.L. De C.V. Yardley, PA Mexico City, Mexico Sales Outlets and Distributors Brazil South America/Caribbean Middle East/North Africa Southeast Asia Republic of South Africa South Korea Russia/Central Asia Taiwan WWW.OSISOFT.COM OSIsoft, Inc. is the owner of the following trademarks and registered trademarks: PI System, PI ProcessBook, Sequencia, Sigmafine, gRecipe, sRecipe, and RLINK. All terms mentioned in this book that are known to be trademarks or service marks have been appropriately capitalized. Any trademark that appears in this book that is not owned by OSIsoft, Inc. is the property of its owner and use herein in no way indicates an endorsement, recommendation, or warranty of such party’s products or any affiliation with such party of any kind. RESTRICTED RIGHTS LEGEND Use, duplication, or disclosure by the Government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013 Unpublished – rights reserved under the copyright laws of the United States. © 2000-2007 OSIsoft, Inc. PI_PIPerfmon.doc Table of Contents Introduction ................................................................................................................... 1 Reference Manuals ..................................................................................................... 1 Supported Features ..................................................................................................... 1 Diagram of Hardware Connection ................................................................................ 4 Principles of Operation................................................................................................. 7 Full and Basic Versions ............................................................................................... 7 Limitations ................................................................................................................... 7 Installation Checklist .................................................................................................... 9 Interface Installation ................................................................................................... 11 User Account ............................................................................................................. 11 Naming Conventions and Requirements ................................................................... 11 Interface Directories .................................................................................................. 12 The PIHOME Directory Tree .................................................................................. 12 Interface Installation Directory ................................................................................ 12 Interface Installation Procedure ................................................................................. 12 Installing the Interface as a Windows Service ............................................................ 12 Installing the Interface Service with PI Interface Configuration Utility ..................... 13 Installing the Interface Service Manually ................................................................ 15 Files Installed for Full Version ................................................................................ 16 Files Installed for Basic Version ............................................................................. 16 PointSource ................................................................................................................. 19 PI Point Configuration ................................................................................................ 21 Performance Counter Path ........................................................................................ 21 Point Attributes .......................................................................................................... 22 Tag ........................................................................................................................ 22 PointSource ........................................................................................................... 22 PointType .............................................................................................................. 23 Location1 ............................................................................................................... 23 Performance Monitor Interface to the PI System iii Table of Contents Location2 ............................................................................................................... 23 Location3 ............................................................................................................... 23 Location4 ............................................................................................................... 23 Location5 ............................................................................................................... 23 InstrumentTag........................................................................................................ 23 ExDesc .................................................................................................................. 23 Scan ...................................................................................................................... 24 Shutdown ............................................................................................................... 24 Convers ................................................................................................................. 25 PIPerfCreator Utility .................................................................................................... 27 PI SMT 3 add-in ........................................................................................................... 31 Monitoring a Remote Node ........................................................................................ 33 Performance Point Configuration .............................................................................. 35 Configuring Performance Points with PI ICU (Windows) ............................................ 35 Configuring Performance Points Manually ................................................................. 36 I/O Rate Tag Configuration ......................................................................................... 39 Monitoring I/O Rates on the Interface Node ............................................................... 39 Configuring I/O Rate Tags with PI ICU (Windows) ..................................................... 39 Configuring I/O Rate Tags Manually .......................................................................... 41 Configuring the PI Point on the PI Server............................................................... 41 Configuration on the Interface Node ...................................................................... 41 Startup Command File ................................................................................................ 43 Configuring the Interface with PI ICU ......................................................................... 43 piperfmon Interface Tab............................................................................................. 45 Command-line Parameters ........................................................................................ 46 Sample PIPerfMon.bat File ........................................................................................ 51 Interface Node Clock .................................................................................................. 53 Security........................................................................................................................ 55 Windows .................................................................................................................... 55 Starting / Stopping the Interface ................................................................................ 57 Starting Interface as a Service ................................................................................... 57 Stopping Interface Running as a Service ................................................................... 57 Other Command-line Parameters .............................................................................. 57 iv Which Performance Counters to Monitor .................................................................. 59 Buffering ...................................................................................................................... 67 Configuring Buffering with PI ICU (Windows) ............................................................. 67 Configuring Buffering Manually .................................................................................. 70 Example piclient.ini File ............................................................................................. 72 Appendix A: Troubleshooting .................................................................................... 73 Common Problems .................................................................................................... 73 Error Codes ............................................................................................................... 75 Informational Messages ......................................................................................... 75 Warning Messages ................................................................................................ 75 Error Messages ..................................................................................................... 75 Revision History.......................................................................................................... 77 Performance Monitor Interface to the PI System v Introduction The PI Performance Monitor interface, PIPerfMon, obtains Microsoft Windows performance counter data and sends it to the PI System. The interface program reads the PI point database to determine which performance counters to read. It then scans for the performance counter and sends exception reports to the PI system. This interface runs on Microsoft Windows NT4, 2000, Windows XP and Windows 2003 operating systems. There are two versions of the interface, the FULL version and the BASIC version. Please refer to the Full and Basic Versions section of this manual for further details. Reference Manuals OSIsoft UniInt Interface User Manual PI Data Archive Manual PI API Installation Instructions Supported Features Features Support Part Number PI-IN-OS-PERF NTI *Platforms 32-bit Platforms: Windows (NT4, 2000, XP, 2003) 64-bit Platforms: Windows 2003 (IA64, X64) APS Connector No *Point Builder Utility Yes *ICU Control Yes PI Point Types PI 3: Float16 / Float32 / Float64 / Int16 / Int32/ Digital Sub-second Timestamps Yes Sub-second Scan Classes Yes Automatically Incorporates PI Point Attribute Changes Yes Exception Reporting Yes Outputs from PI No Inputs to PI: Scan-based / Unsolicited / Event Tags Scan-based Supports Questionable Bit No Supports Multi-character PointSource Yes Performance Monitor Interface to the PI System 1 Introduction Features Support Maximum Point Count Unlimited (full), 512 points (basic) *Uses PI SDK No PINet String Support N/A * Source of Timestamps PI System Time History Recovery No Failover No * UniInt-based Yes Yes Yes * Disconnected Startup * SetDeviceStatus Vendor Software Required on PI API / PINet node No Vendor Software Required on Foreign Device No Vendor Hardware Required No *Additional PI Software Included with Interface Yes Device Point Types Numeric only Serial-Interface No * Further explanation below. Platforms The Interface is designed to run on the above mentioned Microsoft Windows operating systems and greater. See Limitations for further information about requirements for running on Windows NT4. Point Builder Utility The point builder utility can only create 32bit performance counters. ICU Control The ICU Control is not supported on IA64. Uses PI SDK The PI SDK and the PI API are bundled together and must be installed on each PI Interface node. This Interface does not specifically make PI SDK calls. Source of Timestamps The interface uses the PI System timestamp. UniInt-based UniInt stands for Universal Interface. UniInt is not a separate product or file; it is an OSIsoft-developed template used by developers, and is integrated into many interfaces, including this interface. The purpose of UniInt is to keep a consistent feature set and 2 behavior across as many of OSIsoft’s interfaces as possible. It also allows for the very rapid development of new interfaces. In any UniInt-based interface, the interface uses some of the UniInt-supplied configuration parameters and some interface-specific parameters. UniInt is constantly being upgraded with new options and features. The UniInt Interface User Manual is a supplement to this manual. Disconnected Startup The interface now supports startup without a connection to the PI server. Previously a PI server connection was required in order to obtain a list of which PI points belonged to an interface. Now this information is stored in a local cache. This cache is synchronized with the PI server point database. This not only reduces the time required for interface startup but also prevents data loss if starting the interface when the PI server is unavailable. Refer to the New Interface Features PR1 Manual for a more complete discussion on disconnected startup. Note this functionality requires PI API 1.6.1.x or later and is only supported for PI 3.x servers. Device Status Point Support (SetDeviceStatus) The Interface is built with UniInt 4.3.0.31. New functionality has been added to support interface health points. The health point with the point attribute Exdesc = [UI_DEVSTAT], is used to represent the status of the source devices. The following events can be written into the point: a) "Good" - the interface is properly communicating and reading data from the devices. If no data collection points have been defined, this indicates the interface has successfully started. b) "3 | n devices(s) in error | Device1,...,DeviceN" - the interface has determined that the listed device(s) are offline. A device is considered offline when all its scan classes fail to retrieve data. The event "2 | Connected / No Data | " is not used by this interface. Note: In some cases, it may be possible for a device to be incorrectly reported as offline. Please see the section Performance Counter Path for further details. Please refer to the UniInt Interface User Manual for more information on how to configure health points. Additional PI Software The interface provides a performance counter point creation utility, PIPerfCreator, to help facilitate the creation of performance monitor points. This is a stand-alone application that requires that the PI SDK be installed on the same machine as the utility. The details of the utility will be discussed later in this document. Performance Monitor Interface to the PI System 3 Introduction Diagram of Hardware Connection There are 2 possible hardware configurations. The first (which is recommended by OSIsoft, Inc.) is to have the interface on a separate node from the PI Server, to take advantage of buffering should the connection to the PI server be lost. 4 The second possible configuration is to install the interface on the same node as the PI Server. This is less desirable, because the benefit of buffering is reduced. However, users running the basic version of the interface must run in this configuration, because the basic version of the interface must reside on the PI Server. Performance Monitor Interface to the PI System 5 Principles of Operation PIPerfMon collects data from the Microsoft Windows Performance Counters. Each counter may be collected as frequently as needed; the frequency is defined on a point-bypoint basis. Exception reporting is used as described in the Data Archive or PI Server manuals. The data collected is all numeric and as such only floating point or integer PI points may be configured for use with this interface. Full and Basic Versions There are two versions of this interface, a FULL version and a BASIC version. Basic Version The basic version executable of the interface is appended by “_basic”. The BASIC version of the interface is bundled with the PI Server 3.3 and greater. The basic version has these characteristics: Must run on the machine with the PI Server. Will collect data for a maximum of 512 points. Allows one instance of the interface. Will collect data for local performance counters only Default point source of # Full Version The full version has more capability than the basic version. The full version has these characteristics: May run on either a PI Interface node or on the PI Server. Will collect data for an unlimited number of points. Allows multiple instances of the interface. Will collect data for remote as well as local performance counters. Default point source of # Limitations There are known limitations for this version of the interface. It is not advisable to sample at a rate of less than 0.1 second. This is near the resolution limit of the counters. The interface and the PIPerfCreator cannot run on a Windows NT Server with NNTP counters activated or with a Windows NT Server with Option Pack 4 and Windows NT service pack 4 or lower. In order for the interface and PIPerfCreator to run on a Windows NT Server with NNTP, the NNTP counters (nntpctrs.dll) must be Performance Monitor Interface to the PI System 7 Principles of Operation deactivated. A machine with Windows NT Server and NT Option Pack 4 must be at service pack 5 or greater. Note: It is required that at least Service Pack 6a be applied to all NT machines. 8 Installation Checklist For those users who are familiar with running PI data collection interface programs, this checklist helps get the PIPerfMon interface running. If not familiar with PI interfaces, return to this section after reading the rest of the manual in detail. 1. Install the PI Interface Configuration Utility (which installs PI SDK and PI API) 2. Verify that PI SDK has been installed. 3. Install the interface. 4. Choose a point source. 5. Configure PI points. Location1 is the interface instance. Location2 is not used by this interface. Location3 is not used by this interface. Location4 is the scan class. Location5 is not used by this interface. ExDesc is the Performance Counter Path. InstrumentTag is not used by this interface. 6. Configure the interface using the PI ICU utility or edit startup command file manually. It is recommended to use PI ICU whenever possible. 7. Configure performance points. 8. Configure I/O Rate tag. 9. Set interface node clock. 10. Set up security. 11. Start the interface without buffering. 12. Verify data. 13. Stop interface, start buffering, start interface. Performance Monitor Interface to the PI System 9 Interface Installation OSIsoft recommends that interfaces be installed on PI Interface Nodes instead of directly on the PI Server node. A PI Interface Node is any node other than the PI Server node where the PI Application Programming Interface (PI API) has been installed (see the PI API manual). With this approach, the PI Server need not compete with interfaces for the machine’s resources. The primary function of the PI Server is to archive data and to service clients that request data. After the interface has been installed and tested, Bufserv should be enabled on the PI Interface Node (once again, see the PI API manual). Bufserv is distributed with the PI SDK. It is a utility program that provides the capability to store and forward events to a PI Server, allowing continuous data collection when communication to the PI Server is lost. Communication will be lost when there are network problems or when the PI Server is shut down for maintenance, upgrades, backups, or unexpected failures. In most cases, interfaces on PI Interface Nodes should be installed as automatic services . Services keep running after the user logs off. Automatic services automatically restart when the computer is restarted, which is useful in the event of a power failure. The guidelines are different if an interface is installed on the PI Server node. In this case, the typical procedure is to install the PI Server as an automatic service and interfaces as manual services that are launched by site-specific command files when the PI Server is started. Interfaces that are started as manual services are also stopped in conjunction with the PI Server by site-specific command files. This typical scenario assumes that Bufserv is not enabled on the PI Server node. Bufserv can be enabled on the PI Server node so that interfaces on the PI Server node do not need to be started and stopped in conjunction with PI, but it is not standard practice to enable buffering on the PI Server node. See the UniInt Interface User Manual for special procedural information. User Account The service will run using the Local System account unless otherwise specified. For the full version of this interface, if this account does not have privileges to obtain performance counters on a remote computer, the service will have be changed to start using an account with sufficient privileges. To open the Services control panel for Windows 2000, click Start, point to Settings, and then click Control Panel. Doubleclick Administrative Tools, and then double-click Services. For Window NT, click Start, point to Settings, and then click Control Panel. Double-click on Services. Then, double-click on PI Performance Monitor Interface (full version) and select the Log On tab. Change this service’s Log on As:, from the System Account to an account that is desired. Naming Conventions and Requirements In the installation procedure below, it is assumed that the name of the interface executable is PIPerfMon.exe and that the startup command file is called PIPerfMon.bat. Performance Monitor Interface to the PI System 11 Interface Installation Interface Directories The PIHOME Directory Tree The PIHOME directory tree is defined by the PIHOME entry in the pipc.ini configuration file. This pipc.ini file is an ASCII text file, which is located in the %windir% directory. A typical pipc.ini file contains the following lines: [PIPC] PIHOME=c:\Program Files\pipc The above lines define the \pipc directory as the root of the PIHOME directory tree on the C: drive. OSIsoft recommends using \Program Files\pipc as the root directory name. The PIHOME directory does not need to be on the C: drive. Interface Installation Directory Place all copies of the interface into a single directory. The suggested directory is: PIHOME\Interfaces\PIPerfMon\ Replace PIHOME with the corresponding entry in the pipc.ini file. Interface Installation Procedure The PIPerfMon interface setup program uses the services of the Microsoft Windows Installer. Windows Installer is a standard part of Windows 2000. When running on Windows NT 4.0 systems, the PIPerfMon setup program will install the Windows Installer itself if necessary. To install, run the PIPerfMon_x.x.x.x.exe installation kit. Installing the Interface as a Windows Service The PIPerfMon Interface service can be created, preferably, with the PI Interface Configuration Utility, or can be created manually. 12 Installing the Interface Service with PI Interface Configuration Utility The PI Interface Configuration Utility provides a user interface for creating, editing, and deleting the interface service: Service Configuration Service name The Service to Add box shows the name of the current interface service. This service name is obtained from the interface executable. ID This is the service id used to distinguish multiple instances of the same interface using the same executable. Display name The Display Name text box shows the current Display Name of the interface service. If there is currently no service for the selected interface, the default Display Name is the service name with a “PI-” prefix. Users may specify a different Display Name. OSIsoft suggests that the prefix “PI-” be appended to the beginning of the interface to indicate that the service is part of the OSI suite of products. Log on as The Log on as text box shows the current “Log on as” Windows User Account of the interface service. If the service is configured to use the Local System account, the Log on as text box will show “LocalSystem.” Users may specify a different Windows User account for the service to use. Password If a Windows User account is entered in the Log on as text box, then a password must be provided in the Password text box, unless the account requires no password. Performance Monitor Interface to the PI System 13 Interface Installation Confirm password If a password is entered in the Password text box, then it must be confirmed in the Confirm Password text box. Startup Type The Startup Type indicates whether the interface service will start automatically or needs to be started manually on reboot. If the Auto option is selected, the service will be installed to start automatically when the machine reboots. If the Manual option is selected, the interface service will not start on reboot, but will require someone to manually start the service. If the Disabled option is selected, the service will not start at all. Generally, interface services are set to start automatically. Dependencies The Installed services list is a list of the services currently installed on this machine. Services upon which this Interface is dependent should be moved into the Dependencies list using the button. For example, if API Buffering is running, then “bufserv” should be selected from the list at the right and added to the list on the left. Often interface services also depend on a vendor program, such as the Fisher-Rosemount chipservice. To remove a service from the list of dependencies, use the the service name will be removed from the “Dependencies” list. button, and When the PI Interface is started (as a service), the services listed in the dependency list will be verified as running (or an attempt will be made to start them). If the dependent service(s) cannot be started for any reason, then the PI interface service will not run. Note: Please see the PI Log and Operating System Event Logger for messages that may indicate the cause for any server not running as expected. - Add Button To add a dependency from the list of Installed services, select the dependency name, and click the Add button. - Remove Button To remove a selected dependency, highlight the service name in the Dependencies list, and click the Remove button. The full name of the service selected in the Installed services list is displayed below the Installed services list box. Create The Create button adds the displayed service with the specified Dependencies and with the specified Startup Type. 14 Remove The Remove button removes the displayed service. If the service is not currently installed, or if the service is currently running, this button will be grayed out. Start or Stop Service To Start or Stop an interface service, use the Start button and a Stop button on the ICU toolbar. If this interface service is not currently installed, these buttons will remain grayed out until the service is added. If this interface service is running, the Stop button is available. If this service is not running, the Start button is available. The status of the Interface service is indicated in the lower portion of the PI ICU dialog. Status of the ICU Status of the Interface Service Service installed or uninstalled Installing the Interface Service Manually Change to the directory where the PIPerfMon.exe executable is located. Then, consult the following table to determine the appropriate service installation command. Windows Service Installation Commands on a PI Interface node or a PI Server node with Bufserv implemented Manual service PIPerfMon.exe –install –depend “tcpip bufserv pinetmgr” Automatic service PIPerfMon.exe –install –auto –depend “tcpip bufserv pinetmgr” Automatic service with service id PIPerfMon.exe –serviceid X –install –auto –depend “tcpip bufserv pinetmgr” Windows Service Installation Commands on a PI Interface node or a PI Server node without Bufserv implemented Manual service PIPerfMon.exe –install –depend “tcpip pinetmgr” Automatic service PIPerfMon.exe –install –auto –depend “tcpip pinetmgr” Automatic service with service id PIPerfMon.exe –serviceid X –install –auto –depend “tcpip pinetmgr” *When specifying service id, the user must include an id number. It is suggested that this number correspond to the interface id (/id) parameter found in the interface .bat file. Check the Microsoft Windows services control panel to verify that the service was added successfully. The services control panel can be used at any time to change the interface from an automatic service to a manual service or vice versa. Performance Monitor Interface to the PI System 15 Interface Installation Files Installed for Full Version The full version performance monitor interface installation will install the following files: File Description PIPerfMon.exe PIPerfMon Interface executable file PIPerfMon.bat_new Sample startup command file PDH.dll Performance Data Helper (dynamic linked library) (NT4.0 only) PIPerfCreator.exe Performance counter path utility PIPerfMonDLL.dll PIPerfMon utility dll PIPerfMon.doc Interface documentation PIPerfMon_ReleaseNotes.txt Interface release notes Example Interface Directory Structure The following files should be installed: Program Files\ PIPC\ Interfaces\ PIPerfMon\ PIPerfMon.exe PIPerfMon.bat_new PIPerfCreator.exe PIPerfMonDLL.dll PI_PIPerfMon.doc PI_PIPerfMon_ReleaseNotes.txt PDH.dll (NT4.0 only) Files Installed for Basic Version The basic version of the performance monitor interface installation will install the following files: File 16 Description PIPerfMon_basic.exe PIPerfMon Interface executable file PIPerfMon_basic.bat_new Sample startup command file PDH.dll Performance Data Helper (dynamic linked library) (NT4.0 only) PIPerfCreator.exe Performance counter path utility PIPerfMonDLL.dll PIPerfMon utility dll PIPerfMon.doc Interface documentation PIPerfMon_ReleaseNotes.txt Interface release notes Example Interface Directory Structure The following files should be installed: Program Files\ PIPC\ Interfaces\ PIPerfMon\ PIPerfMon_basic.exe PIPerfMon_basic.bat_new PIPerfCreator.exe PIPerfMonDLL.DLL PIPerfMon.doc PIPerfMon_ReleaseNotes.txt PDH.dll (NT4.0 only) Performance Monitor Interface to the PI System 17 PointSource The PointSource is a unique, single or multi-character string that is used to identify the PI point as a point that belongs to a particular interface. For example, the string PerfMon may be used to identify points that belong to the PIPerfMon Interface. To implement this, the PointSource attribute would be set to PerfMon for every PI Point that is configured for the PIPerfMon Interface. Then, if /ps=PerfMon is used on the startup command-line of the PIPerfMon Interface, the Interface will search the PI Point Database upon startup for every PI point that is configured with a PointSource of PerfMon. Before an interface loads a point, the interface usually performs further checks by examining additional PI point attributes to determine whether a particular point is valid for the interface. For additional information, see the /ps parameter. Case-sensitivity for PointSource Attributes If the interface is running on a PINet node, use a capital letter (or a case-insensitive character such as a number, a question mark, etc.) for the PointSource attribute when defining points. For all other scenarios, the case of the PointSource is insignificant. In all cases, the PointSource character that is supplied with the /ps command-line parameter is not case sensitive. That is, /ps=P and /ps=p are equivalent. It is only necessary to be careful with the case of the PointSource during point definition and only if the Interface will be running on a PINet node communicating to a PI Server. Reserved Point Sources Several subsystems and applications that ship with PI are associated with default PointSource characters. The Totalizer Subsystem uses the PointSource character T, the Alarm Subsystem uses G and @, Random uses R, RampSoak uses 9, and the Performance Equations Subsystem uses C. Do not use these PointSource characters or change the default point source characters for these applications. Also, if a PointSource character is not explicitly defined when creating a PI point; the point is assigned a default PointSource character of Lab (PI 3). Therefore, it would be confusing to use Lab as the PointSource character for an interface. Note: Do not use a point source character that is already associated with another interface program. However it is acceptable to use the same point source for multiple instances of an interface. Performance Monitor Interface to the PI System 19 PI Point Configuration A PI point or tag is associated with a single performance counter. A counter is unit of performance associated with the performance object. It provides data related to a single item of the system. A machine’s performance objects include physical components, such as processors, disks, and memory. There are also system objects, such as processes and threads. Each object is related to a functional element within the computer and has a set of standard counters assigned to it. For example the % Processor Time is a performance counter that measures the amount of processor time a performance object, such as the Processor, utilizes. Performance Counter Path This interface needs the performance counter path in order to obtain data for the specific performance counter. A performance counter path is the identifier of a counter for inclusion in gathering performance data. The counter names must be formatted a specific way in order to be properly recognized. The format is: \\Machine\PerfObject(ParentInstance/ObjectInstance#InstanceIndex)\Counter \\Machine The \\Machine portion is optional; if included, it specifies the name of the machine. If the machine name is not included, the local machine that the interface is running on is used. \PerfObject The \PerfObject component is required; it specifies the performance object that contains the counter. If the object supports variable instances, then an instance string must also be specified. (ParentInstance/ObjectInstance#InstanceIndex) The format of the (ParentInstance/ObjectInstance#InstanceIndex) portion depends on the type of object specified. If the object has simple instances, then the format is just the instance name in parentheses. For example, an instance for the Process object would be the process name such as (Explorer) or (MyApp). When collecting data for these types of performance counters, the interface is unable to determine the validity of the instance specified in the parentheses. Therefore, although the performance counter may appear to be correctly formatted, data collection from it may fail if the instance does not exist on the machine at the time the interface attempts to collect data from it. For example, the performance counter, \\MyMachine\LogicalDisk(D:)\% Free Space, will be accepted by the interface because it is correctly formatted. However, if the logical disk, D:, does not exist on MyMachine during data collection, the data collection will fail. If these are the only types of performance counters monitored on a machine, the machine Performance Monitor Interface to the PI System 21 PI Point Configuration may be incorrectly identified as being offline if the instances specified in all the performance counters do not exist on the machine. \Counter The \Counter portion is required and it specifies the performance counter. For example the Process object has counters such as % Processor Time and Interrupts/Sec. PIPerfCreator Obtaining and knowing the performance counter path for every performance counter is a daunting task. Therefore, this interface includes the PIPerfCreator utility (referenced later). This program can be used to obtain the performance counter path and create the performance counter points. Point Attributes Use the point attributes below to define the PI Point configuration for the Interface, including specifically what data to transfer. Tag A tag is a label or name for a point. Any tag name can be used in accordance to the normal PI point naming conventions. Length The length of the Tag field is limited by the version of the PI API, the version of the PI Server, and sometimes by a specific Interface. The table below explains this in more detail. When the maximum possible lengths differ for the software installed on site, the shortest length applies. PI API PI Server Maximum Length 1.6 or higher 3.4.370.x or higher 1023 1.6 or higher Below 3.4.370.x 255 Below 1.6 3.4.370.x or higher 255 Below 1.6 Below 3.4.370.x 255 PointSource The PointSource is a single or multi-character string which is used to identify the PI point as a point that belongs to a particular interface. For additional information, see the /ps command-line parameter and the “Point Source” section. 22 PointType Float16, float32, int16, int32, and digital point types are supported on PI 3 Servers. For more information on the individual point types, see PI Data Archive for NT and UNIX. Location1 This parameter is used to specify the interface number, which corresponds to the /id=# parameter in the PIPerfMon.bat (PIPerfMon_basic.bat for the basic version) file. Valid interface numbers are integer values 1 to 99, inclusive. Location2 Location2 is not used by this interface. Location3 Location3 is not used by this interface. Location4 Location4 defines the scan class for the PI point. The scan class determines the frequency at which input points are scanned for new values. For more information, see the description of the /f parameter in the section called “The Startup Command File”. Location5 Location5 is not used by this interface. InstrumentTag InstrumentTag is not used by this interface. ExDesc This parameter is a string that is used to specify the performance counter path. (See above.) The performance counter path can be obtained using the PIPerfCreator.exe utility for a PI 3 Server. Length The length of the Extended Descriptor field is limited by the version of the PI API, the version of the PI Server, and sometimes by a specific Interface. The table below explains this in more detail. When the maximum possible lengths differ for the software installed on site, the shortest length applies. PI API PI Server Maximum Length 1.6 or higher 3.4.370.x or higher 1023 1.6 or higher Below 3.4.370.x 80 Performance Monitor Interface to the PI System 23 PI Point Configuration PI API PI Server Maximum Length Below 1.6 3.4.370.x or higher 80 Below 1.6 Below 3.4.370.x 80 Performance Points For UniInt-based interfaces, the extended descriptor is checked for the string “PERFORMANCE_POINT”. If this character string is found, UniInt treats this point as a performance point. See the section called “Performance Point Configuration”. Scan By default, the Scan attribute has a value of 1, which means that scanning is turned on for the point. Setting the scan attribute to 0 turns scanning off. If the scan attribute is 0 when the interface starts, SCAN OFF will be written to the PI point. If the scan attribute is changed from 1 to 0 while the interface is running, SCAN OFF will also be written to the PI point after the point edit is detected by the interface. There is one other situation, which is independent of the Scan attribute, where UniInt will write SCAN OFF to a PI point. If a point that is currently loaded by the interface is edited so that the point is no longer valid for the interface, the point will be removed from the interface, and SCAN OFF will be written to the point. For example, if the PointSource of a PI point that is currently loaded by the interface is changed, the point will be removed from the interface and SCAN OFF will be written to the point. Shutdown The Shutdown attribute is 1 (true) by default. The default behavior of the PI Shutdown subsystem is to write the SHUTDOWN digital state to all PI points when PI is started. The timestamp that is used for the SHUTDOWN events is retrieved from a file that is updated by the Snapshot Subsystem. The timestamp is usually updated every 15 minutes, which means that the timestamp for the SHUTDOWN events will be accurate to within 15 minutes in the event of a power failure. For additional information on shutdown events, refer to PI Server manuals. Note: The SHUTDOWN events that are written by the PI Shutdown subsystem are independent of the SHUTDOWN events that are written by the interface when the /stopstat=Shutdown command-line parameter is specified. SHUTDOWN events can be disabled from being written to PI when PI is restarted by setting the Shutdown attribute to 0 for each point. Alternatively, the default behavior of the PI Shutdown Subsystem can be changed to write SHUTDOWN events only for PI points that have their Shutdown attribute set to 0. To change the default behavior, edit the \PI\dat\Shutdown.dat file, as discussed in PI Server manuals. Bufserv It is undesirable to write shutdown events when Bufserv is being used. Bufserv is a utility program that provides the capability to store and forward events to a PI Server, allowing continuous data collection when the Server is down for maintenance, upgrades, backups, 24 and unexpected failures. That is, when PI is shut down, Bufserv will continue to collect data for the interface, making it undesirable to write SHUTDOWN events to the PI points for this interface. Convers This parameter is used to scale the input into the PI Server. The default is set to 1. The input is multiplied by this number and then sent to PI. Performance Monitor Interface to the PI System 25 PIPerfCreator Utility The utility PIPerfCreator.exe is also included with the full and basic versions of the interface to obtain the performance counter strings and create PI points on PI 3 Servers. The utility also requires that the PI SDK and the PIPerfMondll.dll be installed on the machine that runs the program. This program contains two tabs, Main and Compression. Figure 1shows the Main tab, which is the default when the program is launched. Figure 1 PIPerfCreator Main tab Within the Main tab, the essential tag attributes of a performance monitor points are displayed. Most of these attributes have been explained in the Input section of this manual. One of the most important features on this tab is the three dot button ( ) that is at the right of the ExDesc field. This three dot button is used to obtain the performance counter path from a list of performance counters. When this button is pressed, a dialog box appears (Figure 2). Performance Monitor Interface to the PI System 27 PIPerfCreator Utility Figure 2 Get Counter Path Dialog Box First select the performance object. Once the object is selected a list of performance counters will appear in the display box below. Simply select the performance counter that is desired and then press the OK button. (The All counters or All instances button should NOT be used.) This will put the performance counter path in the ExDesc field (Figure 3). 28 Figure 3 PIPerfCreator Main tab filled If the “Use counter path as name” check box is checked, the name of the tag will be the performance counter path with the illegal tag characters removed (refer to the PI Server manual for a list of the illegal tag characters). If the “Include Explain Text” check box is checked, the explanatory text associated with the performance counter is put in the Descriptor field. The Tag Style option refers to the style in which the tag name is to be shown. Choose to replace the illegal tag characters with either a space or an underscore. Performance Monitor Interface to the PI System 29 PIPerfCreator Utility The second tab is the Compression tab (Figure 4). The compression tab contains the compression and exception information for the point. Figure 4 Compression Tab The standard defaults are chosen initially. The only parameters that may be changed automatically are the Span and Typical Value. When the three dot button is used to select the performance counter, the span will be changed to reflect the performance counter default span and the typical value will be half of the span. A default span is feature that is known for each performance counter. The PIPerfCreator utility can be run independently of the performance monitor interface. The interface does not need to be started for the utility to work. However, the interface will not pick up the created points and send data to the PI Server until the interface is started. 30 PI SMT 3 add-in There is an add-in available with PI SMT 3.x that allows the user to configure multiple PI Performance Monitor Interface tags at once. This add-in is installed as part of the PI SMT 3.x installation kit. 1. In PI SMT 3, under Collectives and Servers, establish a connection to the PI Server. In this example, we are connecting to STARSHOLLOW 2. Under System Management Plug-ins, browse to IT Points > Performance Counters 3. On the Tag Settings page, select the interface to build points against, and modify the Point Details section as desired. If the Perfmon Interface is configured with the ICU, it will appear in the interface drop down list for the servers selected. Performance Monitor Interface to the PI System 31 PI SMT 3 add-in If not, enter the Interface information in manually. Make sure to include Point Source Interface ID Location4 code (scan class) 4. On the Build Tags page, browse to the counter(s) to monitor with PI tags. 32 Once counters have been selected, they will appear in the tag list on the right. 5. Once there are tags on the right side of the screen, they can be built on the selected PI server, or sent to a CSV file. First click the desired option – Create tags on PI server, or Write tags to CSV file. Then click on the Create Tags button. Monitoring a Remote Node It is also possible to retrieve counters via this PI SMT 3 plug-in from a remote machine and build PI Performance Monitor points against them. 1. On the Build Tags page, click the Add a Computer’s Counters button. 2. Enter in the machine name or IP address to monitor Note: appropriate credentials are required to access this machine’s performance counters. 3. If the appropriate credentials have been configured, the new machine is added to the tree-view list. The available counters are displayed and points can be built Performance Monitor Interface to the PI System 33 PI SMT 3 add-in accordingly. 34 Performance Point Configuration Performance points can be configured to monitor the amount of time in seconds that an interface takes to complete a scan for a particular scan class. The closer the scan completion time is to 0 seconds, the better the performance. The scan completion time is recorded to millisecond resolution Note: These are NOT the Performance Counters, but a mechanism for monitoring the operation of the interface. Configuring Performance Points with PI ICU (Windows) The PI Interface Configuration Utility (PI ICU) provides a user interface for creating and managing Performance Points. Create To create a Performance Point, right-click the line belonging to the tag to be created, and select Create. Delete To delete a Performance Point, right-click the line belonging to the tag to be deleted, and select Delete. Correct If the “Status” of a point is marked “Incorrect”, the point configuration can be automatically corrected by ICU by right-clicking on the line belonging to the tag to be corrected, and selecting Correct. The Performance Points are created with the following PI attribute values. If ICU detects that a Performance Point is not defined with the following, it will be marked Incorrect: Performance Monitor Interface to the PI System 35 Performance Point Configuration Attribute Details Tag Tag name that appears in the list box Point Source Point Source for tags for this interface, as specified on the first tab Compressing Off Excmax 0 Descriptor Interface name + " Scan Class # Performance Point" Rename Right-click the line belonging to the tag and select “Rename” in order to rename the Performance Point. Status The Status column in the Performance Points table indicates whether the Performance Point exists for the scan class in column 2. Created – Indicates that the Performance Point does exist Not Created – Indicates that the Performance Point does not exist Deleted – Indicates that a Performance Point existed, but was just deleted by the user Scan Class The Scan Class column indicates which scan class the Performance Point in the Tagname column belongs to. There will be one scan class in the Scan Class column for each scan class listed in the Scan Classes combo box on the UniInt Parameters tab. Tagname The Tagname column holds the Performance Point tag name. Snapshot The Snapshot column holds the snapshot value of each Performance Point that exists in PI. The Snapshot column is updated when the Performance Points/Counters tab is clicked, and when the interface is first loaded. Configuring Performance Points Manually Performance point configuration is the same on all operating system platforms. Performance points are configured as follows. 1. Set the extended descriptor to: PERFORMANCE_POINT or to: PERFORMANCE_POINT=interface_id where interface_id corresponds to the identifier that is specified with the /id parameter on the startup command line of the interface. The character string PERFORMANCE_POINT is case insenstive. The interface_id does not need to be 36 specified if there is only one copy of an interface that is associated with a particular point source. 2. Set Location4 to correspond to the scan class whose performance is to be monitored. For example, to monitor scan class 2, set Location4 to 2. See the /f parameter for a description of scan classes. 3. Set the PointSource attribute to correspond to the /ps parameter on the startup command line of the interface. 4. Set the PointType attribute to float32. Performance Monitor Interface to the PI System 37 I/O Rate Tag Configuration An I/O Rate point can be configured to receive 10-minute averages of the total number of exceptions per minute that are sent to PI by the interface. An exception is a value that has passed the exception specifications for a given PI point. Since 10-minute averages are taken, the first average is not written to PI until 10 minutes after the interface has started. One I/O Rate tag can be configured for each copy of the interface that is in use. Monitoring I/O Rates on the Interface Node For Windows nodes, the 10-minute rate averages (in events/minute) can be monitored with a client application such as ProcessBook. Configuring I/O Rate Tags with PI ICU (Windows) The PI Interface Configuration Utility (PI ICU) provides a user interface for creating and managing IORates Tags. PI ICU currently allows for one I/O Rate tag to be configured for each copy of the interface that is in use. Some interfaces allow for multiple I/O Rates tags. Performance Monitor Interface to the PI System 39 I/O Rate Tag Configuration Enable IORates for this Interface The Enable IORates for this interface check box enables or disables IORates for the current interface. To disable IORates for the selected interface, uncheck this box. To enable IORates for the selected interface, check this box. Event Counter The Event Counter correlates a tag specified in the iorates.dat file with this copy of the interface. The command line equivalent is /ec=x, where x is the same number that is assigned to a tag name in the iorates.dat file. Tagname The tag name listed under the Tagname column is the name of the IORates tag. Tag Status The Tag Status column indicates whether the IORates tag exists in PI. The possible states are: Created – This status indicates that the tag exist in PI Not Created – This status indicates that the tag does not yet exist in PI Deleted – This status indicates that the tag has just been deleted Unknown – This status indicates that the ICU is not able to access the PI Server In File The In File column indicates whether the IORates tag listed in the tag name and the event counter is in the IORates.dat file. The possible states are: Yes – This status indicates that the tag name and event counter are in the IORates.dat file No – This status indicates that the tag name and event counter are not in the IORates.dat file Snapshot The Snapshot column holds the snapshot value of the I/O Rate tag, if the I/O Rate tag exists in PI. The Snapshot column is updated when the IORates/Status Tags tab is clicked, and when the Interface is first loaded. Button Menu Options Create Create the suggested IORates tag with the tag name indicated in the Tagname column. Delete Delete the IORates tag listed in the Tagname column. Reset Resets the IO Rate configuration as PI ICU suggests. 40 Rename Allows the user to specify a new name for the IORates tag listed in the Tagname column. Add to File Adds the tag to the IORates.dat file with the event counter listed in the Event Counter Column. Search Allows the user to search the PI Server for a previously defined IORates tag. Refresh Snapshots Used to update the snapshot values. Configuring I/O Rate Tags Manually There are two configuration steps. 1. Configuring the PI Point on the PI Server 2. Configuration on the Interface Node Configuring the PI Point on the PI Server Create an I/O Rate Tag with the following point attribute values. Attribute Value PointSource L PointType float32 Compressing 0 ExcDev 0 Configuration on the Interface Node For the following examples, assume that the name of the PI tag is PIPerfMon001, and that the name of the I/O Rate on the home node is PIPerfMon001. 1. Edit/Create a file called iorates.dat in the PIHOME\dat directory. The PIHOME directory is defined either by the PIPCSHARE entry or the PIHOME entry in the pipc.ini file, which is located in the %windir% directory. If both are specified, the PIPCSHARE entry takes precedence. Since the PIHOME directory is typically C:\PIPC, the full name of the iorates.dat file will typically be C:\PIPC\dat\iorates.dat. Add a line in the iorates.dat file of the form: PIPerfMon001, x Performance Monitor Interface to the PI System 41 I/O Rate Tag Configuration where PIPerfMon001 is the name of the I/O Rate Tag and x corresponds to the first instance of the /ec=x parameter in the startup command file. x can be any number between 2 and 34 or between 51 and 200, inclusive. To specify additional rate counters for additional copies of the interface, create additional I/O Rate tags and additional entries in the iorates.dat file. The event counter, /ec=x, should be unique for each copy of the interface. 2. Set the /ec=x parameter on the startup command file of the interface to match the event counter in the iorates.dat file. The interface must be stopped and restarted in order for the I/O Rate tag to take effect. I/O Rates will not be written to the tag until 10 minutes after the interface is started. 42 Startup Command File Command-line parameters can begin with a / or with a -. For example, the /ps=M and – ps=M command-line parameters are equivalent. For Windows, command file names have a .bat extension. The Windows continuation character (^) allows one to use multiple lines for the startup command. The maximum length of each line is 1024 characters (1 kilobyte). The number of parameters is unlimited, and the maximum length of each parameter is 1024 characters. Configuring the Interface with PI ICU Note: PI ICU requires PI 3.3 or greater. The PI Interface Configuration Utility provides a graphical user interface for configuring PI interfaces. If the interface is configured by the PI ICU, the batch file of the interface (PIPerfMon.bat) will be maintained by the PI ICU and all configuration changes will be kept in that file. The procedure below describes the necessary steps for using PI ICU to configure the PIPerfMon Interface. From the PI ICU menu, select Interface, New, and then Browse to the PIPerfMon.exe executable file. Then, enter values for Point Source and Interface ID#. A window such as the following results: “Interface name as displayed in the ICU (optional)” will have PI- pre-pended to this name and it will be the display name in the services menu. Click on Add. The dialog box shown below is displayed. Performance Monitor Interface to the PI System 43 Startup Command File Note that in this example the Host PI System is localhost, which means that the interface will be configured to communicate with the local PI Server. However, to communicate with a remote PI Server, select ‘Connections…’ item from PI ICU menu and make it the default server. If the remote node is not in the list of servers, it can be added. Once the interface is added, it will appear in the Interface list and the Type should be piperfmon. If not, use the drop-down box to change the Interface Type to be piperfmon. Click on Apply to enable the PI ICU to manage this copy of the PIPerfMon Interface. The next step is to make selections in the interface-specific tab (i.e. “piperfmon”) that allows values to be specified for the startup parameters that are particular to the PIPerfMon Interface. 44 Since the PIPerfMon Interface is a UniInt-based interface, in some cases the user will need to make appropriate selections in the UniInt tab. This tab allows the user to access UniInt features through the PI ICU and to make changes to the behavior of the interface. To set up the interface as a Windows Service, use the Service tab. This tab allows configuration of the interface to run as a service as well as to start and stop the interface. The interface can also be run interactively from the PI ICU. To do that go to menu, select the Interface item and then Start Interactive. For more detailed information on how to use the above-mentioned and other PI ICU tabs and selections, please refer to the PI Interface Configuration Utility User Manual. In the next section we will describe the selections that are available from the piperfmon tab. After making the selections on the PI ICU GUI, press the Apply button in order for PI ICU to make these changes to the interface’s startup file. piperfmon Interface Tab Since the startup file of the PIPerfMon Interface is maintained automatically by the PI ICU, the piperfmon tab should be used to configure the startup parameters and not make changes in the file manually. The following is the description of interface configuration parameters used in the PI ICU Control and corresponding manual parameters. Performance Monitor Interface to the PI System 45 Startup Command File PIPerfMon Enable interface debugging Checking this box enables the interface to send different debug messages to the PIPC.log. Debug Level Sets the interface debug level from 0 to 9. (/DEB=#, where #= 0-9) Thread Count Sets the thread count ranging from 1 to 99 with 10 being the default. (/TC=#, default=10, where #=1-99) Additional Parameters This box is used to add any command-line parameters which are not currently supported by the ICU Control. Each command-line parameter should be separated by a space. If the argument to a command-line parameter has an embedded space then the whole argument should be surrounded by double quotes. Command-line Parameters There are several option parameters in PIPerfMon.bat (PIPerfMon_basic.bat for the basic version) that control the operation of the interface program. Some of the parameters are optional. The parameters are described in the table below: 46 Parameter /deb=# Optional Description The /deb parameter is used to print interface-level debug messages. The debug levels range from 0 to 9. For example, /deb=5 /ec=# Optional The first instance of the /ec parameter on the command line is used to specify a counter number, #, for an I/O Rate point. If # is not specified, then the default event counter is 1. Also, if the /ec parameter is not specified at all, there is still a default event counter of 1 associated with the interface. If there is an I/O Rate point that is associated with an event counter of 1, each copy of the interface that is running without /ec=# explicitly defined will write to the same I/O Rate point. This means that one should either explicitly define an event counter other than 1 for each copy of the interface or one should not associate any I/O Rate points with event counter 1. Configuration of I/O Rate points is discussed in the section called “I/O Rate Tag Configuration,” For interfaces that run on Windows nodes, subsequent instances of the /ec parameter may be used by specific interfaces to keep track of various input or output operations. Subsequent instances of the /ec parameter can be of the form /ec*, where * is any ASCII character sequence. For example, /ecinput=10, /ecoutput=11, and /ec=12 are legitimate choices for the second, third, and fourth event counter strings. Performance Monitor Interface to the PI System 47 Startup Command File Parameter /f=SS or /f=SS,SS or /f=HH:MM:SS or /f=HH:MM:SS,hh: mm:ss Required Description The /f parameter defines the time period between scans in terms of hours (HH), minutes (MM), and seconds (SS). The scans can be scheduled to occur at discrete moments in time with an optional time offset specified in terms of hours (hh), minutes (mm), and seconds (ss). If HH and MM are omitted, then the time period that is specified is assumed to be in seconds. Each instance of the /f parameter on the command line defines a scan class for the interface. There is no limit to the number of scan classes that can be defined. The first occurrence of the /f parameter on the command line defines the first scan class of the interface, the second occurrence defines the second scan class, and so on. PI Points are associated with a particular scan class via the Location4 PI Point attribute. For example, all PI Points that have Location4 set to 1 will receive input values at the frequency defined by the first scan class. Similarly, all points that have Location4 set to 2 will receive input values at the frequency specified by the second scan class, and so on. Two scan classes are defined in the following example: /f=00:01:00,00:00:05 /f=00:00:07 or, equivalently: /f=60,5 /f=7 The first scan class has a scanning frequency of 1 minute with an offset of 5 seconds, and the second scan class has a scanning frequency of 7 seconds. When an offset is specified, the scans occur at discrete moments in time according to the formula: scan times = (reference time) + n(frequency) + offset where n is an integer and the reference time is midnight on the day that the interface was started. In the above example, frequency is 60 seconds and offset is 5 seconds for the first scan class. This means that if the interface was started at 05:06:06, the first scan would be at 05:06:10, the second scan would be at 05:07:10, and so on. Since no offset is specified for the second scan class, the absolute scan times are undefined. The definition of a scan class does not guarantee that the associated points will be scanned at the given frequency. If the interface is under a large load, then some scans may occur late or be skipped entirely. See the section called “Performance Point Configuration” for more information on skipped or missed scans. Sub-second Scan Classes One can also specify sub-second scan classes on the command line such as /f=0.5 /f=0.1 where the scanning frequency associated with the first scan class is 0.5 seconds and the scanning frequency associated with the second scan class is 0.1 seconds. Similarly, sub-second scan classes with sub-second offsets can be defined, such as /f=0.5,0.2 /f=1,0 Wall Clock Scheduling 48 Parameter Description Scan classes that strictly adhere to wall clock scheduling are now possible. This feature is available for interfaces that run on Windows and/or UNIX. Previously, wall clock scheduling was possible, but not across daylight savings time. For example, /f=24:00:00,08:00:00 corresponds to 1 scan a day starting at 8 AM. However, after a Daylight Savings Time change, the scan would occur either at 7 AM or 9 AM, depending upon the direction of the time shift. To schedule a scan once a day at 8 AM (even across daylight savings time), one should use /f=24:00:00,00:08:00,L. The ,L at the end of the scan class tells UniInt to use the new wall clock scheduling algorithm. /host=host:port Required The /host parameter is used to specify the PI Home node. Host is the IP address of the PI Sever node or the domain name of the PI Server node. Port is the port number for TCP/IP communication. The port is always 5450 for a PI 3 Server. It is recommended to explicitly define the host and port on the command line with the /host parameter. Nevertheless, if either the host or port is not specified, the interface will attempt to use defaults. Defaults: The default port name and server name is specified in the pilogin.ini or piclient.ini file. The piclient.ini file is ignored if a pilogin.ini file is found. Refer to the PI API Installation Instructions manual for more information on the piclient.ini and pilogin.ini files. Examples: The interface is running on an API node, the domain name of the PI 3 home node is Marvin, and the IP address of Marvin is 206.79.198.30. Valid /host parameters would be: /host=marvin /host=marvin:5450 /host=206.79.198.30 /host=206.79.198.30:5450 /id=x The /id parameter is used to specify the interface identifier. Required The interface identifier is a string that is no longer than 9 characters in length. UniInt concatenates this string to the header that is used to identify error messages as belonging to a particular interface. See the section called “Informational Messages” for more information. UniInt always uses the /id parameter in the fashion described above. This interface also uses the /id parameter to identify a particular interface copy number that corresponds to an integer value that is assigned to Location1. For this interface, one should use only numeric characters in the identifier. For example, /id=1 Performance Monitor Interface to the PI System 49 Startup Command File Parameter /ps=x Required Description The /ps parameter specifies the point source for the interface. X is not case sensitive and can be any single or multi-character string. For example, /ps=P and /ps=p are equivalent. The point source that is assigned with the /ps parameter corresponds to the PointSource attribute of individual PI Points. The interface will attempt to load only those PI points with the appropriate point source. /q Optional When the /q parameter is present, Snapshots and exceptions are queued before they are sent to the PI Server node. The maximum queue size is close to 4000 bytes. The queue is flushed between scans if it is not filled. /stopstat or /stopstat= digstate Default: /stopstat= ”Intf shut” Optional If the /stopstat parameter is present on the startup command line, then the digital state I/O Timeout will be written to each PI Point when the interface is stopped. If /stopstat=digstate is present on the command line, then the digital state, digstate, will be written to each PI Point when the interface is stopped. The digstate must be in the system digital state table. UniInt uses the first occurrence in the table. If neither /stopstat nor /stopstat=digstate is specified on the command line, then no digital states will be written when the interface is shut down. Examples: /stopstat=”Intf shut” The entire parameter is enclosed within double quotes when there is a space in digstate. /tc=x Default=10 Optional 50 The /tc parameter is used to specify the number of threads used by the interface. The number of threads range from 1 to 99. The default is 10 if the /tc parameter is not specified. For example, /tc=5 Sample PIPerfMon.bat File The following is a sample full version interface startup command file (PIPerfMon.bat). REM======================================================================= REM PIPerfMon.bat REM REM Sample startup file for the Performance Monitor Interface REM REM======================================================================= REM REM OSIsoft strongly recommends using PI ICU to modify startup files. REM REM Sample command line REM .\PIPerfMon /ps=# /Q /id=1 /host=XXXXXX:5450 ^ /f=00:00:05 /f=00:01:00 REM REM End of PIPerfMon.bat File Performance Monitor Interface to the PI System 51 Interface Node Clock Make sure that the time and time zone settings on the computer are correct. To confirm, run the Date/Time applet located in the Windows Control Panel. If the locale where the interface node resides observes Daylight Saving Time, check the box marked “Automatically adjust clock for daylight saving changes”. For example, In addition, make sure that the TZ environment variable is not defined. All of the currently defined environment variables can be viewed by opening a Command Prompt window and typing set. That is, C:> set Make sure that the TZ environment variable is not defined. All of the currently defined environment variables can be viewed by opening a Command Prompt window and typing set. Confirm that TZ is not in the resulting list. If it is, run the System applet of the Control Panel, click the Environment tab, and remove TZ from the list of environment variables. Performance Monitor Interface to the PI System 53 Security Windows The PI Firewall Database and the PI Proxy Database must be configured so that the interface is allowed to write data to the PI Server. See “Modifying the Firewall Database” and “Modifying the Proxy Database” in the PI Server manuals. Note that the Trust Database, which is maintained by the Base Subsystem, replaces the Proxy Database used prior to PI version 3.3. The Trust Database maintains all the functionality of the proxy mechanism while being more secure. See “Trust Login Security” in the chapter “PI System Management” of the PI Universal Data Server System Management Guide. If the interface cannot write data to the PI Server because it has insufficient privileges, a –10401 error will be reported in the pipc.log file. If the interface cannot send data to a PI2 Serve, it writes a –999 error. See the section “Appendix A: Error and Informational Messages” for additional information on error messaging. PI Server v3.3 and Higher Security configuration using piconfig For PI Server v3.3 and higher, the following example demonstrates how to edit the PI Trust table: C:\PI\adm> piconfig @table pitrust @mode create @istr Trust,IPAddr,NetMask,PIUser a_trust_name,192.168.100.11,255.255.255.255,piadmin @quit For the above, Trust: An arbitrary name for the trust table entry; in the above example, a_trust_name IPAddr: the IP Address of the computer running the Interface; in the above example, 192.168.100.11 NetMask: the network mask; 255.255.255.255 specifies an exact match with IPAddr PIUser: the PI user the Interface to be entrusted as; piadmin is usually an appropriate user Security Configuring using Trust Editor The Trust Editor plug-in for PI System Management Tools 3.x may also be used to edit the PI Trust table. See the PI System Management chapter in the PI Server manual for more details on security configuration. Performance Monitor Interface to the PI System 55 Security PI Server v3.2 For PI Server v3.2, the following example demonstrates how to edit the PI Proxy table: C:\PI\adm> piconfig @table pi_gen,piproxy @mode create @istr host,proxyaccount piapimachine,piadmin @quit In place of piapimachine, put the name of the PI Interface node as it is seen by PI Server. 56 Starting / Stopping the Interface This section describes starting and stopping the interface once it has been installed as a service. See the UniInt Interface User Manual to run the interface interactively. Starting Interface as a Service If the interface was installed a service, it can be started from the services control panel or with the command: PIPerfMon.exe –start To start the interface service with PI ICU, use the button on the PI ICU toolbar. A message will inform the user of the status of the interface service. Even if the message indicates that the service has started successfully, double check through the Services control panel applet. Services may terminate immediately after startup for a variety of reasons, and one typical reason is that the service is not able to find the command-line parameters in the associated .bat file. Verify that the root name of the .bat file and the .exe file are the same, and that the .bat file and the .exe file are in the same directory. Further troubleshooting of services might require consulting the pipc.log file, Windows Event Viewer, or other sources of log messages. See the section “Appendix A: Error and Informational Messages,” for additional information. Stopping Interface Running as a Service If the interface was installed a service, it can be stopped at any time from the services control panel or with the command: PIPerfMon.exe –stop The service can be removed by: PIPerfMon.exe –remove To stop the interface service with PI ICU, use the button on the PI ICU toolbar. Other Command-line Parameters Other command line parameters are listed as: -query Query the PIPerfMon Service -help Print usage statement -v Display UniInt and PI API version information (does not disturb normal interface operation) The –depend option is only valid with the –install action Performance Monitor Interface to the PI System 57 Which Performance Counters to Monitor The following tables, which have been republished with permission from Microsoft, provide a guideline on what Microsoft believes is important counters to monitor. For more information about these tables, please refer to the Microsoft® Windows® 2000 Resource Kit documentation under the Performance Monitoring section. The following table describes the minimum counters to monitor when looking for a specific problem. Object Problem Counters LogicalDisk\% Free Space LogicalDisk\% Disk Time PhysicalDisk\Disk Reads/sec PhysicalDisk\Disk Writes/sec Usage Disk Bottlenecks Use diskperf –y to enable disk counters and diskperf – n to disable them. To specify the type of counters to activate, include d for physical disk drives and v for logical disk drives or storage volumes. When the operating system starts up, it automatically sets the diskperf command with the –yd switch to activate physical disk counters. Type diskperf –yv to activate logical disk counters. For more information about using the diskperf command, type diskperf -? At the command prompt. The % Disk Time counter must be interpreted carefully. Because the _Total instance of this counter might not accurately reflect utilization on multiple-disk systems, it is important to use the % Idle Time counter as well. Note that these counters cannot display a value exceeding 100 percent. LogicalDisk\Avg. Disk Queue Length PhysicalDisk\Avg. Disk Queue Length (all instances) Memory\Available Bytes Memory\Cache Bytes Memory Usage Performance Monitor Interface to the PI System Memory\Committed Bytes and Memory\Commit Limit can also be used to detect problems with virtual memory. 59 Which Performance Counters to Monitor Object Problem Bottlenecks or leaks Counters Memory\Pages/sec Memory\Page Faults/sec Memory\Pages Input/sec Memory\Page Reads/sec Memory\Transition Faults/sec Memory\Pool Paged Bytes Memory\Pool Nonpaged Bytes Although not specifically Memory object counters, the following are also useful for memory analysis: Paging File\% Usage Object (all instances) Cache\Data Map Hits % Server\Pool Paged Bytes and Server\Pool Nonpaged Bytes Usage Network Throughput (TCP/IP) Network Segment: % Net Utilization (Network Packet Protocol driver for Network Monitor must be installed). Network Interface\Bytes total/sec Network Interface\Packets/sec Server\Bytes Total/sec or Server\Bytes Sent/sec and Server\Bytes Received/sec Usage Processor\% Processor Time (all instances) Bottlenecks System\Processor Queue Length (all instances) Processor\Interrupts/sec System\Context switches/sec Processor The following table shows the recommended thresholds for the minimum set of system counters. Resource Disk Object\Counter Comments LogicalDisk\% Free Space 15 percent None LogicalDisk\% Disk Time 90 percent None Depends on manufacturer’s specifications Check the specified transfer rate for the disks to verify that this rate does not exceed the specifications. In general, Ultra Wide SCSI disks can handle 50 to 70 I/O operations per second. Number of spindles plus 2 This is an instantaneous counter; observe its value over several intervals. For an average over time, use PhysicalDisk\Avg. Disk Queue Length. PhysicalDisk\ Disk Reads/sec, PhysicalDisk\ Disk Writes/sec PhysicalDisk\ Current Disk Queue Length 60 Suggested Threshold Resource Suggested Threshold Object\Counter Comments Memory\ Available Bytes Less than 4 MB Research memory usage and add memory if needed. Memory\ Pages/sec 20 Research paging activity. Network Network Segment\% Net Utilization Depends on type of network Must determine the threshold based on the type of network available. For Ethernet networks, for example, 30 percent is the recommended threshold. Paging File Paging File\% Usage Above 70 percent Review this value in conjunction with Available Bytes and Pages/sec to understand paging activity on the computer. Processor\% Processor Time 85 percent Find the process that is using a high percentage of processor time. Upgrade to a faster processor or install an additional processor. Processor\ Interrupts/sec Depends on processor; for current CPUs, use a threshold of 1500 interrupts per second A dramatic increase in this counter value without a corresponding increase in system activity indicates a hardware problem. Identify the network adapter or disk controller card causing the interrupts. May need to install an additional adapter or controller card. Memory Processor Server Multiple Processors Server\Bytes Total/sec If the sum of Bytes Total/sec for all servers is roughly equal to the maximum transfer rates of the network, may need to segment the network. Server\Work Item Shortages 3 If the value reaches this threshold, consider tuning the InitWorkItems or MaxWorkItems entries in the registry (in HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Services \lanmanserver \Parameters Server Work Queues\Queue Length 4 If the value reaches this threshold, there might be a processor bottleneck. This is an instantaneous counter; observe its value over several intervals. System\Processo r Queue Length 2 This is an instantaneous counter; observe its value over several intervals. Performance Monitor Interface to the PI System 61 Which Performance Counters to Monitor The following table gives a description of the Task Manager items in the Process tab. If there is a corresponding performance counter, it is also listed. Task Manager Process Tab 62 Description System Monitor Process Object Counters Base Priority The base priority of the process, which determines the order in which its threads are scheduled for the processor. The base priority is set by the process code, not the operating system. The operating system sets and changes the dynamic priorities of threads in the process within the range of the base. Priority Base CPU Time The total processor time, in seconds, used by the process since it was started. None CPU Usage The percentage of time the threads of the process used the processor since the last update. % Processor Time GDI Objects The number of Graphics Device Interface (GDI) objects currently used by a process. A GDI object is an object from the GDI library of application programming interfaces (APIs) for graphics output devices. None Handle Count The number of object handles in the process’s object table. Handle Count I/O Other The number of input/output operations generated by a process that are neither reads nor writes, including file, network, and device I/Os. An example of this type of operation would be a control function. I/O Others directed to CONSOLE (console input object) handles are not counted. I/O Other Operations/sec I/O Other Bytes The number of bytes transferred in input/output operations generated by a process that are neither reads nor writes, including file, network, and device I/Os. An example of this type of operation would be a control function. I/O Other Bytes directed to CONSOLE (console input object) handles are not counted. I/O Other Bytes/sec I/O Read Bytes The number of bytes read in input/output operations generated by a process, including file, network, and device I/Os. I/O Read Bytes directed to CONSOLE (console input object) handles are not counted. I/O Read Bytes/sec I/O Reads The number of read input/output operations generated by a process, including file, network, and device I/Os. I/O Reads directed to CONSOLE (console input object) handles are not counted. I/O Read Operations/sec Task Manager Process Tab Description I/O Write Bytes The number of bytes written in input/output operations generated by a process, including file, network, and device I/Os. I/O Write Bytes directed to CONSOLE (console input object) handles are not counted. I/O Write Bytes/sec I/O Writes The number of write input/output operations generated by a process, including file, network, and device I/Os. I/O Writes directed to CONSOLE (console input object) handles are not counted. I/O Write Operations/sec Image Name Name of the process. The process name in the Instances box Memory Usage The amount of main memory, in kilobytes, used by the process. Working Set Memory Usage Delta The change in memory use, in kilobytes, since the last update. Unlike System Monitor, Task Manager displays negative values. None Non-paged Pool The amount of memory, in kilobytes, used by a process. Operating system memory that is never paged to disk. Paging is the moving of infrequently used parts of a program’s working memory from RAM to another storage medium, usually the hard disk. Pool Non-paged Bytes Page Faults The number of times that data had to be retrieved from disk for this process because it was not found in memory. This value is accumulated from the time the process is started. None Page faults/sec is the rate of page faults over time. Page Faults Delta The change in the number of page faults since the last update. None Paged Pool The amount of system-allocated virtual memory, in kilobytes, used by a process. The paged pool is virtual memory available to be paged to disk. Paging is the moving of infrequently used parts of a program’s working memory from RAM to another storage medium, usually the hard disk. The paged pool includes all of user memory and a portion of system memory. Pool Paged Bytes Peak Memory Usage The peak amount of physical memory resident in a process since it started. None PID (Process Identifier) Numerical ID assigned to the process while it runs. ID Process Thread Count The number of threads running in the process. Thread Count Performance Monitor Interface to the PI System System Monitor Process Object Counters 63 Which Performance Counters to Monitor Task Manager Process Tab Description System Monitor Process Object Counters USER Objects The number of USER objects currently being used by a process. A USER object is an object from Window Manager, which includes windows, menus, cursors, icons, hooks, accelerators, monitors, keyboard layouts, and other internal objects. None Virtual Memory Size The amount of virtual memory, or address space, committed to a process. Private Bytes The following table gives a description of the Task Manager items in the Performance tab. If there is a corresponding performance counters it is also listed Task Manager Performance Tab 64 Description System Monitor Counters CPU Usage The percentage of time the processor is running a thread other than the Idle thread. Processor\% Processor Time MEM Usage The amount of virtual memory used, in kilobytes. Memory\Committed Bytes Total Handles The number of object handles in the tables of all processes. Process(_Total)\Handle Count Total Threads The number of running threads, including one Idle thread per processor. Process(_Total)\Thread Count Total Processes The number of active processes, including the Idle process. Object\Processes is the same, but excludes the Idle process. Physical Memory: Total Amount of physical, random access memory, in kilobytes, installed in the computer. None Physical Memory: Available Amount of physical memory available to processes, in kilobytes. It includes zeroed, free, and standby memory. Memory\Available Bytes Physical Memory: File Cache Amount of physical memory, in kilobytes, released to the file cache on demand. Memory\Cache Bytes Commit Charge: Total Size of virtual memory in use by all processes, in kilobytes. Memory\Committed Bytes Commit Charge: Limit Amount of virtual memory, in kilobytes, that can be committed to all processes without enlarging the paging file. Memory\Commit Limit Commit Charge: Peak The maximum amount of virtual memory, in kilobytes, used in the session. The commit peak can exceed the commit limit if virtual memory is expanded. None Task Manager Performance Tab Description System Monitor Counters Kernel Memory: Total Sum of paged and non-paged memory, in kilobytes. None (Sum of Pool Paged Bytes and Pool Non-paged Bytes) Kernel Memory: Paged Size of the paged pool, in kilobytes, allocated to the operating system. Memory\Pool Paged Bytes Kernel Memory: Nonpaged Size of the non-paged pool, in kilobytes, allocated to the operating system. Memory\Pool Non-paged Bytes Performance Monitor Interface to the PI System 65 Buffering For complete information on buffering, please refer to the PI API Installation Instruction. PI Interface Node buffering consists of a buffering process which runs continuously on the local node, a PI API library whose calls can send data to this buffering process, and a utility program for examining the state of buffering and controlling the buffering process. Note: Change the Local Security Policy on Windows XP. 1. Open “Administrative Tools” from the control panel. 2. Open “Local Security Policy” from administrative tools. 3. Browse to “Security Options” under “Local Policies.” 4. Double click on “System Objects: Default owner for objects created by members of the Administrators group.” 5. Change the dropdown from “Object Creator” to “Administrators group.” The behavior of Bufserv should now be the same on Windows XP as it was for Windows NT 4 and 2000. Configuring Buffering with PI ICU (Windows) Buffering is enabled through the PI Interface Configuration Utility’s Tools>API Buffering… menu. Unless buffering is explicitly enabled, the PI API will not buffer data, sending data directly to the home node. The API Buffering… dialog allows the user to view and configure the parameters associated with the PI API Buffering (bufserv) process. The user can start and stop the PI API Buffering process from the Service tab: Performance Monitor Interface to the PI System 67 Buffering Service Tab The Service tab allows for some PI API Buffering service configuration. For further configuration changes, use the Services applet. Service name The Service name displays the name of the PI API Buffering Service. Display name The Display name displays the full name associated with the PI API Buffering service. Log on as Log on as indicates the Windows user account under which the PI API Buffering service is setup to start automatically on reboot, or manually. Password Password is the name of the password for the Windows user account entered in the Log on as: above. Confirm password Reenter the password to verify it has been typed correctly both times. Dependencies The Dependencies lists the Windows services on which the PI API Buffering service is dependent. Dependent services The Dependent services area lists the Windows services that depend on bufserv to function correctly. Start / Stop Service The Start / Stop buttons allow for the PI API Buffering service to be started and stopped. If the service is not created, this box will show Not Installed. After a change is made to any of the settings on the Settings tab, the OK button must be clicked to save these settings, and then the service must be stopped and restarted for the changes to be picked up by bufserv. Service Startup Type The Startup Type indicates whether the PI API Buffering service is setup to start automatically on reboot or manually on reboot, or is disabled. If the Auto option is selected, the service will be installed to start automatically when the machine reboots. If the Manual option is selected, the interface service will not start on reboot, but will require someone to manually start the service. If the Disabled option is selected, the service will not start at all. Generally, the PI API Buffering service is set to start automatically. 68 Create/Remove Service The Create / Remove buttons allow for the creation or removal of the PI API Buffering service. Clicking the Create button will cause the service to be created using the Log on as and passwords given. Once the service is created the Start / Stop buttons will be activated. Settings Tab The Settings tab allows for configuration of the 7 configurable settings used by PI API Buffering. Default values are used if no other value is provided. Enable Buffering Enable the PI API Buffering feature. Maximum File Size Maximum buffer file size in kilobytes before buffering fails and discards events. Default value is 100,000. Range is 1 to 2,000,000. The Use Default button places the default value into the text box. To keep this value, click the Apply button. Send Rate Send rate is the time to wait between sending up to MAXTRANSFEROBJS to the server (milliseconds). Default value is 100. Range is 0 to 2,000,000. The Use Default button places the default value into the text box. To keep this value, click the Apply button. Performance Monitor Interface to the PI System 69 Buffering Primary Memory Buffer Size Primary memory buffer size is the size in bytes of the Primary memory buffer. Default value is 32768. Range is 64 to 2,000,000. The Use Default button places the default value into the text box. To keep this value, click the Apply button. Secondary Memory Buffer Size Secondary memory buffer size is the size in bytes of the Secondary memory buffer. Default value is 32768. Range is 64 to 2,000,000. The Use Default button places the default value into the text box. To keep this value, click the Apply button. Max Transfer Objects Max transfer objects is the maximum number of events to send between each SENDRATE pause. Default value is 500. Range is 1 to 2,000,000. The Use Default button places the default value into the text box. To keep this value, click the Apply button. Pause Rate When buffers are empty the buffering process will wait for this number of seconds before attempting to send more data to the home node. Default value is 2. Range is 0 to 2,000,000. The Use Default button places the default value into the text box. To keep this value, click the Apply button. Retry Rate When the buffering process discovers the home node is unavailable it will wait this number of seconds before attempting to reconnect. Default value is 120. Range is 0 to 2,000,000. The Use Default button places the default value into the text box. To keep this value, click the Apply button. Max Theoretical Send Rate This is the theoretical max send rate which is calculated like this: max = MAXTRANSFEROBJS / SENDRATE * 1000 Default value is 5000. This value is automatically calculated for the user and can not be changed. There are no additional steps needed to install buffering after installing the PI API. The delivered PI API library supports both buffered and un-buffered calls. Configuring Buffering Manually Buffering is enabled through the use of a configuration file, piclient.ini. Unless this file is modified to explicitly enable buffering, the PI API will not buffer data, sending data directly to the home node. 70 There are no additional steps needed to install buffering after installing the PI API. The delivered PI API library supports both buffered and un-buffered calls. Note: When buffering is configured to be on, the bufserv process must be started before other programs using the PI API, so that these programs can access the shared buffering resources. Any program that makes a connection to a PI Server has this requirement even if it does not write to PI. Configuration of buffering is achieved through entries in the piclient.ini file. The file is found in the .dat subdirectory of the PIHOME directory (typically c:\pipc\dat) under Windows. This file follows the conventions of Microsoft Windows initialization files with sections, keywords within sections, and values for keywords. All buffering settings are entered in a section called [APIBUFFER]. To modify settings, simply edit the piclient.ini file in a text editor (Notepad on Windows) to the desired values. The following settings are available for buffering configuration: Keywords Values Default Description BUFFERING 0, 1 0 Turn off/on buffering. OFF = 0, ON = 1, PAUSERATE 0 – 2,000,000 2 When buffers are empty the buffering process will wait for this long before attempting to send more data to the home node (seconds) RETRYRATE 0 – 2,000,000 120 When the buffering process discovers the home node is unavailable it will wait this long before attempting to reconnect (seconds) MAXFILESIZE 1 – 2,000,000 100,000 Maximum buffer file size before buffering fails and discards events. (Kbytes) MAXTRANSFEROBJS 1 – 2,000,000 500 Maximum number of events to send between each SENDRATE pause. BUF1SIZE 64 – 2,000,000 32768 Primary memory buffer size. (bytes) BUF2SIZE 64 – 2,000,000 32768 Secondary memory buffer size. (bytes) SENDRATE 0 – 2,000,000 100 The time to wait between sending up to MAXTRANSFEROBJS to the server (milliseconds) Performance Monitor Interface to the PI System 71 Buffering In addition to the [APIBUFFER] section, the [PISERVER] section may be used to define the default PI server and an optional time offset change that may occur between the client and server. Keywords Values Default Description PIHOMENODE string none Windows default server is in pilogin.ini DSTMISMATCH 0 – 2,000,000 0 The time that the server and client local time offset is allowed to jump. Typically, 3600 if the nodes are in time zones whose DST rules differ (seconds) Example piclient.ini File Windows On Windows, the default server information is stored in the pilogin.ini file so the piclient.ini would only have the [APIBUFFER] section. The BUFFERING=1 indicates that buffering is on. The MAXFILESIZE entry in Kbytes of 100000 allows up to 100 Megabytes of data storage. Do not use commas or other separators in the numeric entries. The retry rate is set to 600 seconds, meaning “Wait 10 minutes after losing a connection before retrying”. On Windows a piclient.ini file might look like: [APIBUFFER] BUFFERING=1 MAXFILESIZE=100000 ; The PI API connection routines have a 1 minute default timeout. RETRYRATE=600 72 Appendix A: Troubleshooting One of the best ways to diagnose if there is a problem with the interface is to check the behavior of the Microsoft utility NT Performance Monitor (Sysmon for Windows 2000). The interface will be able to collect the same counters as the NT Performance Monitor or the Windows 2000 Sysmon utility. Common Problems The following is a list of common problems and misunderstandings about the PIPerfMon Interface. Symptom Resolution The remote computer being monitored is offline. The interface will continue trying to monitor the instance and will find it when the computer is restarted. I am unable to obtain remote counters. The interface is installed to run with the system account privileges as a service and the user account for interactive. Go to The PIPerfMon Service section for a description of the solution for services. Log on to the computer with a user account with sufficient privileges to run the interface interactively. The application or thread being monitored has stopped. The interface continues trying to monitor the instance and will find it when the process or thread is restarted. All values for my disks are zero. The counters for the Physical and Logical Disk objects don’t work until the Disk Performance Statistics Driver in the I/O Manager disk stack is installed. Use the Diskperf utility to install the Disk Performance Statistics Driver, and then restart the computer. I have several disks, but values are only shown for the first disk in the set. When Diskperf was used, the standard option was specified, diskperf –y, which places the statistics collector above the fault tolerant driver, FTDISK. The statistics collector cannot see the different physical instances of the disk. Run Diskperf using the diskperf – ye option, then restart the computer. This places the statistics collector below the fault tolerant driver so it can see physical disks before they are combined into a volume set. Performance Monitor Interface to the PI System 73 Appendix A: Troubleshooting Symptom %Disk Read Time and %Disk Write Time don’t sum to %Disk Time Resolution All disk counters include time in the queue. When the queue gets long, the read and write time both include that time and don’t sum to 100. %Disk Read Time:_Total and %Disk Write Time_Total sum to more than 100% because there is more than one instance of the physical or logical disk. The percentage counters are limited, by definition to 100% and cannot display higher values. Use the Avg. Disk Read Queue Length, Avg. Disk Write Queue Length, and Avg. Disk Queue Length counters instead. These report on the same data as the %Disk Time counters, but display the values in decimals that can exceed 1.0. Why is there a _Total instance on the ID counters? What would a total ID Thread counter show? Items in the Instances box are the same for all counters of an object. Process: Pool Non-paged Bytes:_Total doesn’t equal Memory: Pool Non-paged Bytes The Memory: Pool Non-paged Bytes value comes from an internal counter that counts each byte. The Process: Pool Non-paged Bytes counters are estimates from the Object Manager. The Object Manager counts accesses, not space, so its counts include requests to duplicate object handles as well as space for the object. When an instance has no meaning, as in the case of _Total for IDs, a zero value is displayed for the counter. Ignore the static value of the counters and, instead, monitor any changes in the values Where is the Processor Queue Length Counter? It’s a System object counter. There is just one processor queue for all processors. Counter values for instances of an object are greater than those for the total The %Disk Time and %Processor Time counters are limited, by definition, to 100%. If there are multiple disks or processors, each could equal 100%, but the total counter cannot display the sum. Monitor the physical instances separately. For disks, use the Avg. Disk Queue Length counters instead of the %Disk Time counters. These display the totals as decimal, not percentages, so they can exceed 1.0. For processors, use the System: %Total Processor Time counter. This averages the active time of each processor over all processors. 74 Error Codes The following are some common error codes from the interface and what they mean. Informational Messages These messages are normal and do not require action. Error Code Description Interpretation 0x00000000L The returned data is valid PDH_CSTATUS_VALID_DATA 0x00000001L The return data value is valid and different from the last sample PDH_CSTATUS_NEW_DATA Warning Messages These messages are returned when the function has completed successfully but the results may be different than expected. Error Code Description Interpretation 0x800007D0L Unable to connect to specified machine or machine is off line. PDH_CSTATUS_NO_MACHINE 0x800007D1L The specified instance is not present PDH_CSTATUS_NO_INSTANCE 0x800007D5L No data to return PDH_NO_DATA 0x800007D6L A counter with a negative denominator value was detected PDH_CALC_NEGATIVE_DENOMIN ATOR 0x800007D7L A counter with a negative timebase value was detected PDH_CALC_NEGATIVE_TIMEBASE 0x800007D8L A counter with a negative value was detected PDH_CALC_NEGATIVE_VALUE 0x800007D9L The user cancelled the dialog box PDH_DIALOG_CANCELLED Error Messages These messages are returned when the function could not be complete as requested and some corrective action may be required by the caller or the user. Error Code Description Interpretation 0xC0000BB8L The specified object is not found on the system PDH_CSTATUS_NO_OBJECT 0xC0000BB9L The specified counter could not be found PDH_CSTATUS_NO_COUNTER 0xC0000BBAL The returned data is not valid PDH_CSTATUS_INVALID_DATA Performance Monitor Interface to the PI System 75 Appendix A: Troubleshooting Error Code 76 Description Interpretation 0xC0000BBBL A PDH function could not allocate enough temporary memory to complete the operation. Close some applications or extend the pagefile and retry the function PDH_MEMORY_ALLOCATION_ FAILURE 0xC0000BBCL The handle is not a valid PDH object PDH_INVALID_HANDLE 0xC0000BBFL No counter was specified PDH_CSTATUS_NO_ COUNTERNAME 0xC0000BC0L Unable to parse the counter path. Check the format and syntax of the specified path PDH_CSTATUS_BAD_ COUNTERNAME 0xC0000BC3L Unable to connect to the requested machine PDH_CANNOT_CONNECT_ MACHINE 0xC0000BC4L The specified counter path could not be interpreted PDH_INVALID_PATH 0xC0000BC5L The instance name could not be read from the specified counter path PDH_INVALID_INSTANCE 0xC0000BC6L The data is not valid PDH_INVALID_DATA 0xC0000BC7L The dialog box data block was missing or invalid PDH_NO_DIALOG_DATA 0xC0000BC8L Unable to read the counter and/or explain text from the specified machine PDH_CANNOT_READ_NAME_ STRINGS 0xC0000BCCL No more data is available PDH_NO_MORE_DATA 0xC0000BD4L Unable to find the specified string in the list of performance name and explain text strings PDH_STRING_NOT_FOUND Revision History Date Author Comments 10-Dec-99 JCW First Copy of Interface Manual Started 4-May-00 JCW First Released 15-Sep-00 JCW Added PWD file documentation 12-Dec-00 JCW Edited for 1.0.1 version 25-Jan-01 JCW Added Monitoring Basics section 8-Mar-01 JCW Added service startup user account documentation 25-Sep-01 JCW Modifications for version 1.0.3 11-Feb-02 RCP Added PIPERFMON ICU Control to Startup Command File section. 11-Feb-02 RCP Added PIPERFMON ICU Control to Startup Command File section. 27-Feb-02 HAB Corrected reference to /db – should be /dbUniInt. 19-Apr-02 HAB Added new ICU Control screen shot (1.0.2, doc rev A) 16-Oct-02 CG Used skeleton 1.11; fixed headers & footers 31-Dec-02 JCW This doc is for 1.0.3 and greater 16-Sep-03 CG Rev C: Added OSIsoft logo to footer; adjusted version; fixed copyright 25-Aug-04 JCW Version 1.1.0.x Rev C: Basic version now supports 512 counters 2-Sep-04 CG Version 1.1.0.x Rev D: Updated contact page; removed installation reference to dlls; changed references to “Appendix A: Error and Informational Messages” to “Appendix A: Troubleshooting;” added release notes to list of installed files 25-Jan-05 MKelly Updated section on ICU control. Added three items to the supported features table from the Interface Skeleton 1.15. Updated Table of Contents and fixed headers and footers. 07-Feb-05 JWong Updated for digital point types 16-Feb-05 Chrys Version 1.2.0.8 Rev B: Updated version on title page; fixed supported features table to note that there is a point builder 07-Feb07 Janelle Version 1.3.0.0 Rev C: Updated manual to skeleton 2.5.4; updated hardware diagram, added buffering section; removed PI2 references; added PI SMT add in section 13-Mar-07 Pchow Version 1.4.0.0 Rev A: Added SetDeviceStatus description in Supported Features and set DisconnectedStartup support to yes. Updated description for /ec in “Command-line Parameters”. Performance Monitor Interface to the PI System 77 Appendix A: Troubleshooting 19-Apr-07 Pchow Version 1.4.0.0 Rev B: Update description for SetDeviceStatus in Supported Features. Changed the min value for the /deb command-line parameter from 1 to 0 in the Command-line Parameters section to match the value specified when configuring with the ICU. 24-Apr-07 Pchow Version 1.4.0.0 Rev C: Update description for SetDeviceStatus in Supported Features. Included note in the Performance Counter Path section to describe a scenario where a device may be identified as being offline due to a non-existent performance counter instance. 78 08-May-07 Pchow Version 1.4.0.0 Rev D: Removed localhost from the section Sample PIPerfMon.bat File. 5-Jun-07 MKelly Version 1.4.0.0, Rev E: Updated ICU Control and IO Rates screenshots. Fixed headers and footers.