性能监视可以用于获取正常运行的服务的信息。性能监视是一个很好的工具,它能帮助我们了解系统的工作负荷,观察变化及趋势。
windows 2000有许多性能对象,例如system、memory、objects、process、processor、thread和cache等。这些对象都有许多的监视点。例如,使用process对象,可以监视所有进程或某一具体进程的用户时间、句柄数、页错误和线程数等。
一些应用程序也添加具体的对象,例如sql server。
对于quoteservice示例应用程序而言,要获取的信息是客户请求的数量和通过网络发送的数据有多少等。
1. 性能监视类。
命名空间中包含下述性能监视类:
performancecounter类可以用于监视数量和编写数量。此外,使用这个类还可以创建新的性能种类。
使用performancecountercategory可以遍历所有现有的种类并创建新的种类。可以编程获取种类的记数器。
performancecounterinstaller类用于性能记数器的安装。这个类的用法与前面的eventloginstaller相似。
2. performance counter builder
要创建新的性能记数器种类,可以选择server explorer中的性能记数器,再在弹出的菜单中选择菜单项create new category…,这将启动performance counter builder,如图32-25所示。
图 32-25
把性能记数器种类设置为quote service。表32-6中给出了服务的所有性能记数器。
表 32-6
performance counter builder把配置写到性能数据库中。使用命名空间中performancecategory类的create()方法,可以动态地把配置写到性能数据库中。使用visual studio .
net,可以在以后为其他系统添加安装程序。
3. 添加performancecounter组件。
接下来,要从工具箱中添加performancecounter组件。这里不使用工具箱的种类组件,而是直接把前面创建的性能计数从server explorer拖放到设计视图上。这样实例会自动配置:
所有对象的categoryname属性都设置为quote service count,countername属性设置为选中种类中的一个可用值。这个应用程序不是读取性能计数,而是写入,所以必须把readonly属性设置为false。
private void initializecomponent()
// performancecounterrequestspersec
quote service counts";
# of requests / sec";
= "nagelc"
= false;
// performancecounterbytessenttotal
quote service counts";
# of bytes sent";
= "nagelc"
= false;
// performancecounterbytessentpersec
quote service counts";
# of bytes sent / sec";
= "nagelc"
= false;
// performancecounterrequeststotal
"quote service counts";
# of requests";
= "nagelc"
= false;
对于性能值的计算,必须给类quoteserver添加两个私有变量requestpersec和bytespersec。
public class quoteserver :
private int requestspersec;
private int bytespersec;
在quoteserver类的listener()方法中,直接增加显示总值的性能计数。用于计算请求的总数,而incrementby()方法计算发送的字节总数。
对于按秒显示值的性能计数而言,在listener()方法中只更新requestspersec和bytesspersec变量:
protected void listener()
catch (exception e)
string message = quote server failed in listener: "
为了每秒显示一次已更新的值,可以添加一个timer组件。把ontime()方法设置为这个组件的elapsed事件。如果interval属性设置为1000,ontime()方法就每秒调用一次,它使用performancecounter类的rawvalue属性设置性能计数:
protected void ontimer (object sender, elapsedeventargs e)
现在,就可以监视服务了。执行administrative tools | performance命令可以启用performance工具。按下工具栏中的“+”按钮,可以添加性能计数。
图32-26中显示出的性能对象是quote service,配置的所有记数器都显示在记数器列表中。
图 32-26
在添加记数器之后,可以看到服务的计数。使用这个性能工具,也可以创建日志文件,以便将来分析性能,如图32-27所示。
图 32-27
C 高级编程
第六章熟悉类与对象。6.1 电子 示例介绍。6.2 编写类。6.2.1 类定义。1.方法与成员。2.访问控制。3.声明的顺序。6.2.2 定义方法。1.访问数据成员。2.调用其他方法。指针。6.2.3 使用对象。1.堆栈中的对象。2.堆中的对象 6.3 对象的生命周期。6.3.1 创建对象。1.编写...
高级C 编程题库
高级语言程序设计 编程题。1.从键盘输入3个整数,求其中的最大数和最小数,并输出结果。2.从键盘上输入一个3 3的整数矩阵,求其各行的平均值并输出,输出时保留两位小数。3.输出x2的值,x取值从0到10。4.从键盘上输入一个3 4的整数矩阵,要求输出其最大元素的值,以及它的行号和列号。5.编写一个程...
c高级编程指南
第1章文件结构。每个c c程序通常分为两个文件。一个文件用于保存程序的声明 declaration 称为头文件。另一个文件用于保存程序的实现 implementation 称为定义 definition 文件。c c程序的头文件以 h 为后缀,c程序的定义文件以 c 为后缀,c 程序的定义文件通常以...