WO2016114758A1 - Server response time monitoring - Google Patents

Server response time monitoring Download PDF

Info

Publication number
WO2016114758A1
WO2016114758A1 PCT/US2015/011108 US2015011108W WO2016114758A1 WO 2016114758 A1 WO2016114758 A1 WO 2016114758A1 US 2015011108 W US2015011108 W US 2015011108W WO 2016114758 A1 WO2016114758 A1 WO 2016114758A1
Authority
WO
WIPO (PCT)
Prior art keywords
computing device
metrics
file
interface
response time
Prior art date
Application number
PCT/US2015/011108
Other languages
French (fr)
Inventor
Daniel Gligorov
Original Assignee
Hewlett Packard Enterprise Development Lp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Enterprise Development Lp filed Critical Hewlett Packard Enterprise Development Lp
Priority to PCT/US2015/011108 priority Critical patent/WO2016114758A1/en
Publication of WO2016114758A1 publication Critical patent/WO2016114758A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • H04L43/065Generation of reports related to network devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning

Definitions

  • Response time is the amount of time that passes before a system is able to respond to a request.
  • Server response times can be measured based on communication between a client device and a server. For example, timestamps of a request from the client and a response from the server can be compared to determine the response time for the request.
  • FIG. 1 is a block diagram of an example computing device for providing monitoring of server response times
  • FIG. 2 is a block diagram of an example computing device in communication with a client computing device for providing monitoring of server response times
  • FIG. 3 is a block diagram of an example computing device in communication with a transactional computing device for providing monitoring of server response times
  • FIG. 4A is a flowchart of an example method for execution by a computing device fo providing monitoring of server response times using a subsystem interface
  • FIG. 4B is a flowchart of an example method for execution by a computing device for providing monitoring of server response times using a communication interface.
  • server response times can be determined based on monitoring of network activity of a server.
  • response times can also be monitored using customized code that is embedded in a server application.
  • debugging code can be used during the execution of the server application to determine response times for server-side operations.
  • such techniques are application specific and have limited access to system activities.
  • Examples herein describe a generic tool for capturing response times of single threaded servers, including response times per transaction type. Further, the generic tool is capable of being implemented in existing applications. In addition to capturing response times, the examples include a data storage system and presentation system fo graphical and tabular presentation of data. Various server metrics such as system wide response times as well as various other measure entities such as structured query language (SQL), file, disk, central processing unit (CPU), device, and controller statistics.
  • SQL structured query language
  • CPU central processing unit
  • a metric interface is used to obtain performance metrics, where the metric interface provides access to a measuring module (e.g., external measuring module, internal measuring module, etc.) configured to monitor the performance metrics of a computing device.
  • a measuring module e.g., external measuring module, internal measuring module, etc.
  • response times are determined for the computing device based on the performance metrics
  • FIG. 1 is a block diagram of an example computing device 100 for providing monitoring of server response times.
  • Computing device 100 may be any computing device (e.g., server, desktop computer, etc.) with access to other computing devices such as user devices and server devices.
  • computing device 100 includes a processor 1 10, subsystem interface(s) 1 12, a network interface 1 15, and a machine-readable storage medium 120.
  • Processor 1 10 may be one or more central processing units (CPUs), microprocessors, and/or other hardware devices suitable for retrieval and execution of instructions stored in machine-readable storage medium 120.
  • Processor 1 10 may fetch, decode, and execute instructions 122, 124, 126 to enable providing monitoring of server response times, as described below.
  • processor 1 10 may include one or more electronic circuits comprising a number of electronic components for performing the functionality of one or more of instructions 122, 124, 126.
  • Subsystem interface(s) 1 12 provides access to external measuring modules that are configured to measure performance metrics of subsystems of computing device 100. Examples of subsystems include a storage subsystem, a processor subsystem, an input/output subsystem, a networking subsystem, etc. Subsystem interface 1 12 provides an application programming interface (API) for accessing various metrics of its corresponding subsystem. For example, a subsystem interface 1 12 for a file system provides access to storage metrics such as access times, data transfer rates, etc.
  • An external measuring module may be implemented in, for example, a controller (not shown) of a corresponding subsystem.
  • Network interface 1 15 may include a number of electronic components for communicating with cloud devices.
  • network interface 1 15 may be an Ethernet interface, a Universal Serial Bus (USB) interface, an IEEE 1394 (Firewire) interface, an external Serial Advanced Technology Attachment (eSATA) interface, or any other physical connection interface suitable for communication with other computing devices.
  • network interface 1 15 may be a wireless interface, such as a wireless local area network (WLAN) interface or a near-field communication (NFC) interface.
  • WLAN wireless local area network
  • NFC near-field communication
  • network interface 1 15 may be used to send and receive data to and from a corresponding interface of a client computing device.
  • Machine-readable storage medium 120 may be any electronic, magnetic, optical, or other physical storage device that stores executable instructions.
  • machine-readable storage medium 120 may be, for example, Random Access Memory (RAM), an Electrically-Erasable Programmable Read-Oniy Memory (EEPROM), a storage drive, an optical disc, and the like.
  • RAM Random Access Memory
  • EEPROM Electrically-Erasable Programmable Read-Oniy Memory
  • machine-readable storage medium 120 may be encoded with executable instructions for providing monitoring of server response times.
  • File metrics determining instructions 122 determine file metrics of computing device 100 during a monitoring interval. The duration and/or timing of the monitoring interval may be preconfigured by an administrato of computing device 100.
  • File metrics may describe file operations (e.g., create, modify attributes, open, read, write, close, etc.) and include characteristics such as timestamps, target files, storage address, etc.
  • the file metrics can be logged by computing device 100 as the file operations are performed.
  • the file metrics can be determined by accessing the log files.
  • the file metrics can be determined in real-time using subsystem interface 1 12.
  • Processor utilization determining instructions 124 determine processor utilization metrics of computing device 100 during the monitoring interval.
  • Processor utilization metrics describe the performance of processor 1 10 and can be determined for multiple cores, processors, etc. in a multi-processor system. Specifically, processor utilization describes the percentage of processing cycles of processor 1 10 that are being used to perform tasks. Further, processor utilization metrics can also describe processor utilization of particular processes being executed by computing device 100. Similar to file metrics, processor utilization metrics can be determined by accessing a log file and/or determining processing utilization in real-time using subsystem interface 1 12.
  • Average response determining instructions 126 determine average response times of computing device 100 for the monitoring interval based on the file metrics and the processor utilization metrics. Specifically, portions of the processo utilization metrics can be associated with a file operation and then used to determine a response time of the file operation. The associated portions excludes processor utilization that can be attributed to queuing and idle time; therefore, the associated portions are more relevant to the file operation (i.e., processor utilization related to handling a request for the file operation, waiting on input/output, management of computing device 100, etc.). Idle time includes processor cycles that are not being used by any program thereby allowing for optimizations such as reduced power consumption. Idle time is excluded from the average response time because the idle time is irrelevant to the processing of requests by computing device 100. In this example, response times for each of the file operations can be determined as described above, where the Individual response times can then be used to determine an average response time of computing device 100.
  • FIG. 2 is a block diagram of an example computing device 200 in communication via a network 245 with a client computing device 250. As illustrated in FIG. 2 and described below, computing device 200 may communicate with client computing device 250 to provide monitoring of server response times.
  • computing device 200 may include a number of modules 202-224, while client computing device 250 may include a number of modules 254-258.
  • Each of the modules may include a series of instructions encoded on a machine-readable storage medium and executable by a processor of the respective device 200, 250.
  • each module may include one or more hardware devices including electronic circuitry for implementing the functionality described below.
  • computing device 200 may be any computing device with access to client computing devices over a network 245 that is suitable for executing the functionality described below. As detailed below, computing device 200 may include a series of modules 202-224 for providing monitoring of server response times.
  • Network interface 202 may initiate and manage connections with client computing device 250. Specifically, the network interface 202 may receive client requests from the transactional computing device 250 for processing as described below.
  • Operating system (OS) 224 may manage hardware and software resources of computing device 200.
  • OS 224 may also provide common services fo programs/applications such as performance monitor 210 described below.
  • OS 224 may provide performance monitor 210 with access to a subsystem (not shown) of computing device 200.
  • OS 224 may provide functions that can be used to access subsystem interfaces 220, which in turn us external measuring module 222 to access subsystem performance metrics of computing device 200.
  • Performance monitor 210 may monitor the performance of server computing devices.
  • computing device 200 corresponds to the server computing device being monitored, in other examples, performance monitor 210 may be implemented into a separate computing device that is configured to monitor remote server computing devices.
  • performance monitor 210 may be implemented into a separate computing device that is configured to monitor remote server computing devices.
  • Subsystem module 212 is configured to interact with subsystem interface 220. Specifically, subsystem module 212 can interact with subsystem interface 220 to obtain performance metrics of computing device 200. Performance metrics may include, but are not limited to, file performance metrics and processor utilization metrics similar to as described above with respect to FIG. 1. In some cases, subsystem module 212 is configured to poll subsystem interface 220 to continuously monitor the performance metrics of computing device 200. For example, performance metrics can be obtained in a staggered fashion such that subsequent requests fo metrics are submitted before previous results are received, allowing for more continuous coverage of the metrics. Subsystem module 212 may also be configured to obtain performance metrics using subsystem interface 220 in response to system events of computing device 200 (e.g., initiation of file operation, receipt of network request, etc.). In some cases, subsystem interfaces 220 correspond to OS function calls that are accessible to subsystem module 212. In this case, the OS function calls may access counters that are managed by external measuring module 222, which is described below.
  • Analysis module 216 is configured to analyze performance metrics to generate summary data. Analysis module 216 may generate reports that display the summary data. Examples of summary data include, but are not limited to, average response time of file operations and average response time for requests made by a client computing device (e.g., client computing device 250). For example, analysis module 216 may analyze processor utilization data that is associated with file operations to determine a portion of the processor utilization data that is relevant to average response times of computing device 200. In this example, the relevant processor utilization data can be used along with the quantity of requests from client computing devices (e.g., client computing device 250) to determine an average response time for computing device 200. In some cases, the summary data can be grouped by volume in the case that computing device 200 includes a drive array (not shown) with multiple volumes.
  • Subsystem interface(s) 220 are configured to provide access to performance metrics of various subsystems of computing device 200. Specifically, subsystem interface(s) 220 may provide access to external measuring module 222, which in turn obtains the subsystem metrics from the subsystem as described below.
  • External measuring module 222 is configured to update counters in memory or other storage based on performance metrics that are obtained from the subsystem of computing device 200.
  • External measuring module 222 may manage any number of counters for monitoring performance metrics such as processor utilization, file operation time stamps and statistics, etc.
  • a file open count counter can be managed to monitor the number of file open operations that have been initiated by computing device 200.
  • Computing device 200 includes storage devices (not shown), which may be any hardware storage device for maintaining data accessible to computing device 200.
  • storage devices may include one or more hard disk drives, solid state drives, tape drives, and/or any other storage devices.
  • the storage devices may be located in computing device 200 and/or in another device in communication with computing device 200.
  • Client computing device 250 may be a serve computing device, a notebook, desktop, tablet, workstation, mobile device, or any other device suitable for executing the functionality described below. As detailed below, client computing device 250 may include a series of modules 254-256 for accessing services provided by computing device 200.
  • Client computing device 250 may use services of the computing device 200 to perform transactions.
  • client computing device 250 may be a banking device that processes money transfers or a commerce device that processes sales.
  • Device interface 254 may initiate and manage connections with computing device 200. Specifically, the device interface 254 may send client requests to the computing device 200 for processing as described above.
  • Application module 258 is an application that performs transactions on behalf of users interacting with client computing device 250.
  • application module 256 may be banking web page that provides access to banking services via the Internet.
  • application module 256 may manage online sales of merchandise via a commerce site.
  • Display device 270 may be a server computing device, a notebook, desktop, tablet, workstation, mobile device, or any other device suitable for executing the functionality described below.
  • display device 270 may include a display module 272 for displaying summary data generated by analysis module 216.
  • display module 272 can collect summary data from multiple server computing devices so that reports including data from multiple systems (e.g., a distributed system including any number of server computing devices ⁇ can be shown. For example, a report showing the average response time for each server computing device can be generated based on data from multiple server computing devices.
  • FIG. 3 is a block diagram of an example computing device 300 in communication via a network 345 with a transactional computing device 350. As illustrated in FIG. 3 and described below, computing device 300 may communicate with transactional computing device 350 to provide monitoring of server response times.
  • computing device 300 may include a number of modules 302-324, while transactional computing device 350 may include a number of modules 354-356.
  • Each of the modules may include a series of instructions encoded on a machine-readable storage medium and executable by a processor of the respective device 300, 350.
  • each module may include one or more hardware devices including electronic circuitry for implementing the functionality described below.
  • computing device 300 may be any computing device with access to client/transactionai computing devices over a network 345 that is suitable for executing the functionality described below. As detailed below, computing device 300 may include a series of modules 302-324 for providing monitoring of server response times.
  • Network interface 302, performance monitor 310, operating system 324, and analysis module 318 may be substantially similar to corresponding components described above with respect to FIG. 2.
  • Communication module 312 is configured to interact with communication interface 318 (i.e., metric interface). Specifically, communication module 312 can interact with communication interface 318 to obtain performance metrics of computing device 300. Performance metrics may include, but are not limited to, communication metrics related to messages processed by computing device 300 on behalf of transactional computing device 350. In some cases, communication module 312 is triggered to use communication interface 318 in response to messaging events (e.g., receiving a transaction request, initiating a transaction, completing a transaction, sending a transaction response, etc.). Communication module 312 may also be configured to poll communication interface 318 for communication metrics at regular time intervals.
  • communication interface 318 i.e., metric interface
  • Performance metrics may include, but are not limited to, communication metrics related to messages processed by computing device 300 on behalf of transactional computing device 350.
  • communication module 312 is triggered to use communication interface 318 in response to messaging events (e.g., receiving a transaction request, initiating a transaction, completing a transaction, sending a transaction response, etc.).
  • Transactional module 314 is configured to track transactions (i.e., requests and subsequent responses) as they are processed by computing device 300. For example, multiple file operations and a portion of processor utilization can be attributed to a transaction as a request from transactional computing device 350 is processed. In this example, the response time for a request may be determined based on the relevant file operations and processor utilization. Because non-relevant delays in the transaction are ignored, transactional module 314 is able to more accurately determine the response times of transactions. Sn another example, transactional module 314 may track transactions that are independent of transactional computing device 350 (i.e., transactions that originate from interna! components of computing device 300).
  • Transactional module 314 is also configured to use communication interface 318 to intercept transactions initiated by transactional computing device 350.
  • the intercepted transactions can be analyzed when incoming and outgoing to determine when each transaction is received and then handled with a response. These transactional metrics can then be used by analysis module 318 to determine minimum and maximum response times for each transaction type.
  • Analysis module 316 is configured to analyze performance metrics and transactional data to generate summary data.
  • Analysis module 318 may generate reports that display the summary data.
  • Examples of summary data include, but are not limited to, average response time for transactions and average response times for transactions of particular transaction types (e.g., banking transactions, purchase transactions, data query transactions, etc.).
  • the summary data can be grouped by volume in the case that computing device 300 includes a drive array (not shown) with multiple volumes.
  • Communication interface(s) 318 are configured to provide access to communication metrics of various subsystems of computing device 300. Specifically, communication interface(s) 318 interrupt communication protocols as they occur on computing device to provide the communication metrics. For example, when a transaction is initiated, communication interface 318 can receive a start timestamp and transaction identifier for the transaction. In this example, when the transaction is completed, communication interface 318 can receive an end timestamp and the transaction identifier for the transaction, in this example, the start timestamp and the end timestamp are communication metrics that can be used by the analysis module to determine a response time for the transaction. Further, communication interface 318 also receives a transaction type for the transaction so that response time statistics can be grouped by transaction type.
  • communication interface(s) 318 may be implemented as hooks of OS 324 that are triggered by messaging events.
  • the OS hooks may interrupt protocol functions to provide communication metrics to performance monitor 310.
  • communication interface(s) 318 can be implemented as replacement functions of the protocol functions that include specialized code to capture the communication metrics.
  • Internal measuring module 322 i.e., measuring module
  • Communication interface(s) 318 use internal measuring module 322 to access the communication metrics in realtime or as historical data.
  • Computing device 300 includes storage devices (not shown), which may be any hardware storage device for maintaining data accessible to computing device 300.
  • storage devices may include one or more hard disk drives, solid state drives, tape drives, and/or any other storage devices.
  • the storage devices may be located in computing device 300 and/or in another device in communication with computing device 300.
  • Transactional computing device 350 may be a server computing device, a notebook, desktop, tablet, workstation, mobile device, or any other device suitable for executing the functionality described below. As detailed below, transactional computing device 350 may include a series of modules 354-356 for accessing services provided by computing device 300.
  • Transactional computing device 350 may use services of the computing device 300 to perform transactions.
  • transactional computing device 350 may be a banking device that processes money transfers or a commerce device that processes sales.
  • Device interface 354 may initiate and manage connections with computing device 300. Specifically, the device interface 354 may send client requests to the computing device 300 for processing as described above.
  • Application module 356 is an application that performs transactions on behalf of users interacting with transactional computing device 350.
  • application module 356 may be banking web page that provides access to banking services via the Internet.
  • application module 356 may manage online sales of merchandise via a commerce site.
  • Display device 370 may be a serve computing device, a notebook, desktop, tablet, workstation, mobile device, or any other device suitable for executing the functionality described below.
  • display device 370 may include a display module 372 fo displaying summary data generated by analysis module 316.
  • display module 372 can collect summary data from multiple server computing devices so that reports including data from multiple systems (e.g., a distributed system including any number of server computing devices) can be shown. For example, a report showing the average response time for each transaction type can be generated based on data from one or more server computing devices.
  • FIG. 4A is a flowchart of an example method 400 for execution by a computing device 100 for providing monitoring of server response times using a subsystem interface.
  • execution of method 400 is described below with reference to computing device 100 of FIG. 1 , other suitable devices for execution of method 400 may be used, such as computing device 200 of FIG. 2.
  • Method 400 may be implemented in the form of executable instructions stored on a machine-readable storage medium, such as storage medium 120, and/or in the form of electronic circuitry.
  • Method 400 may start in block 405 and continue to block 410, where computing device 100 uses a subsystem interface to determine file metrics of computing device 100 during a monitoring interval.
  • the file metrics can be logged by computing device 100 as the file operations are performed.
  • computing device 100 uses the subsystem interface to determine processor utilization metrics of computing device 100 during the monitoring interval.
  • Processor utilization metrics describe the performance of multiple cores or processors in a multi-processor system.
  • computing device 100 determines average response times for the monitoring interval based on the file metrics and the processor utilization metrics. Specifically, portions of the processor utilization metrics can be associated with a file operation and then used to determine a response time of the file operation. For example, FILE and PROCESS performance matrixes can be used to calculate response times as shown below:
  • $RECEIVE is a special file used by processing units to receive and respond to messages.
  • the FILE measure entity is used to calculate the response time as shown below:
  • the average response times can then be used to create reports for review by an administrator. Based on the reports, the administrator may reconfigure computing device 100 in order to minimize future average response times. Method 400 may then proceed to block 425, where method 400 may stop.
  • FIG. 4B is a flowchart of an example method 450 for execution by a computing device 300 for providing monitoring of server response times using a network interface. Although execution of method 450 is described below with reference to computing device 300 of FIG. 3, other suitable devices for execution of method 450 may be used. Method 450 may be implemented in the form of executable instructions stored on a machine-readable storage medium, such as storage medium 120, and/or in the form of electronic circuitry.
  • Method 450 may start in block 455 and continue to block 460, where computing device 300 uses a communication interface to intercept messages initiated by a transactional computing device. Specifically, requests from the transactional computing device may be intercepted so that the requests can be examined as the requests are processed by computing device 300. Similarly, responses from computing device 300 to the transactional computing device may also be intercepted so that the responses can be examined before the responses are sent to the transactional computing device.
  • minimum and maximum response times are determined for each message received from the transactional computing device.
  • minimum and maximum response times can be determined for each web page. The minimum and maximum response times are determined based on the amount of time that elapses between the receipt of the request from the transactional computing device and the return of the response from computing device 300. For example, a response time of a message can be calculated as shown below:
  • Time timestamps may be recorded in real time by intercepting the functions of the communication interface used by the process that is being measured to receive and respond to a message.
  • Communication interface functions are typically part of the operating system, but a communication interface may also be supplied by a separate entity that did not develop the operating system. In the second case, the communication interface usually depends on similar operating system functions.
  • the related operating system (OS) functions can be intercepted in a variety of manners.
  • the OS functions can be replaced with replacement functions, which each has identical interface as the OS function but once called executes the OS function and records the time (either before o after the OS function call).
  • the vendor of the OS function provides an interface and calls an external function to record the time and forward the time to memory accessible to a performance monitor.
  • an intercept library is provided to intercept the OS function from within the object of the calling program. In this example, an intercept library is attached to each program to be monitored.
  • the minimum and maximum response times of each transaction type can be used to further determine average response times for each transaction type, as shown in block 470.
  • the minimum and maximum response times along with the average times can then be displayed in a report for review by an administrator of computing device 300.
  • the foregoing disclosure describes a number of example embodiments for providing monitoring of server response times. Sn this manner, the embodiments disclosed herein improve determining response types by a subsystem or communication interface to obtain performance metrics independent of the implementation of the operating system of the computing device.

Abstract

Examples relate to monitoring server response times. In some examples, a metric interface is used to obtain performance metrics, where the metric interface provides access to a measuring module configured to monitor the performance metrics of a computing device. At this stage, response times are determined for the computing device based on the performance metrics.

Description

BACKGROUND
[0001 ] Response time is the amount of time that passes before a system is able to respond to a request. Server response times can be measured based on communication between a client device and a server. For example, timestamps of a request from the client and a response from the server can be compared to determine the response time for the request.
BRSEF DESCRIPTION OF THE DRAWINGS
[0002] The following detailed description references the drawings, wherein:
[0003] FIG. 1 is a block diagram of an example computing device for providing monitoring of server response times;
[0004] FIG. 2 is a block diagram of an example computing device in communication with a client computing device for providing monitoring of server response times;
[0005] FIG. 3 is a block diagram of an example computing device in communication with a transactional computing device for providing monitoring of server response times;
[0006] FIG. 4A is a flowchart of an example method for execution by a computing device fo providing monitoring of server response times using a subsystem interface; and
[0007] FIG. 4B is a flowchart of an example method for execution by a computing device for providing monitoring of server response times using a communication interface.
DETAILED DESCRIPTOR
[0008] As described above, server response times can be determined based on monitoring of network activity of a server. On the server-side, response times can also be monitored using customized code that is embedded in a server application. For example, debugging code can be used during the execution of the server application to determine response times for server-side operations. However, such techniques are application specific and have limited access to system activities.
[0009] Examples herein describe a generic tool for capturing response times of single threaded servers, including response times per transaction type. Further, the generic tool is capable of being implemented in existing applications. In addition to capturing response times, the examples include a data storage system and presentation system fo graphical and tabular presentation of data. Various server metrics such as system wide response times as well as various other measure entities such as structured query language (SQL), file, disk, central processing unit (CPU), device, and controller statistics.
[0010] Sn some examples, a metric interface is used to obtain performance metrics, where the metric interface provides access to a measuring module (e.g., external measuring module, internal measuring module, etc.) configured to monitor the performance metrics of a computing device. At this stage, response times are determined for the computing device based on the performance metrics
[001 1 ] Referring now to the drawings, FIG. 1 is a block diagram of an example computing device 100 for providing monitoring of server response times. Computing device 100 may be any computing device (e.g., server, desktop computer, etc.) with access to other computing devices such as user devices and server devices. In the embodiment of FIG. 1 , computing device 100 includes a processor 1 10, subsystem interface(s) 1 12, a network interface 1 15, and a machine-readable storage medium 120.
[0012] Processor 1 10 may be one or more central processing units (CPUs), microprocessors, and/or other hardware devices suitable for retrieval and execution of instructions stored in machine-readable storage medium 120. Processor 1 10 may fetch, decode, and execute instructions 122, 124, 126 to enable providing monitoring of server response times, as described below. As an alternative or in addition to retrieving and executing instructions, processor 1 10 may include one or more electronic circuits comprising a number of electronic components for performing the functionality of one or more of instructions 122, 124, 126.
[0013] Subsystem interface(s) 1 12 provides access to external measuring modules that are configured to measure performance metrics of subsystems of computing device 100. Examples of subsystems include a storage subsystem, a processor subsystem, an input/output subsystem, a networking subsystem, etc. Subsystem interface 1 12 provides an application programming interface (API) for accessing various metrics of its corresponding subsystem. For example, a subsystem interface 1 12 for a file system provides access to storage metrics such as access times, data transfer rates, etc. An external measuring module may be implemented in, for example, a controller (not shown) of a corresponding subsystem.
[0014] Network interface 1 15 may include a number of electronic components for communicating with cloud devices. For example, network interface 1 15 may be an Ethernet interface, a Universal Serial Bus (USB) interface, an IEEE 1394 (Firewire) interface, an external Serial Advanced Technology Attachment (eSATA) interface, or any other physical connection interface suitable for communication with other computing devices. Alternatively, network interface 1 15 may be a wireless interface, such as a wireless local area network (WLAN) interface or a near-field communication (NFC) interface. In operation, as detailed below, network interface 1 15 may be used to send and receive data to and from a corresponding interface of a client computing device.
[0015] Machine-readable storage medium 120 may be any electronic, magnetic, optical, or other physical storage device that stores executable instructions. Thus, machine-readable storage medium 120 may be, for example, Random Access Memory (RAM), an Electrically-Erasable Programmable Read-Oniy Memory (EEPROM), a storage drive, an optical disc, and the like. As described in detail below, machine-readable storage medium 120 may be encoded with executable instructions for providing monitoring of server response times. [0016] File metrics determining instructions 122 determine file metrics of computing device 100 during a monitoring interval. The duration and/or timing of the monitoring interval may be preconfigured by an administrato of computing device 100. File metrics may describe file operations (e.g., create, modify attributes, open, read, write, close, etc.) and include characteristics such as timestamps, target files, storage address, etc. The file metrics can be logged by computing device 100 as the file operations are performed. In one example, the file metrics can be determined by accessing the log files. In another example, the file metrics can be determined in real-time using subsystem interface 1 12.
[0017] Processor utilization determining instructions 124 determine processor utilization metrics of computing device 100 during the monitoring interval. Processor utilization metrics describe the performance of processor 1 10 and can be determined for multiple cores, processors, etc. in a multi-processor system. Specifically, processor utilization describes the percentage of processing cycles of processor 1 10 that are being used to perform tasks. Further, processor utilization metrics can also describe processor utilization of particular processes being executed by computing device 100. Similar to file metrics, processor utilization metrics can be determined by accessing a log file and/or determining processing utilization in real-time using subsystem interface 1 12.
[0018] Average response determining instructions 126 determine average response times of computing device 100 for the monitoring interval based on the file metrics and the processor utilization metrics. Specifically, portions of the processo utilization metrics can be associated with a file operation and then used to determine a response time of the file operation. The associated portions excludes processor utilization that can be attributed to queuing and idle time; therefore, the associated portions are more relevant to the file operation (i.e., processor utilization related to handling a request for the file operation, waiting on input/output, management of computing device 100, etc.). Idle time includes processor cycles that are not being used by any program thereby allowing for optimizations such as reduced power consumption. Idle time is excluded from the average response time because the idle time is irrelevant to the processing of requests by computing device 100. In this example, response times for each of the file operations can be determined as described above, where the Individual response times can then be used to determine an average response time of computing device 100.
[0019] FIG. 2 is a block diagram of an example computing device 200 in communication via a network 245 with a client computing device 250. As illustrated in FIG. 2 and described below, computing device 200 may communicate with client computing device 250 to provide monitoring of server response times.
[0020] As illustrated, computing device 200 may include a number of modules 202-224, while client computing device 250 may include a number of modules 254-258. Each of the modules may include a series of instructions encoded on a machine-readable storage medium and executable by a processor of the respective device 200, 250. In addition or as an alternative, each module may include one or more hardware devices including electronic circuitry for implementing the functionality described below.
[0021 ] As with computing device 100 of FSG. 1 , computing device 200 may be any computing device with access to client computing devices over a network 245 that is suitable for executing the functionality described below. As detailed below, computing device 200 may include a series of modules 202-224 for providing monitoring of server response times.
[0022] Network interface 202 may initiate and manage connections with client computing device 250. Specifically, the network interface 202 may receive client requests from the transactional computing device 250 for processing as described below.
[0023] Operating system (OS) 224 may manage hardware and software resources of computing device 200. OS 224 may also provide common services fo programs/applications such as performance monitor 210 described below. For example, OS 224 may provide performance monitor 210 with access to a subsystem (not shown) of computing device 200. Specifically, OS 224 may provide functions that can be used to access subsystem interfaces 220, which in turn us external measuring module 222 to access subsystem performance metrics of computing device 200.
[0024] Performance monitor 210 may monitor the performance of server computing devices. In this example, computing device 200 corresponds to the server computing device being monitored, in other examples, performance monitor 210 may be implemented into a separate computing device that is configured to monitor remote server computing devices. Although the components of performance monitor 210 are described in detail below, additional details regarding an example implementation of performance monitor 210 are provided above in connection with instructions 122, 124, and 126 of FIG. 1.
[0025] Subsystem module 212 is configured to interact with subsystem interface 220. Specifically, subsystem module 212 can interact with subsystem interface 220 to obtain performance metrics of computing device 200. Performance metrics may include, but are not limited to, file performance metrics and processor utilization metrics similar to as described above with respect to FIG. 1. In some cases, subsystem module 212 is configured to poll subsystem interface 220 to continuously monitor the performance metrics of computing device 200. For example, performance metrics can be obtained in a staggered fashion such that subsequent requests fo metrics are submitted before previous results are received, allowing for more continuous coverage of the metrics. Subsystem module 212 may also be configured to obtain performance metrics using subsystem interface 220 in response to system events of computing device 200 (e.g., initiation of file operation, receipt of network request, etc.). In some cases, subsystem interfaces 220 correspond to OS function calls that are accessible to subsystem module 212. In this case, the OS function calls may access counters that are managed by external measuring module 222, which is described below.
[0026] Analysis module 216 is configured to analyze performance metrics to generate summary data. Analysis module 216 may generate reports that display the summary data. Examples of summary data include, but are not limited to, average response time of file operations and average response time for requests made by a client computing device (e.g., client computing device 250). For example, analysis module 216 may analyze processor utilization data that is associated with file operations to determine a portion of the processor utilization data that is relevant to average response times of computing device 200. In this example, the relevant processor utilization data can be used along with the quantity of requests from client computing devices (e.g., client computing device 250) to determine an average response time for computing device 200. In some cases, the summary data can be grouped by volume in the case that computing device 200 includes a drive array (not shown) with multiple volumes.
[0027] Subsystem interface(s) 220 (i.e., metric interfaces) are configured to provide access to performance metrics of various subsystems of computing device 200. Specifically, subsystem interface(s) 220 may provide access to external measuring module 222, which in turn obtains the subsystem metrics from the subsystem as described below.
[0028] External measuring module 222 (i.e., measuring module) is configured to update counters in memory or other storage based on performance metrics that are obtained from the subsystem of computing device 200. External measuring module 222 may manage any number of counters for monitoring performance metrics such as processor utilization, file operation time stamps and statistics, etc. For example, a file open count counter can be managed to monitor the number of file open operations that have been initiated by computing device 200.
[0029] Computing device 200 includes storage devices (not shown), which may be any hardware storage device for maintaining data accessible to computing device 200. For example, storage devices may include one or more hard disk drives, solid state drives, tape drives, and/or any other storage devices. The storage devices may be located in computing device 200 and/or in another device in communication with computing device 200.
[0030] Client computing device 250 may be a serve computing device, a notebook, desktop, tablet, workstation, mobile device, or any other device suitable for executing the functionality described below. As detailed below, client computing device 250 may include a series of modules 254-256 for accessing services provided by computing device 200.
[0031 ] Client computing device 250 may use services of the computing device 200 to perform transactions. For example, client computing device 250 may be a banking device that processes money transfers or a commerce device that processes sales. Device interface 254 may initiate and manage connections with computing device 200. Specifically, the device interface 254 may send client requests to the computing device 200 for processing as described above.
[0032] Application module 258 is an application that performs transactions on behalf of users interacting with client computing device 250. For example, application module 256 may be banking web page that provides access to banking services via the Internet. In another example, application module 256 may manage online sales of merchandise via a commerce site.
[0033] Display device 270 may be a server computing device, a notebook, desktop, tablet, workstation, mobile device, or any other device suitable for executing the functionality described below. As detailed below, display device 270 may include a display module 272 for displaying summary data generated by analysis module 216. Specifically, display module 272 can collect summary data from multiple server computing devices so that reports including data from multiple systems (e.g., a distributed system including any number of server computing devices} can be shown. For example, a report showing the average response time for each server computing device can be generated based on data from multiple server computing devices.
[0034] FIG. 3 is a block diagram of an example computing device 300 in communication via a network 345 with a transactional computing device 350. As illustrated in FIG. 3 and described below, computing device 300 may communicate with transactional computing device 350 to provide monitoring of server response times.
[0035] As illustrated, computing device 300 may include a number of modules 302-324, while transactional computing device 350 may include a number of modules 354-356. Each of the modules may include a series of instructions encoded on a machine-readable storage medium and executable by a processor of the respective device 300, 350. In addition or as an alternative, each module may include one or more hardware devices including electronic circuitry for implementing the functionality described below.
[0036] As with computing device 100 of FIG. 1 and computing device 200 of FIG. 2, computing device 300 may be any computing device with access to client/transactionai computing devices over a network 345 that is suitable for executing the functionality described below. As detailed below, computing device 300 may include a series of modules 302-324 for providing monitoring of server response times.
[0037] Network interface 302, performance monitor 310, operating system 324, and analysis module 318 may be substantially similar to corresponding components described above with respect to FIG. 2.
[0038] Communication module 312 is configured to interact with communication interface 318 (i.e., metric interface). Specifically, communication module 312 can interact with communication interface 318 to obtain performance metrics of computing device 300. Performance metrics may include, but are not limited to, communication metrics related to messages processed by computing device 300 on behalf of transactional computing device 350. In some cases, communication module 312 is triggered to use communication interface 318 in response to messaging events (e.g., receiving a transaction request, initiating a transaction, completing a transaction, sending a transaction response, etc.). Communication module 312 may also be configured to poll communication interface 318 for communication metrics at regular time intervals.
[0039] Transactional module 314 is configured to track transactions (i.e., requests and subsequent responses) as they are processed by computing device 300. For example, multiple file operations and a portion of processor utilization can be attributed to a transaction as a request from transactional computing device 350 is processed. In this example, the response time for a request may be determined based on the relevant file operations and processor utilization. Because non-relevant delays in the transaction are ignored, transactional module 314 is able to more accurately determine the response times of transactions. Sn another example, transactional module 314 may track transactions that are independent of transactional computing device 350 (i.e., transactions that originate from interna! components of computing device 300).
[0040] Transactional module 314 is also configured to use communication interface 318 to intercept transactions initiated by transactional computing device 350. The intercepted transactions can be analyzed when incoming and outgoing to determine when each transaction is received and then handled with a response. These transactional metrics can then be used by analysis module 318 to determine minimum and maximum response times for each transaction type.
[0041 ] Analysis module 316 is configured to analyze performance metrics and transactional data to generate summary data. Analysis module 318 may generate reports that display the summary data. Examples of summary data include, but are not limited to, average response time for transactions and average response times for transactions of particular transaction types (e.g., banking transactions, purchase transactions, data query transactions, etc.). In some cases, the summary data can be grouped by volume in the case that computing device 300 includes a drive array (not shown) with multiple volumes.
[0042] Communication interface(s) 318 are configured to provide access to communication metrics of various subsystems of computing device 300. Specifically, communication interface(s) 318 interrupt communication protocols as they occur on computing device to provide the communication metrics. For example, when a transaction is initiated, communication interface 318 can receive a start timestamp and transaction identifier for the transaction. In this example, when the transaction is completed, communication interface 318 can receive an end timestamp and the transaction identifier for the transaction, in this example, the start timestamp and the end timestamp are communication metrics that can be used by the analysis module to determine a response time for the transaction. Further, communication interface 318 also receives a transaction type for the transaction so that response time statistics can be grouped by transaction type. [0043] Sn some cases, communication interface(s) 318 may be implemented as hooks of OS 324 that are triggered by messaging events. The OS hooks may interrupt protocol functions to provide communication metrics to performance monitor 310. In other cases, communication interface(s) 318 can be implemented as replacement functions of the protocol functions that include specialized code to capture the communication metrics.
[0044] Internal measuring module 322 (i.e., measuring module) is configured to extract the communication metrics from messages processed by operating system 324. For example, the various timestamps as described above can be extracted from messages as the messages are processed. Communication interface(s) 318 use internal measuring module 322 to access the communication metrics in realtime or as historical data.
[0045] Computing device 300 includes storage devices (not shown), which may be any hardware storage device for maintaining data accessible to computing device 300. For example, storage devices may include one or more hard disk drives, solid state drives, tape drives, and/or any other storage devices. The storage devices may be located in computing device 300 and/or in another device in communication with computing device 300.
[0046] Transactional computing device 350 may be a server computing device, a notebook, desktop, tablet, workstation, mobile device, or any other device suitable for executing the functionality described below. As detailed below, transactional computing device 350 may include a series of modules 354-356 for accessing services provided by computing device 300.
[0047] Transactional computing device 350 may use services of the computing device 300 to perform transactions. For example, transactional computing device 350 may be a banking device that processes money transfers or a commerce device that processes sales. Device interface 354 may initiate and manage connections with computing device 300. Specifically, the device interface 354 may send client requests to the computing device 300 for processing as described above. [0048] Application module 356 is an application that performs transactions on behalf of users interacting with transactional computing device 350. For example, application module 356 may be banking web page that provides access to banking services via the Internet. In another example, application module 356 may manage online sales of merchandise via a commerce site.
[0049] Display device 370 may be a serve computing device, a notebook, desktop, tablet, workstation, mobile device, or any other device suitable for executing the functionality described below. As detailed below, display device 370 may include a display module 372 fo displaying summary data generated by analysis module 316. Specifically, display module 372 can collect summary data from multiple server computing devices so that reports including data from multiple systems (e.g., a distributed system including any number of server computing devices) can be shown. For example, a report showing the average response time for each transaction type can be generated based on data from one or more server computing devices.
[0050] FIG. 4A is a flowchart of an example method 400 for execution by a computing device 100 for providing monitoring of server response times using a subsystem interface. Although execution of method 400 is described below with reference to computing device 100 of FIG. 1 , other suitable devices for execution of method 400 may be used, such as computing device 200 of FIG. 2. Method 400 may be implemented in the form of executable instructions stored on a machine-readable storage medium, such as storage medium 120, and/or in the form of electronic circuitry.
[0051 ] Method 400 may start in block 405 and continue to block 410, where computing device 100 uses a subsystem interface to determine file metrics of computing device 100 during a monitoring interval. The file metrics can be logged by computing device 100 as the file operations are performed. In block 415, computing device 100 uses the subsystem interface to determine processor utilization metrics of computing device 100 during the monitoring interval. Processor utilization metrics describe the performance of multiple cores or processors in a multi-processor system. [0052] At block 420, computing device 100 determines average response times for the monitoring interval based on the file metrics and the processor utilization metrics. Specifically, portions of the processor utilization metrics can be associated with a file operation and then used to determine a response time of the file operation. For example, FILE and PROCESS performance matrixes can be used to calculate response times as shown below:
Response time = SUM of (file-busy-time) of each file opened by the process - FILE-BUSY-TIME of the $RECEIVE file + CPU-BUSY-TIME
Where $RECEIVE is a special file used by processing units to receive and respond to messages.
[0053] In another example, the FILE measure entity is used to calculate the response time as shown below:
Response time = FILE-OPEN time of $RECEIVE file - FILE-BUSY time of SRECEIVE file
[0054] The average response times can then be used to create reports for review by an administrator. Based on the reports, the administrator may reconfigure computing device 100 in order to minimize future average response times. Method 400 may then proceed to block 425, where method 400 may stop.
[0055] FIG. 4B is a flowchart of an example method 450 for execution by a computing device 300 for providing monitoring of server response times using a network interface. Although execution of method 450 is described below with reference to computing device 300 of FIG. 3, other suitable devices for execution of method 450 may be used. Method 450 may be implemented in the form of executable instructions stored on a machine-readable storage medium, such as storage medium 120, and/or in the form of electronic circuitry.
[0056] Method 450 may start in block 455 and continue to block 460, where computing device 300 uses a communication interface to intercept messages initiated by a transactional computing device. Specifically, requests from the transactional computing device may be intercepted so that the requests can be examined as the requests are processed by computing device 300. Similarly, responses from computing device 300 to the transactional computing device may also be intercepted so that the responses can be examined before the responses are sent to the transactional computing device.
[0057] In block 465, minimum and maximum response times are determined for each message received from the transactional computing device. Fo example, if computing device 300 provides a web site, minimum and maximum response times can be determined for each web page. The minimum and maximum response times are determined based on the amount of time that elapses between the receipt of the request from the transactional computing device and the return of the response from computing device 300. For example, a response time of a message can be calculated as shown below:
Response Time = TIMESTAMP of the RESPOND - TIMESTAMP of the
RECEIVED message
Time timestamps may be recorded in real time by intercepting the functions of the communication interface used by the process that is being measured to receive and respond to a message. Communication interface functions are typically part of the operating system, but a communication interface may also be supplied by a separate entity that did not develop the operating system. In the second case, the communication interface usually depends on similar operating system functions.
[0058] The related operating system (OS) functions can be intercepted in a variety of manners. For example, the OS functions can be replaced with replacement functions, which each has identical interface as the OS function but once called executes the OS function and records the time (either before o after the OS function call). In another example, the vendor of the OS function provides an interface and calls an external function to record the time and forward the time to memory accessible to a performance monitor. In yet another example, an intercept library is provided to intercept the OS function from within the object of the calling program. In this example, an intercept library is attached to each program to be monitored. [0059] Because the response times are determined based on interactions with a communication interface, computing device 300 can perform the calculation regardless of the operating system that is installed on computing device 300. Method 450 may then proceed to block 475, where method 400 may stop.
[0060] In some cases, the minimum and maximum response times of each transaction type can be used to further determine average response times for each transaction type, as shown in block 470. The minimum and maximum response times along with the average times can then be displayed in a report for review by an administrator of computing device 300.
[0061 ] The foregoing disclosure describes a number of example embodiments for providing monitoring of server response times. Sn this manner, the embodiments disclosed herein improve determining response types by a subsystem or communication interface to obtain performance metrics independent of the implementation of the operating system of the computing device.

Claims

CLASMS We claim:
1 . A computing device for monitoring server response times, the computing device comprising:
a measuring module to monitor performance metrics;
a metric interface to provide access to the measuring module;
a plurality of processors to perform a plurality of messages; and a performance monitor for execution by at least one of the plurality of processors to:
use the metric interface to obtain the performance metrics: and determine a plurality of response times for the computing device based on the performance metrics.
2. The computing device of claim 1 , wherein the metric interface is a subsystem interface and the performance metrics comprise a plurality of file metrics for a plurality of file operations and processor utilization for the plurality of processors, and wherein the performance monitor is further to determine an average response time for the computing device based on the plurality of response times.
3. The computing device of claim 2, wherein the plurality of file operations are monitored in parallel such that the plurality of file metrics are staggered to provide continuous coverage.
4. The computing device of claim 2, wherein idle time of the plurality of processors is excluded from the determination of the plurality of response times.
5. The computing device of claim 2, wherein the subsystem interface comprises operating system (OS) function calls that can access a plurality of counters, wherein each of the plurality of counters is associated with one of the plurality of file metrics or the processor utilization.
6. The computing device of ciaim 1 , wherein the metric interface is a communication interface and the performance metrics correspond to a plurality of communication metrics, and wherein the communication interface is used to interrupt the plurality of messages initiated by a plurality of transactional devices to obtain the plurality of communication metrics.
7. The computing device of claim 6, wherein the plurality of response times comprises a minimum response time and a maximum response time for each of the plurality of messages, and wherein the performance monitor is further to use the minimum response time and the maximum response time to determine the average response time for each transaction type of the plurality of messages.
8. The computing device of claim 1 , wherein the performance monitor is further to send the plurality of response times to a display device that is configured to display a performance report based on the plurality of response times.
9. A method for monitoring server response times, the method comprising: using a subsystem interface to determine a plurality of file metrics for a plurality of file operations of a computing device during a monitoring interval, wherein the subsystem interface provides access to an external measuring module configured to monitor performance metrics;
using the subsystem interface to determine processor utilization during the plurality of file operations to determine a plurality of processor metrics, wherein the plurality of processor metrics are associated with a plurality of processors of the computing device; and
determining an average response time for the computing device during the monitoring interval based on the plurality of file metrics and the plurality of processor metrics, wherein idle time of the plurality of processors is excluded from the determination of the average response time.
10. The method of claim 9, wherein the plurality of file operations are monitored in parallel such that the plurality of file metrics are staggered to provide continuous coverage,
1 1. The method of claim 9, wherein monitoring of each of the plurality of file metrics is initiated in response to a file open command,
12. The method of claim 9, wherein the subsystem interface uses operating system (OS) function calls to access a plurality of counters to determine the plurality of file metrics and the processor utilization, and wherein the plurality of counters are managed by the external measuring module.
13. A non-transitory machine-readable storage medium encoded with instructions executable by a processor for monitoring server response times, the machine-readable storage medium comprising instructions to:
use a communication interface to determine a plurality of communication metrics for a plurality of messages of a computing device, wherein the communication interface provides access to an internal measuring module configured to monitor the plurality of messages; and
use the plurality of communication metrics to determine a minimum response time and a maximum response time for each of the plurality of messages.
14. The non-transitory machine-readable storage medium of claim 13, wherein the instructions are further to use the minimum response time and the maximum response time to determine an average response time for each transaction type of the plurality of messages.
15. The non-transitory machine-readable storage medium of claim 13, wherein the communication interface uses a plurality of hooks to intercept the plurality of messages during messaging events to determine the plurality of communication metrics.
PCT/US2015/011108 2015-01-13 2015-01-13 Server response time monitoring WO2016114758A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2015/011108 WO2016114758A1 (en) 2015-01-13 2015-01-13 Server response time monitoring

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2015/011108 WO2016114758A1 (en) 2015-01-13 2015-01-13 Server response time monitoring

Publications (1)

Publication Number Publication Date
WO2016114758A1 true WO2016114758A1 (en) 2016-07-21

Family

ID=56406157

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2015/011108 WO2016114758A1 (en) 2015-01-13 2015-01-13 Server response time monitoring

Country Status (1)

Country Link
WO (1) WO2016114758A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10680908B2 (en) 2017-05-23 2020-06-09 International Business Machines Corporation User interface with expected response times of commands

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020198985A1 (en) * 2001-05-09 2002-12-26 Noam Fraenkel Post-deployment monitoring and analysis of server performance
US20030110007A1 (en) * 2001-07-03 2003-06-12 Altaworks Corporation System and method for monitoring performance metrics
US20040215768A1 (en) * 2002-10-02 2004-10-28 Yossi Oulu System and methods for monitoring application server performance
US20080168177A1 (en) * 2007-01-04 2008-07-10 Yahoo! Inc. Estimation of web client response time
US20100082320A1 (en) * 2008-09-30 2010-04-01 Wood Timothy W Accuracy in a prediction of resource usage of an application in a virtual environment

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020198985A1 (en) * 2001-05-09 2002-12-26 Noam Fraenkel Post-deployment monitoring and analysis of server performance
US20030110007A1 (en) * 2001-07-03 2003-06-12 Altaworks Corporation System and method for monitoring performance metrics
US20040215768A1 (en) * 2002-10-02 2004-10-28 Yossi Oulu System and methods for monitoring application server performance
US20080168177A1 (en) * 2007-01-04 2008-07-10 Yahoo! Inc. Estimation of web client response time
US20100082320A1 (en) * 2008-09-30 2010-04-01 Wood Timothy W Accuracy in a prediction of resource usage of an application in a virtual environment

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10680908B2 (en) 2017-05-23 2020-06-09 International Business Machines Corporation User interface with expected response times of commands
US11057280B2 (en) 2017-05-23 2021-07-06 International Business Machines Corporation User interface with expected response times of commands

Similar Documents

Publication Publication Date Title
US9584597B2 (en) Hardware level generated interrupts indicating load balancing status for a node in a virtualized computing environment
US9369521B2 (en) Naming of distributed business transactions
US20210184947A1 (en) Automatic capture of detailed analysis information based on remote server analysis
US9866573B2 (en) Dynamic malicious application detection in storage systems
US9712410B1 (en) Local metrics in a service provider environment
US9584364B2 (en) Reporting performance capabilities of a computer resource service
US11582130B2 (en) Performance monitoring in a distributed storage system
US9037555B2 (en) Asynchronous collection and correlation of trace and communications event data
US8224624B2 (en) Using application performance signatures for characterizing application updates
US9223622B2 (en) Capacity planning of multi-tiered applications from application logs
US20130080502A1 (en) User interface responsiveness monitor
WO2015179575A1 (en) Load generation application and cloud computing benchmarking
US20090307347A1 (en) Using Transaction Latency Profiles For Characterizing Application Updates
EP3126995A1 (en) Cloud computing benchmarking
WO2017123271A1 (en) Performance-based migration among data storage devices
US10191844B2 (en) Automatic garbage collection thrashing monitoring
WO2016114758A1 (en) Server response time monitoring
US20050125784A1 (en) Hardware environment for low-overhead profiling
US20230066698A1 (en) Compute instance warmup operations
Tak et al. Resource accounting of shared it resources in multi-tenant clouds
US10713103B2 (en) Lightweight application programming interface (API) creation and management
US10732852B1 (en) Telemetry service
US8881156B2 (en) Apportioning summarized metrics based on unsummarized metrics in a computing system
US20230205667A1 (en) Instrumentation system for determining performance of distributed filesystem
US20220308976A1 (en) Automatically detecting workload type-related information in storage systems using machine learning techniques

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15878200

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15878200

Country of ref document: EP

Kind code of ref document: A1