IP Library Granted Patent US 9,069,819
Granted Patent B1
US 9,069,819 · App. 13/871,740 · Granted Jun 30, 2015

Method and apparatus for reliable I/O performance anomaly detection in datacenter

Inventors: Sudhir Kumar (Pune, IN); Venkeepuram R. Satish (Fremont, CA); Ashish Karnik (Pune, IN)
Assignee: Symantec Corporation
G06F11/3051
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,069,819
App. No.
13/871,740
Granted
Jun 30, 2015
Kind
B1
Abstract

A method and apparatus for reliable I/O performance anomaly detection. In one embodiment of the method, input/output (I/O) performance data values are stored in memory. A first performance data value is calculated as a function of a first plurality of the I/O performance data values stored in the memory. A first value based on the first performance data value is calculated. An I/O performance data value is compared to the first value. A message is generated in response to comparing the I/O performance value to the first value.

Claims (78)

1. A method comprising:

storing input/output (I/O) performance data values in memory;

calculating a first performance data value as a function of a first plurality of the I/O performance data values stored in the memory;

calculating a first value based on the first performance data value;

comparing a new I/O performance data value to the first value;

generating a message in response to comparing the new I/O performance data value to the first value;

mapping time stamps to I/O performance data values, respectively, in-memory, wherein each time stamp comprises a date and a time of day;

calculating a second performance data value as a function of a second plurality of I/O performance data values stored in the memory, wherein

each of the second plurality of I/O performance data values has a respective time stamp time of day that is equal to a time stamp time of day for the new I/O performance data value, and

each of the second plurality of I/O performance data values has a time stamp date that is earlier than a time stamp date for the new I/O performance data value;

calculating a second value based on the second I/O performance data value; and

comparing the new I/O performance data value to the second value, wherein

the message is generated in response to comparing the I/O performance data value to the second value.

2. The method of claim 1 wherein the first plurality of the I/O data performance values is defined by a last N of the I/O performance data values stored in the memory, wherein N is an integer.

3. The method of claim 1 further comprising;

store the new I/O performance data value in the memory;

calculate another first performance data value as a function of another first plurality of I/O performance data values stored in the memory;

calculate another first value based on the another first performance data value; and

compare another new I/O performance data value to the another first value, wherein the message is generated in response to comparing the another new I/O performance data value to the another first value.

4. The method of claim 3 further comprising:

map time stamps to I/O performance data values, respectively, in memory, wherein each time stamp comprises a date and a time of day;

calculate a second performance data value as a function of a second plurality of I/O performance data values stored in the memory, where each of the second plurality of I/O performance data values has a respective time stamp time of day that is equal to a time stamp time of day for the new I/O performance data value, and where each of the second plurality of I/O performance data values has a time stamp date that is earlier than a time stamp date for the new I/O performance data value;

calculate a second value based on the second I/O performance data value; and

compare the new I/O performance data value to the second value, wherein the message is generated in response to comparing the new I/O performance data value to the second value.

5. The method of claim 4 further comprising:

calculate another second I/O performance data value as a function of another second plurality of I/O performance data values stored in the memory, where each of the another second plurality of I/O performance data values has a respective time stamp time of day that is equal to a time stamp time of day for the another new I/O performance data value, and where each of the another second plurality of I/O performance data values has a time stamp date that is earlier than a time stamp date for the another new I/O performance data value;

calculate another second value based on the another second I/O performance data value; and

compare the another new I/O performance data value to the another second value, wherein

the message is generated in response to comparing the another new I/O performance data value to the another second value.

6. The method of claim 1 wherein the message is generated if the new I/O performance data value exceeds the first value.

7. The method of claim 1 wherein each of the I/O performance data values comprises an amount of time to complete a respective I/O transaction once it is generated.

8. The method of claim 1 wherein each of the I/O performance data values comprises an amount of time it takes a server computer system to respond to a request from a client computer system once the request is received by the server computer system.

9. The method of claim 1 wherein first performance data value is an average of the first plurality of the I/O performance data values.

