性能诊断log包括一系列log等级设置和log格式,使得性能问题能够在log层次上被捕捉到,比如下面是一个SMPP协议网关实现的log
TimeStatistic --------
Statistic name : EnquireLength
Description : Time taken for a round trip ENQUIRE_LINK PDU.
Measurement unit : MILLISECOND
Measurement start time : 1224214074885
Last measurement time : 1224219511193
# times the operation was invoked : 3
max time : 19
min time : 12
total time : 46
在性能诊断模式开启后,软件程序就会每隔10秒钟打印如上信息,从以上信息可以很清楚地看到SMPP网管处理多少个PDU,每个PDU花了多长时间。这样会第一时间内捕获网管的性能处理效率。
在应用层次上的度量多种多样,根据应用的不同,也有不同的度量方法。比如我们最常见的web 处理能力一般用每秒请求数(requests/second),每秒吞吐量(throughoutputs/second)。其实针对每一个应用,开发人员都应该建立相应的度量。
比如一个email 的IMAP server,我们为其建立如下度量
APPEND Average Time (milliseconds)
APPEND Failure Rate (Failures/minute)
APPEND Rate (Requests/minute)
AUTHENTICATE Average Time (milliseconds)
AUTHENTICATE Failure Rate (Failures/minute)
等等。
一般地,度量要分为度量名,采集频率,预警值设置,预警信息等等。
开发人员则遵循规范,在开发过程中实现以上度量信息的采集。