通过性能存储桶,可以定义存储桶并将其链接到各种服务器函数。每次调用其中某个函数时,服务器都会收集统计数据并将其添加到存储桶中。例如,send-cgi 和 NSServletService 函数分别用于为 CGI 请求和 Java servlet 请求提供服务。您可以定义两个存储桶来维护 CGI 请求和 servlet 请求各自的计数器,也可创建一个存储桶来对两种类型的动态内容请求进行计数。收集此信息的开销很少,对服务器性能的影响通常可以忽略不计。之后,可以使用 perfdump 实用程序访问此信息。
存储桶中存储的信息如下:
存储桶名称-此名称用于将存储桶与函数进行关联
说明-对存储桶所关联的函数的描述
此函数的请求数-导致此函数被调用的请求总数
函数的调用次数-此数目可能与函数的请求数不一致,因为对于单个请求,某些函数可能会执行多次
函数延迟或分发时间-服务器调用函数所花费的时间
函数时间-函数本身所花费的时间
default-bucket 由服务器预定义,用于记录未与任何用户定义的存储桶关联的函数的统计信息。
必须为 magnus.conf 和 obj.conf 文件中的性能存储桶指定所有配置信息。只有默认存储桶才会自动启用。
首先,必须按使用 perfdump 实用程序监视当前活动中所述启用性能测量。
以下示例说明了如何在 magnus.conf 文件中定义新的存储桶:
Init fn="define-perf-bucket" name="acl-bucket" description="ACL bucket"
Init fn="define-perf-bucket" name="file-bucket" description="Non-cached responses"
Init fn="define-perf-bucket" name="cgi-bucket" description="CGI Stats"
此示例将创建三个存储桶:acl-bucket、file-bucket 和 cgi-bucket。要将这些存储桶与函数关联,请在要测量性能的 obj.conf 函数中添加 bucket=bucket-name。
示例
PathCheck fn="check-acl" acl="default" bucket="acl-bucket"
...
Service method="(GET|HEAD|POST)" type="*~magnus-internal/*" fn="send-file" bucket="file-bucket"
...
<Object name="cgi">
ObjectType fn="force-type" type="magnus-internal/cgi"
Service fn="send-cgi" bucket="cgi-bucket"
</Object>
可以使用 perfdump 实用程序来访问存储桶中的服务器统计信息。性能存储桶信息位于 perfdump 所返回报告的最后一部分。
该报告包含以下信息:
"Average"、"Total" 和 "Percent" 列给出每一个所请求的统计信息的数据。
"Request Processing Time" 是服务器处理迄今已收到的所有请求需要的总时间。
"Number of Requests" 是函数的请求总数。
"Number of Invocations" 是函数的总调用次数。该值与请求数不同,因为处理一个请求时可能会多次调用某个函数。此行的百分比列是参照所有存储桶的调用总数计算得出的。
"Latency" 是 Proxy Server 为调用函数进行准备所花费的时间(以秒为单位)。
"Function Processing Time" 是 Proxy Server 在函数内部花费的时间(以秒为单位)。"Function Processing Time" 和 "Total Response Time" 的百分比是参照总的 "Request Processing Time" 计算得出的。
"Total Response Time" 为 "Function Processing Time" 和 "Latency" 之和。
以下显示了可通过 perfdump 获取的性能存储桶信息样例:
Performance Counters: ------------------------------------------------ Average Total Percent Total number of requests: 1 Request processing time: 0.2559 0.2559 default-bucket (Default bucket) Number of Requests: 1 (100.00%) Number of Invocations: 7 (100.00%) Latency: 0.2483 0.2483 ( 97.04%) Function Processing Time: 0.0076 0.0076 ( 2.96%) Total Response Time: 0.2559 0.2559 (100.00%) |