# US 10,503,535 B1 · Requirements based performance monitoring for virtual machine networks

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,503,535 B1
- Document ID: US10503535B1
- Status: Granted
- Kind: B1
- Application number: 15/649,619
- Filed: 2017-07-13
- Granted: 2019-12-10
- Earliest claimed: 2017-07-13
- Assignees: EMC IP Holding Company LLC
- Applicants: EMC IP Holding Company LLC
- Inventors: Charles Hickey; Manivannan Chithirasen
- Web page: https://patentgrep.com/patent/US10503535B1

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 3/0613: {in relation to throughput}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 11/3006: {where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems (multiprogramming arrangements G06F9/46; allocation of resources G06F9/50)}
- G06F 11/301: {where the computing system is a virtual computing platform, e.g. logically partitioned systems (virtual machines G06F9/45533; logical partitioning of resources G06F9/5077)}
- G06F 11/3034: {where the computing system component is a storage system, e.g. DASD based or network based (digital input from or digital output to record carriers G06F3/06; digital recording or reproducing G11B20/18; for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS], H04L67/1097)}
- G06F 11/328: {Computer systems status display (G06F11/327 takes precedence)}
- G06F 11/3409: {for performance assessment}
- G06F 11/3419: {by assessing time}
- G06F 11/3485: {for I/O devices}
- G06F 11/3476: {Data logging (G06F11/14, G06F11/2205 take precedence)}
- G06F 2009/45591: {Monitoring or debugging support}
- G06F 2201/815: Virtual
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Embodiments are directed to a requirements-based performance monitor (RBPM) that presents users, through a command line interface or graphical user interface, with a single number in the range of 1-100% and/or a color-coded indicator that allows users to readily tell if the I/O needs of their primary applications in a virtualized computing system are being sufficiently satisfied. The RBPM takes into account both device latency, throughput, IOPS, and slow I/O measurements and primary application requirements. The process uses detailed device latency tables for each device to allow a user to find the particular device and time that performance degradation occurred.

## Claims

### Claim 1

A computer-implemented method of measuring performance of an application running in a virtual computer network, comprising:
receiving, for each device of a plurality of devices in the network, an existing flow of device operating parameters;
measuring a performance for each device and the network as a whole over a plurality of durations for a specified time period in terms of the device operating parameters;
analyzing a workload of a primary application of a target device of the plurality of devices in terms of data transfer variables of the primary application to determine an envelope of I/O (input/output) requirements of the primary application, wherein the envelope is expressed as a three-dimensional set of n tables; and
producing a summary performance score for each device using measured performance and the envelope of I/O requirements to provide an indication of whether or not a required read/write performance of the primary application is satisfied, wherein the performance score is calculated using data variables comprising device throughput, input/output operations (IOPS), device latency, slow I/O counts exceeding one second, average block size, and read-to-write ratio.

### Claim 2 (depends on 1)

The method of claim 1, wherein the the average block size is calculated by dividing the device throughput by the IOPS, and the read-to-write ratio is calculated by dividing a read throughput by a combined read and write throughput, and wherein the envelope of I/O requirements is a table in the set of n tables that lists, for a given average transfer size and throughput level, an expected latency in microseconds.

### Claim 3 (depends on 2)

The method of claim 2 wherein the plurality of durations comprises a five-minute view, a 60-minute view, a 1-day view, and a 7-day view, and wherein the specified time period comprises a time period on the order of one to ten days.

### Claim 4 (depends on 3)

The method of claim 3 further comprising measuring a total amount of data moved in the network for all devices of the plurality of devices over the specified time period.

### Claim 5 (depends on 4)

The method of claim 4 further comprising generating a report containing a current, average, and lowest I/O performance score as a simple percentage within the range of 0 to 100%.

### Claim 6 (depends on 1)

The method of claim 1 further comprising summarizing the required read/write performance of the primary application in tabular form to produce a requirements table covering a defined range of possible workloads of the primary application.

### Claim 7 (depends on 6)

The method of claim 6 further comprising comparing the measured performance for each device against the requirements table to produce a performance score that provides the indication of whether or not a required read/write performance of the primary application is satisfied.

### Claim 8 (depends on 7)

The method of claim 7 further comprising:
expressing the performance score as a percentage score in the range of 0 to 100 percent; assigning a color code to defined sub-ranges in the range; and
displaying the performance score as at least one of a numeric percentage and the color code to a user through a graphical user interface.

### Claim 9 (depends on 8)

The method of claim 8 wherein the color code comprises a green display for a range of 90 to 100 percent, a yellow display for a range of 70 to 90 percent, and a red display for a range of 0 to 70 percent.

### Claim 10 (depends on 6)

The method of claim 6 wherein the requirements table comprises a number n of latency tables each having a unique mix of read/write operations.

### Claim 11 (depends on 10)

