Methods and apparatus for measuring resource usage within a...

Data processing: measuring – calibrating – or testing – Measurement system – Performance or efficiency evaluation

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C370S232000

Reexamination Certificate

active

06539340

ABSTRACT:

BACKGROUND OF THE INVENTION
A typical computer system includes performance analysis tools which enable a user such as a system administrator to obtain general performance information describing the operation of the computer. One type of tool enables the system administrator to obtain a snapshot of how much a computer utilizes a particular computer resource (e.g., a processor, a disk or a network resource) at a particular point in time. For example, a typical computer running the UNIX operating system includes utilities for measuring current central processing unit (CPU) utilization (e.g., “cpustat”), disk traffic (e.g., “iostat”) and network loading (e.g., “netstat”).
In general, each of the above-described tools provides an indication of how much a particular resource is utilized overall within the computer. That is, each tool provides an indication of how much the particular resource is used as a whole, irrespective of which or how many users, processes or programs utilize the particular resource.
In contrast to the above-described tools which provide indications of how much the resources are utilized overall, another type of tool enables a user to run a program and obtain detailed information describing the performance of that program. For example, the UNIX “prof” facility generally works by sampling the program counter several times each second and incrementing a counter each time the computer enters a particular target routine. Another UNIX facility called “gprof” operates in a similar manner but also determines which routine or routines call the particular target routine. Accordingly, the user can run the program for a period of time, and determine approximately how much time is spent in the target routine during that period.
Specialized computer systems may include specialized performance analysis tools for obtaining specific performance information describing the operation of the computer. A specialized computer known as a data communications device (e.g., a router, switch, bridge, etc.) typically includes a utility that enables a network administrator to categorize and count packets processed by the data communications device. Such a utility typically examines an aspect of each packet (or packet sample), and categorizes that packet into one of multiple categories or classes based on that aspect, e.g., by size, source address, destination address, priority, Quality of Service (QoS) class, etc. The utility increments counters corresponding to these categories in order to count the number of packets processed for each category.
For example, a data communications device running a performance analysis utility may categorize and count packets based on QoS class. To this end, the data communications device may use three respective counters to count the number of video QoS packets, audio QoS packets and best efforts QoS packets that the device processes over a period of time. A network administrator can then study the information in these counters to gauge the character of network traffic handled by the data communications device, and then manually configure the data communications device to operate in a more optimized manner on similar network traffic in the future.
SUMMARY OF THE INVENTION
Some computers operate by processing individual data elements (e.g., request signals, messages, network data structures, etc.). During operation, such a computer may process the data elements using different combinations of resources based on particular circumstances. For example, when a disk server receives a request (a data element) to write a block of data to a set of disks, the disk server may be able to perform a simple write operation by generating parity information for the data block, and then writing the data block and parity information to the set of disks. However, when the disk server receives a request to write a small portion of a data block on the disks, the disk server may need to perform a read-modify-write operation by reading an existing data block from the set of the disks, performing a modification routine which modifies part of the read data block with the small portion of the data block, generating parity information for the modified data block, and then storing the modified data block on the disks. Accordingly, the disk server may use resources (e.g., the modification routine) in certain situations but not others.
Similarly, a data communications device typically processes network data structures (data elements) by conveying the network data structures (e.g., packets, frames or cells) from one portion of a network to another. When the data communications device processes these data elements, the data communications device may use different combinations of resources depending on certain circumstances. For example, for certain network data structures, the data communications device may utilize a particular decapsulation or decryption routine to extract routing information from those network data structures. To obtain routing information for other data elements such decapsulation or decryption routines may be unnecessary. Accordingly, the data communications device may use particular resources for certain situations but not others in a manner similar to that of disk servers.
Unfortunately, conventional performance analysis tools generally do not provide resource usage information on a data element by data element basis. For example, a conventional performance analysis tool such as “iostat”, which measures disk traffic to one or more disks, does not provide resource usage information about which combinations of resources are used to process each disk access operation. Similarly, a conventional performance tool such as “prof”, which indicates how long a program executes in a particular routine, does not provide resource usage information about which resources are used to process a particular data element processed by the program.
In contrast to conventional performance analysis tools, the invention is directed to techniques for measuring resource usage of a computer when processing a data element, using a usage field assigned to the data element.
In one arrangement, the computer includes multiple resources, memory and a controller which is coupled to the multiple resources and the memory. The controller operates in accordance with an application stored in the memory to process data elements using different combinations of the multiple resources. In particular, the application configures the controller to assign a usage field to a data element, process the data element using a combination of the multiple resources, and adjust contents of the assigned usage field to identify particular resources of the combination in order to measure resource usage of the computer when processing the data element. The computer can operate in a similar manner to process other data elements in order to obtain resource usage information on a data element by data element basis. Accordingly, the resource usage information can be used to identify bottlenecks, optimize resource allocation, and resolve performance problems. As a result, the invention can assist capacity planning and improve computer system serviceability, reliability and performance.
The resources can be either hardware-based (e.g., a physical component) or software-based (e.g., a logical construct). Some examples of hardware-based resources are port buffers, hardware circuitry and peripheral devices. Some examples of software-based resources are allocatable data structures, specialized algorithmic routines, and decapsulation/encapsulation, decryption/encryption, and decoding/encoding routines.
In one arrangement, the controller includes markers which modify the contents of the usage field in response to processing the data element using different sets of resources. For example, a first marker can modify the usage field (e.g., set a first bit of the usage field) in response to processing the data element using a first set of resources (e.g., decapsulation and decryption routines). Then, a second marker can re-modify the contents

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Methods and apparatus for measuring resource usage within a... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Methods and apparatus for measuring resource usage within a..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Methods and apparatus for measuring resource usage within a... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3007312

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.