Technical Reference

The Technical Reference section contains information about PerformanceGuard on a very technical level, intended for consultants and system administrators.

This part of the help system contains information about PerformanceGuard on a very technical level. The intended audience for this information is consultants and system administrators working with installation, setup and maintenance of PerformanceGuard.

Here, that audience will find information about the components of PerformanceGuard, technical details about how PerformanceGuard carries out its performance measurement, and information about how to troubleshoot and fine-tune your PerformanceGuard installation. If you are the administrator of your PerformanceGuard solution, you may also refer to the Administration part of this help system.

If you are looking for information about how to use the PerformanceGuard web interface on a day-to-day basis, see the Day-to-Day Use part of the help system.


This manual contains information about PerformanceGuard on a very technical level. The intended audience for this information is consultants and system administrators working with installation, setup and maintenance of PerformanceGuard. Here, they will find information about the different components of PerformanceGuard, technical details about how PerformanceGuard carries out its performance measurement, and information about how to troubleshoot and fine-tune your PerformanceGuard installation.

Technical Overview

A technical overview of the main components of PerformanceGuard as well as the implications of running PerformanceGuard on computers and networks respectively.

Components

PerformanceGuard consists of a number of components:

Component

Purpose

Packaging

Agents

Gather performance data on computers.

Executable installed on client computers. MSI-based installation.

Frontend server

Receives data from agents and stores them in a relational database.
In earlier versions referred to as the collector.

Java-based application, runs as a Windows service. Uses SQL Server database as storage.

Backend server

Consolidates data from frontend servers. Triggers events and sends notifications.
In earlier versions known as the notification framework.

Java-based application, runs as a Windows service. Uses SQL Server database as storage.

Web server

Makes data from backend server available for viewing in the PerformanceGuard web interface.

 

Web interface

Shows dashboards, graphs and other information. Also serves as administration interface for users with administrative rights.

Java-based application, runs as a Windows service.


The frontend server, backend server and web interface are typically installed in one go using the integrated PerformanceGuard installation.

Collected Information

Computer Information

On each computer that has the PerformanceGuard agent installed, the agent can collect static information about the computer, including the computer name, processor type and speed, details about the network interface, size of the installed memory and disks, etc.

In addition, the agent can collect overall performance indicators for the computer, such as current memory and CPU consumption, IO statistics, etc.

Process Information

The agent monitors the individual processes that run on the computer on which it's installed. It gathers information about every process that runs on the computer. The information includes: name of process owner and CPU, memory and IO usage, handles, threads, page faults and context switches for each process.
IP data process information is not collected on computers that run Windows XP.

Startup Time and Login Time

On startup (boot) of the computer, the agent measures the time to start (customizable criteria). When a user logs in, the agent measures the time to complete the login (customizable criteria).

Response Time Measurement

The agent monitors the requests and responses sent between the monitored computer and servers accessed through the network. It collects information about the accessed services on individual servers. Information collected includes response times, traffic amounts and network errors.

Web Transaction Support

In addition to the network-based response time measurements, the agent can measure transaction-based response times when the client computer accesses HTTP-based services. Transactions are defined in PerformanceGuard and sent to the agent.

Internet Explorer Agent

The PerformanceGuard agent includes a special Internet Explorer browser helper dll that lets it gather information about URLs that are visited using Internet Explorer. This component is particularly useful when you need transaction monitoring for encrypted websites.

Active Measurements

The agent can make a number of different active measurements. The agent supports measurement of "ping" (ICMP echo request/reply) timing and Web (http) timing. You can use ping timing to monitor the delay from an agent to most types of computing and networking equipment. You can use web timing to monitor the speed and availability of web servers.
It's also possible for the agent to make a trace of the network from the computer it's installed on to another computer or network equipment. Basically, anything that'll reply to a ping request can be used as the endpoint.

Citrix Metaframe Data

If the PerformanceGuard agent is installed on a computer that runs a Citrix Presentation Manager Server, the agent can monitor a number of Citrix-related performance indicators. These include detailed information about Citrix sessions and users that use the server.

Frontend Server Operation

The PerformanceGuard frontend server uses Microsoft SQL Server to store and process data.
As data is received from agents, it's placed in the database. The database consolidates data according to groupings defined on the agents. Groups can be created manually or automatically based on network topology. An agent can be a member of multiple groups.

Backend Server Operation

The PerformanceGuard backend server uses Microsoft SQL Server to store and process data.
As data is received from frontend servers, it's placed in the database. The database consolidates data according to groupings defined on the agents. Groups can be created manually or automatically based on network topology. An agent can be a member of multiple groups.
The backend server also generates reports at predetermined intervals, calculates long term trends, and deletes data that has become too old.

Implications

Implications for Computers with Agents Installed

Typically, the PerformanceGuard agent will consume less than 0.5% of the CPU resources on a computer and less than 10 MB of memory. Disk space used for installation is about 5 MB. Other than for installation, the agent doesn't consume any disk space when it runs.

Network Implications

The PerformanceGuard agent uses a single TCP port to communicate with a frontend server. During roll-out of agents you can decide which port to use. The connection is always established by the agent towards the frontend server. In most cases this means that the agents will be able to communicate with a frontend server without any modifications to firewall or router setup. The frontend server won't send any data back to the agent unless the agent needs to be reconfigured.

PerformanceGuard uses an NDIS driver to collect network packets on windows. The driver uses DMA (Direct Memory Access) to copy packets as they pass through the NDIS layer of the Windows network stack. Packets are copied to a circular kernel buffer.

The agent uses Windows I/O to retrieve packets from the kernel buffer. A number of threads in the agent fetch and process the packets captured by the driver.
In the rare event that the agent is unable to process packets at the rate that they are collected, the oldest captured packets in the circular kernel buffer will be overwritten. This means that even if the agent is not running at all, the flow of network packets is never stopped or affected.

In real life the PerformanceGuard agent has plenty of time to process all network packets, even when the agent runs on, for example, a busy Exchange server.

Amount of Information Transmitted

The amount of information that's sent from the PerformanceGuard agent to the frontend server depends on a number of factors. There are a number of ways to limit the amount and types of information that the agent should collect and transmit.

For example, you can configure the agent to only collect response time information about specific servers, or only collect information about local processes that consume more than a certain amount of resources. You can also control the frequency of data collection in order to limit the amount of information that must be transmitted and processed by PerformanceGuard

By default, the agent is configured to connect to a frontend server every three minutes and deliver three reports, each covering a one-minute period.

An agent that's installed on a typical end-user computer typically records 900-1200 bytes of data for every such one-minute report. In a default installation the agent therefore typically delivers 3600 bytes every three minutes. That's the equivalent of three IP packets every three minutes, or just 60 packets per hour.