The method of claim 10 wherein each table comprises a number of cells, wherein a row of a cell is selected by average throughput and a column of the cell is selected by average transfer block size, and value in the cell represents a target latency in a unit of time.

### Claim 12 (depends on 1)

The method of claim 1 wherein the primary application comprises a deduplication backup process executed by a server computer in the network, and which comprises a deduplication backup server running a Data Domain file system (DDFS).

### Claim 13

An apparatus measuring performance of an application running in a virtual computer network, comprising:
in interface receiving, for each device of a plurality of devices in the network, an existing flow of device operating parameters, the device operating parameters comprising an input/output operations (IOPS) rate, device throughput, device latency, and slow input/output (I/O) counts representing I/O operations exceeding one second in duration;
a processing component measuring a performance for each device and the network as a whole over a plurality of durations for a specified time period in terms of the device operating parameters, analyzing a workload of a primary application of a target device of the plurality of devices in terms of data transfer variables of the primary application to determine an envelope of I/O requirements of the primary application, wherein the envelope is expressed as a three-dimensional set of n tables, and measuring a total amount of data moved in the network for all devices of the plurality of devices over the specified time period; and
a reporting component producing a summary performance score for each device using measured performance and the envelope of I/O requirements to provide an indication of whether or not a required read/write performance of the primary application is satisfied, wherein the performance score is calculated using data variables comprising device throughput, input/output operations (IOPS), device latency, slow I/O counts exceeding one second, average block size, and read-to-write ratio.

### Claim 14 (depends on 13)

The apparatus of claim 13 wherein the average block size is calculated by dividing the device throughput by the IOPS, and the read-to-write ratio is calculated by dividing a read throughput by a combined read and write throughput, and wherein the envelope of I/O requirements is a table in the set of n tables that lists, for a given average transfer size and throughput level, an expected latency in microsecond, and further wherein the plurality of durations comprises a five-minute view, a 60-minute view, a 1-day view, and a 7-day view, and wherein the specified time period comprises a time period on the order of one to ten days.

### Claim 15 (depends on 14)

The apparatus of claim 14 wherein the processing component generates a report containing a current, average, and lowest I/O performance score as a simple percentage within the range of 0 to 100%, summarizes the required read/write performance of the primary application in tabular form to produce a requirements table covering a defined range of possible workloads of the primary application, and compares the measured performance for each device against the requirements table to produce a performance score that provides the indication of whether or not a required read/write performance of the primary application is satisfied.

### Claim 16 (depends on 15)

The apparatus of claim 15 further comprising:
a first graphical user interface (GUI) component expressing the performance score as a percentage score in the range of 0 to 100 percent and assigning a color code to defined sub-ranges in the range; and
a second GUI component displaying the performance score as at least one of a numeric percentage and the color code to a user through a display monitor, wherein the color code comprises a green display for a range of 90 to 100 percent, a yellow display for a range of 70 to 90 percent, and a red display for a range of 0 to 70 percent.

### Claim 17 (depends on 15)

The apparatus of claim 15 wherein the requirements table comprises a number n of latency tables each having a unique mix of read/write operations, wherein each table comprises a number of cells, wherein a row of a cell is selected by average throughput and a column of the cell is selected by average transfer block size, and value in the cell represents a target latency in a unit of time.

### Claim 18 (depends on 17)

The apparatus of claim 17 wherein the primary application comprises a deduplication backup process executed by a server computer in the network, and which comprises a deduplication backup server running a Data Domain file system (DDFS).

### Claim 19

A computer program product, comprising a non-transitory computer-readable medium having a computer-readable program code embodied therein, the computer-readable program code adapted to be executed by one or more processors to implement a method of measuring performance of an application running in a virtual computer network by:
receiving, for each device of a plurality of devices in the network, an existing flow of device operating parameters;
measuring a performance for each device and the network as a whole over a plurality of durations for a specified time period in terms of the device operating parameters;
analyzing a workload of a primary application of a target device of the plurality of devices in terms of data transfer variables of the primary application to determine an envelope of I/O (input/output) requirements of the primary application, wherein the envelope is expressed as a three-dimensional set of n tables; and
producing a summary performance score for each device using measured performance and the envelope of I/O requirements to provide an indication of whether or not a required read/write performance of the primary application is satisfied, wherein the performance score is calculated using data variables comprising device throughput, input/output operations (IOPS), device latency, slow I/O counts exceeding one second, average block size, and read-to-write ratio.

### Claim 20 (depends on 19)

The computer program product of claim 19, the average block size is calculated by dividing the device throughput by the IOPS, and the read-to-write ratio is calculated by dividing a read throughput by a combined read and write throughput, and wherein the envelope of I/O requirements is a table in the set of n tables that lists, for a given average transfer size and throughput level, an expected latency in microsecond.
