Performance buckets enable you to define buckets and link them to various server functions. Every time one of these functions is invoked, the server collects statistical data and adds the data to the bucket. The cost of collecting this information is minimal, and the impact on the server performance is usually negligible. You can access this information by using perfdump. The following information is stored in a bucket:
Name of the bucket. This name associates the bucket with a function.
Description. A description of the functions with which the bucket is associated.
Number of requests for this function. The total number of requests that caused this function to be called.
Number of times the function was invoked. This number might not coincide with the number of requests for the function, because some functions might be executed more than once for a single request.
Function latency or the dispatch time. The time taken by the server to invoke the function.
Function time. The time spent in the function itself.
default-bucket is predefined by the server. It records statistics for the functions not associated with any user-defined bucket.
You must specify all configuration information for performance buckets in the obj.conf file. Only the default-bucket is automatically enabled.
You must enable performance statistics collection and perfdump.
The following examples show how to define new buckets in obj.conf:
Init fn="define-perf-bucket" name="acl-bucket" description="ACL bucket" |
The above examples creates a bucket: acl-bucket. To associate this bucket with functions, add bucket=bucket-name to the obj.conf function for which to measure performance.
Example
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>
The Server statistics in buckets can be accessed by using perfdump. The performance buckets information is located in the last section of the report returned by perfdump.
The report contains the following information:
Average, Total, and Percent columns show data for each requested statistic.
Request Processing Time is the total time required by the server to process all requestsreceived.
Number of Requests is the total number of requests for the function.
Number of Invocations is the total number of times that the function was invoked. This number differs from the number of requests because a function can be called multiple times while processing one request. The percentage column for this row is calculated in reference to the total number of invocations for all of the buckets.
Latency is the time in seconds that Proxy Server takes to prepare for calling the function.
Function Processing Time is the time in seconds that Proxy Server spends in the function. The percentage of Function Processing Time and Total Response Time is calculated with reference to the total Request Processing Time.
Total Response Time is the sum in seconds of Function Processing Time and Latency.
The following example shows performance bucket information in perfdump:
Performance Counters: ------------------------------------------------ Average Total Percent Total number of requests: 62647125 Request processing time: 0.0343 2147687.2500 default-bucket (Default bucket) Number of Requests: 62647125 (100.00%) Number of Invocations: 3374170785 (100.00%) Latency: 0.0008 47998.2500 ( 2.23%) Function Processing Time: 0.0335 2099689.0000 ( 97.77%) Total Response Time: 0.0343 2147687.2500 (100.00%)