10. The method of claim 1 wherein the I/O performance data values are generated for one of a host bus adapter, a server, a network switch, a network router, a network bridge, or a storage array port.

11. A method comprising:

generating I/O performance data values;

generating first performance data values, wherein

each of the first performance data values is calculated as a function of first subsets, respectively, of the I/O performance data values;

generating first values as a function of the first performance data values, respectively;

comparing a plurality of the I/O performance data values with the first values, respectively;

generating a respective time stamp for each of the I/O performance data values, wherein

each of the time stamps comprise a time of day and date;

generating second performance data values as a function of second subsets, respectively, of the I/O performance data values, wherein

the time stamp times, but not time stamp dates, for I/O performance data values of a respective second subset are identical;

generating second values as a function of the second performance data values, respectively; and

for each of Q or more of the I/O performance data values that exceed their respective first values, comparing the I/O performance data value with its respective second value.

12. The method of claim 11 further comprising:

generate a message in response to determining that Q or more of the plurality of I/O performance data values exceed their respective first values, wherein Q is an integer.

13. The method of claim 11 wherein the message is generated in response to determining that each of Q or more of the I/O performance data values exceed its respective second value.

14. A computer readable memory (CRM) storing computer executable instructions, wherein a method is performed in response to executing the instructions, the method comprising:

storing input/output (I/O) performance data values in memory;

calculating a first performance data value as a function of a first plurality of the I/O performance data values stored in the memory;

calculating a first value based on the first performance data value;

comparing a new I/O performance data value to the first value;

generating a message in response to comparing the new I/O performance data value to the first value;

mapping time stamps to the I/O performance data values, respectively, in memory, wherein

each time stamp comprises a date and a time of day;

calculating a second performance data value as a function of a second plurality of I/O performance data values stored in the memory, wherein

each of the second plurality of I/O performance data values has a respective time stamp time of day that is equal to a time stamp time of day for the new I/O performance data value, and

each of the second plurality of I/O performance data values has a time stamp date that is earlier than a time stamp date for the new I/O performance data value;

calculating a second value based on the second I/O performance data value; and

comparing the new I/O performance data value to the second value, wherein

the message is generated in response to comparing the new I/O performance data value to the second value.

15. The CRM of claim 14 wherein the method further comprises:

store the new I/O performance data value in the memory;

calculate another first performance data value as a function of another first plurality of I/O performance data values stored in the memory;

calculate another first value based on the another first performance data value;

compare another new I/O performance data value to the another first value, wherein the message is generated in response to comparing the another new I/O performance data value to the another first value.

16. The CRM of claim 15 wherein the method further comprises:

map time stamps to the I/O performance data values, respectively, in memory, wherein each time stamp comprises a date and a time of day;

calculate a second performance data value as a function of a second plurality of I/O performance data values stored in the memory, where each of the second plurality of I/O performance data values has a respective time stamp time of day that is equal to a time stamp time of day for the I/O performance data value, and where each of the second plurality of I/O performance data values has a time stamp date that is earlier than a time stamp date for the I/O performance data value;

calculate a second value based on the second I/O performance data value; and

compare the new I/O performance data value to the second value, wherein the message is generated in response to comparing the new I/O performance data value to the second value.

17. The CRM of claim 16 wherein the method further comprises:

calculate another second performance data value as a function of another second plurality of I/O performance data values stored in the memory, where each of the another second plurality of I/O performance data values has a respective time stamp time of day that is equal to a time stamp time of day for the another I/O performance data value, and where each of the another second plurality of I/O performance data values has a time stamp date that is earlier than a time stamp date for the another I/O performance data value;

calculate another second value based on the another second I/O performance data value; and

compare the another new I/O performance data value to the another second value, wherein

the message is generated in response to comparing the another new I/O performance data value to the another new second value.

Assignments (10)
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2013
From: KUMAR, SUDHIR; SATISH, VENKEEPURAM R.; KARNIK, ASHISH
To: SYMANTEC CORPORATION
Reel/Frame 030705/0778 →