Windows performance monitor Overview

Source: Internet
Author: User

Windows performance monitor Overview

Windows performance monitor is a Microsoft Management Console (MMC) management unit that provides tools for analyzing system performance. You can monitor applications and hardware performance in real time from a single console, customize the data to be collected in logs, and define the thresholds for alarms and automatic operations, generate Reports and view past performance data in various ways.

Start Windows Performance Monitor: start --> Run-> enter perfmon --> press ENTER

Add-save counter settings:
 

In Windows 2003, after adding a counter, press Ctrl + S to save the settings as a file, so that you can view the settings directly next time. In Windows, the settings are not so straightforward.

Start --> Run --> enter MMC --> file --> Add/delete a management unit --> select performance monitor --> Add, and then add your counter in performance (local, in this way, you can save it for future viewing.

Run:

Common monitoring counters:

Object

Counter

Description

. Net CLR exceptions

# Of exceps thrown/sec

Displays the number of exceptions thrown per second. This includes. Net exceptions and unmanaged exceptions that convert to. Net exceptions. Performance decreases as the number increases.

. Net CLR memory

# Bytes in all heaps

Display the total size of the other four counters: Gen 0 heap size, Gen 1 heap size, Gen 2 heap size, and large object heap size. This counter indicates the memory allocated on the GC stack (in bytes ). The value of this counter is always smaller than the value of Process \ private bytes. Process \ private bytes counts the mem_commit area of the process. Private bytes minus # bytes in all heaps is the number of bytes submitted by the unmanaged object.
It is used to monitor possible memory leaks, or to monitor whether the memory usage of managed or unmanaged objects is too high.

. Net CLR remoting

Remote CILS/sec

Displays the number of remote process calls per second. A Remote Procedure Call is a call to any object outside the application domain where the caller is located. This counter is not an average value over a period of time; it shows the result of dividing the difference between the observed values of the last two samples by the sampling interval.

. NET data provider for Oracle

Numberoffreeconnections

The number of available connections in the connection pool.

. NET data provider for sqlserver

Numberoffreeconnections

The number of available connections in the connection pool.

Process

% Processor time

Displays the percentage of CPU time used by all process threads to execute commands. Commands are the basic execution units in the computer, threads are the objects for executing commands, and processes are the objects created when running programs. This count contains the code executed to handle certain hardware interruptions and trap conditions. If the total processor time is long, use this counter to identify the process that causes high CPU utilization.

Process

Handle count

Displays the total number of opened handles of this process. This number is the total number of handles currently opened by each thread in this process. The increase in the handle count in a specific process may be a symptom of a handle leakage error process, which may cause performance problems on the server. This problem may not occur, but it is very important to monitor it for a period of time to determine whether a handle leakage occurs.

Process

Thread Count

Number of active threads in the process. A command is a basic execution unit in a processor, and a thread is the object that executes the command. Each running process has at least one thread.

Sqlserver: General Statistics

User connections

Displays the current number of sqlserver connections, not the number of users. If the counter exceeds 255, you need to set the "Maximum worker threads" configuration value of sqlserver to 255 higher than the default value. If the number of connections exceeds the number of available threads, sqlserver will share the thread, which will affect the performance. "Maximum worker threads" needs to be set to be higher than the maximum number of connections that your server has ever reached.

Sqlserver: locks

Number of deadlocks/sec

The number of deadlocks per second. deadlocks are harmful to application scalability and lead to poor user experience. The counter value must be 0.

Logicaldisk

% Free space

% Free space is the percentage of total available space on the selected Logical Disk Drive.

Physicaldisk

Disk Read Bytes/sec

The speed at which bytes are transferred from the disk during the read operation.

Physicaldisk

Disk write Bytes/sec

The Byte speed transmitted to the disk during write operations.

By default, the following two counters are switched off. You need to configure % WinDir % \ microsoft.net \ framework64 \ v2.0.50727 \ config \ machine. the path of the 32-bit and 64-bit operating systems is also different. Otherwise, the data cannot be collected.

. NET data provider for Oracle

Numberoffreeconnections

. NET data provider for sqlserver

Numberoffreeconnections

Add configuration and restart the corresponding process (restart the service, or restart IIS, etc)

<System. Diagnostics>

<Switches>

<Add name = "connectionpoolperformancecounterdetail" value = "4"/>

</Switches>

</System. Diagnostics>

Use C # To collect counter data:

Although Windows comes with the perfmon tool and can generate reports and view performance data in various ways, sometimes we still define some of our own curves or reports, then we need to collect the Performance Monitor Data. C # provides the performancecountercategory (performance object) and performancecounter (performance counter component) classes, and provides some methods for operating the Performance Monitor, in this way, we can read and save the data to the database or files, and use it to generate curves, reports, or alarm mail at will...

Sample Code:

Using system;

Using system. diagnostics;

Using system. Threading;

 

Namespace testapplication

{

Public class Program

{

Static void main (string [] ARGs)

{

Console. writeline (getperfcount ("process", "% processor time", "_ total "));

Console. writeline (getperfcount (". Net CLR memory", "# bytes inall heaps", "_ global _"));

Console. writeline (getperfcount ("sqlserver: generalstatistics", "userconnections "));

 

Console. Read ();

}

 

/// <Summary>

/// Obtain the counter sample and return the calculated value for it-counters with instances (for most counters)

/// </Summary>

/// <Param name = "categoryname"> </param>

/// <Param name = "countername"> </param>

/// <Param name = "instance"> </param>

/// <Returns> </returns>

Public static float getperfcount (string categoryname, string countername, string instance)

{

Performancecountercounter = new performancecounter

{

Categoryname = categoryname,

Countername = countername,

InstanceName = instance,

Machinename = ".",

Readonly = true

};

Counter. nextvalue ();

Thread. Sleep (200 );

Try

{

If (counter! = NULL)

{

Return counter. nextvalue ();

}

}

Catch (exception)

{

Return-2f;

}

Return-1f;

}

 

/// <Summary>

/// Obtain the counter sample and return the calculated value for it -- a counter without an instance

/// For example, categoryname = sqlserver: General Statistics, countername = user connections

/// </Summary>

/// <Param name = "categoryname"> </param>

/// <Param name = "countername"> </param>

/// <Returns> </returns>

Public static float getperfcount (string categoryname, string countername)

{

Performancecountercounter = new performancecounter

{

Categoryname = categoryname,

Countername = countername

};

Counter. nextvalue ();

Thread. Sleep (200 );

Try

{

If (counter! = NULL)

{

Return counter. nextvalue ();

}

}

Catch (exception)

{

Return-2f;

}

Return-1f;

}

}

}

 

 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.