Abstract:
A system for, method of and computer program product captures performance- characteristic data from the execution of a program and models system performance based on that data. Performance-characterization data based on easily captured reuse distance metrics is targeted, defined as the total number of memory references between two accesses to the same piece of data. Methods for efficiently capturing this kind of metrics are described. These data can be refined into easily interpreted performance metrics, such as performance data related to caches with LRU replacement and random replacement strategies in combination with fully associative as well as limited associativity cache organizations. Methods for assessing cache utilization as well as parallel execution are covered.
Abstract:
Performance data is received at a Remote Performance Monitor (RPM) Server residing on a target virtual operating system within a virtual data center complex. The performance data is generated, and served at predefined intervals, by a Central Performance Data Server operable for the virtual operating system within the virtual data center complex. At least a portion of the performance data is saved in memory accessible to the RPM Server. Then, responsive to a request form an RPM Client residing on an originating virtual machine within the virtual data center complex, at least a portion of data residing in the memory is extracted by the RPM Server and served to the RPM Client.
Abstract:
System, method and program for managing a storage server comprising first and second clusters of storage controllers. The first cluster comprises one or more storage controllers each controlling one or more storage arrays. The first cluster also comprises a first cache memory and a first nonvolatile storage ("NVS") shared by the one or more storage controllers of the first cluster. The second cluster comprises one or more storage controllers each controlling one or more storage arrays. The second cluster also comprises a second cache memory and a second nonvolatile storage shared by the one or more storage controllers of the second cluster. There is monitoring of an amount of time that data controlled by each of the clusters is held in the cache memory of the cluster before being outpaged to the storage arrays. There is monitoring of an amount of requests to access storage arrays of a cluster that were delayed due to insufficient NVS. A level of impairment of access to each of the storage arrays is determined based on the amount of time that data controlled by each of the clusters was held in the cache memory of the cluster before being outpaged to the storage arrays, and the amount of requests to access the storage arrays of a cluster that were delayed due to insufficient NVS. When access to a storage array is excessively impaired, data is moved from the access-impaired storage array to another storage array with a lower level of access impairment.
Abstract:
A method and apparatus is described herein for monitoring the performance of a microarchitecture and tuning the microarchitecture based on the monitored performance. Performance is monitored through simulation, analytical reasoning, retirement pushout measure, overall execution time, and other methods of determining per instance event costs. Based on the per instance event costs, the microarchitecture and/or the executing software is tuned to enhance performance.
Abstract:
One embodiment includes a system for application-layer monitoring of communication between one or more database clients and one or more database servers. The system includes one or more decoders residing at a decoding layer above a network layer. The decoders reside at a first network location between one or more database clients residing at one or more second network locations and one or more database servers residing at one or more third network locations. The decoders receive database messages communicated from the database clients and intended for the database servers and database messages communicated from the database servers and intended for the database clients, decode the database messages, and extract query-language statements from the database messages. The system also includes a monitoring application residing at an application layer above the decoding layer. The monitoring application resides at the first network location. The monitoring application receives query-language statements extracted at the decoders and records observations on the database messages based on the query-language statements extracted at the decoders.
Abstract:
A monitoring program contains a method for detecting a load imbalance in a group of servers and providing notification so that corrections can be made. An embodiment of the invention reads from the address resolution protocol (ARP) cache to determine which server addresses are present, then clears the ARP cache. The address resolution protocol will repopulate the cache from traffic it snoops and from new requests. By performing this query and clear operation periodically, the tracking program can form a picture of the activity levels of the servers. When a significant imbalance exists, the program notifies a control console for human intervention to solve the problem. The tracking program will periodically write its results to a log file, allowing reports for various time periods to be produced as needed. By this mechanism, not only can an imbalance be quickly detected, but underutilization can be picked up by comparing known capability of a resource to its actual usage.
Abstract:
An accounting method and logic for determining per-thread processor resource utilization in a simultaneous multi-threaded (SMT) processor provides a mechanism for accounting for processor resource usage by programs and threads within programs. Relative resource use is determined by detecting instruction dispatches for multiple threads active within the processor, which may include idle threads that are still occupying processor resources. If instructions are dispatched for all threads or no threads, the processor cycle is accounted equally to all threads. Alternatively if no threads are in a dispatch state, the accounting may be made using a prior state, or in conformity with ratios of the threads' priority levels. If only one thread is dispatching, that thread is accounted the entire processor cycle. If multiple threads are dispatching, but less than all threads are dispatching (in processors supporting more than two threads), the processor cycle is billed evenly across the dispatching threads. Multiple dispatches may be detected for the threads and a fractional resource usage determined for each thread and the counters may be updated in accordance with their fractional usage.
Abstract:
A method and apparatus for monitoring the performance characteristics of a multithreaded processor (10) executing instructions from two or more threads simultaneously. Event detectors detect the occurrence of specific processor events (20) during the execution of instructions from threads of a multithreaded processor. Specialized event select controls registers (30) are programmed to control the selection, masking and qualifying of events to be monitored. Events arequalified according to their thread ID and thread current privilege level (CPL). Each event that is qualified is counted by one of several programmable event counters (70) that keep track of all processor events being monitored. The contents of the event counters can then be accessed and sampled via a program instruction.
Abstract:
The invention concerns the acquisition of event-related data occurring during the execution of a user programme, two mutually related processes being formed. The first of said processes consists in detecting event-related data and the second is replaced by the user programme. A clock signal is iteratively activated by the first process, and the process goes into stand-by mode. While the clock signal lasts, the first process blocks the second process and acquires the event-related data of the second process stored by the operational system during the time interval which has elapsed.
Abstract:
A compact metering scheme meters visits to a web site. A proxy module intercepts traffic between a client and a server. The proxy module appends a metering module to the body of information sent from the server to the client. The metering module measures the duration of each visit using a timing function F and a unique seed generated for each visit. The metering module returns an auditable result when the client ends the visit. A log keeper module is used to store each result.