IP Library Granted Patent US 10,409,704
Granted Patent B1
US 10,409,704 · App. 14/875,136 · Granted Sep 10, 2019

Systems and methods for resource utilization reporting and analysis

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 10,409,704
App. No.
14/875,136
Filed
Oct 5, 2015
Granted
Sep 10, 2019
Kind
B1
Art Unit
2196
USPC
718/104
Abstract

In an embodiment, a method includes receiving time-series data related to individual utilization rates of a plurality of central processing unit (CPU) cores. The method also includes, responsive to a trigger, transforming at least a portion of the individual utilization rates into a compressed value format, the transforming comprising: determining, from at least a portion of the time-series data, CPU-core utilization values of the plurality of CPU cores for a time constraint; evaluating the CPU-core utilization values against a preconfigured set of non-overlapping value ranges; responsive to the evaluating, determining a quantity of the CPU-core utilization values that correspond to each non-overlapping value range of the preconfigured set of non-overlapping value ranges; and generating a CPU-core utilization snapshot comprising the determined quantity of each non-overlapping value range of the preconfigured set of non-overlapping value ranges.

Claims (57)

1. A method comprising, by a computer system:

receiving and monitoring, in real-time, time-series data related to individual utilization rates of a plurality of central processing unit (CPU) cores;

responsive to a trigger, transforming at least a portion of the individual utilization rates into a compressed value format that excludes identification of the plurality of CPU cores, wherein the compressed value format defines a preconfigured set of non-overlapping value ranges for CPU-core utilization rates, and wherein the transforming comprises:

determining, from at least a portion of the time-series data, CPU-core utilization values of the plurality of CPU cores for a time constraint;

evaluating the CPU-core utilization values against the preconfigured set of non-overlapping value ranges for CPU-core utilization rates, the evaluating comprising determining, for each CPU-core utilization value of the CPU-core utilization values, which non-overlapping value range of the preconfigured set of non-overlapping value ranges includes the CPU-core utilization value;

responsive to the evaluating, determining a quantity of the CPU-core utilization values that correspond to each non-overlapping value range of the preconfigured set of non-overlapping value ranges;

wherein, for each non-overlapping value range of the preconfigured set of non-overlapping value ranges, the determined quantity represents a total number of the plurality of CPU cores for which the CPU-core utilization values are included by the non-overlapping value range; and

generating a CPU-core utilization snapshot comprising the determined quantity of each non-overlapping value range of the preconfigured set of non-overlapping value ranges, wherein the CPU-core utilization snapshot excludes identification of which specific CPU cores of the plurality of CPU cores correspond to which non-overlapping value range of the preconfigured set of non-overlapping value ranges; and

storing information related to the CPU-core utilization snapshot in a data store in place of the time-series data related to individual utilization rates, thereby conserving resources of the computer system.

2. The method of claim 1 , comprising causing the transforming to repeated at regular intervals in relation to then-current time-series data.

3. The method of claim 1 , comprising storing a representation of the CPU-core utilization snapshot.

4. The method of claim 3 , comprising, responsive to a context switch, balancing load across the plurality of CPU cores using the stored information related to the CPU-core utilization snapshot.

5. The method of claim 3 , comprising:

receiving a request for at least a portion of the CPU-core utilization values;

retrieving the representation of the CPU-core utilization snapshot; and

publishing the representation to a requestor.

6. The method of claim 1 , the method comprising performing infrastructure monitoring in relation to the CPU-core utilization snapshot.

7. The method of claim 1 , comprising:

generating a visualization of the CPU-core utilization snapshot; and

causing the visualization to be displayed.

8. An information handling system comprising a processor, wherein the processor is operable to implement a method comprising:

receiving and monitoring, in real-time, time-series data related to individual utilization rates of a plurality of central processing unit (CPU) cores;

responsive to a trigger, transforming at least a portion of the individual utilization rates into a compressed value format that excludes identification of the plurality of CPU cores, wherein the compressed value format defines a preconfigured set of non-overlapping value ranges for CPU-core utilization rates, and wherein the transforming comprises:

determining, from at least a portion of the time-series data, CPU-core utilization values of the plurality of CPU cores for a time constraint;

evaluating the CPU-core utilization values against a preconfigured set of non-overlapping value ranges for CPU-core utilization rates, the evaluating comprising determining, for each CPU-core utilization value of the CPU-core utilization values, which non-overlapping value range of the preconfigured set of non-overlapping value ranges includes the CPU-core utilization value;

responsive to the evaluating, determining a quantity of the CPU-core utilization values that correspond to each non-overlapping value range of the preconfigured set of non-overlapping value ranges;

wherein, for each non-overlapping value range of the preconfigured set of non-overlapping value ranges, the determined quantity represents a total number of the plurality of CPU cores for which the CPU-core utilization values are included by the non-overlapping value range; and

generating a CPU-core utilization snapshot comprising the determined quantity of each non-overlapping value range of the preconfigured set of non-overlapping value ranges, wherein the CPU-core utilization snapshot excludes identification of which specific CPU cores of the plurality of CPU cores correspond to which non-overlapping value range of the preconfigured set of non-overlapping value ranges; and

storing information related to the CPU-core utilization snapshot in a data store in place of the time-series data related to individual utilization rates, thereby conserving resources of the information handling system.

9. The information handling system of claim 8 , the method comprising causing the transforming to repeated at regular intervals in relation to then-current time-series data.

10. The information handling system of claim 8 , the method comprising storing a representation of the CPU-core utilization snapshot.

11. The information handling system of claim 10 , the method comprising, responsive to a context switch, balancing load across the plurality of CPU cores using the stored information related to the CPU-core utilization snapshot.

12. The information handling system of claim 10 , the method comprising:

receiving a request for at least a portion of the CPU-core utilization values;

retrieving the representation of the CPU-core utilization snapshot; and

publishing the representation to a requestor.

13. The information handling system of claim 8 , the method comprising performing infrastructure monitoring in relation to the CPU-core utilization snapshot.

14. The information handling system of claim 8 , the method comprising:

generating a visualization of the CPU-core utilization snapshot; and

causing the visualization to be displayed.

15. A computer-program product comprising a non-transitory computer-usable medium having computer-readable program code embodied therein, the computer-readable program code adapted to be executed to implement a method comprising:

receiving and monitoring, in real-time, time-series data related to individual utilization rates of a plurality of central processing unit (CPU) cores;

responsive to a trigger, transforming at least a portion of the individual utilization rates into a compressed value format that excludes identification of the plurality of CPU cores, wherein the compressed value format defines a preconfigured set of non-overlapping value ranges for CPU-core utilization rates, and wherein the transforming comprises:

determining, from at least a portion of the time-series data, CPU-core utilization values of the plurality of CPU cores for a time constraint;

evaluating the CPU-core utilization values against the preconfigured set of non-overlapping value ranges for CPU-core utilization rates, the evaluating comprising determining, for each CPU-core utilization value of the CPU-core utilization values, which non-overlapping value range of the preconfigured set of non-overlapping value ranges includes the CPU-core utilization value;

responsive to the evaluating, determining a quantity of the CPU-core utilization values that correspond to each non-overlapping value range of the preconfigured set of non-overlapping value ranges;

wherein, for each non-overlapping value range of the preconfigured set of non-overlapping value ranges, the determined quantity represents a total number of the plurality of CPU cores for which the CPU-core utilization values are included by the non-overlapping value range; and

generating a CPU-core utilization snapshot comprising the determined quantity of each non-overlapping value range of the preconfigured set of non-overlapping value ranges, wherein the CPU-core utilization snapshot excludes identification of which specific CPU cores of the plurality of CPU cores correspond to which non-overlapping value range of the preconfigured set of non-overlapping value ranges; and

storing information related to the CPU-core utilization snapshot in a data store in place of the time-series data related to individual utilization rates, thereby conserving resources of a computer system.

16. The computer-program product of claim 15 , the method comprising causing the transforming to repeated at regular intervals in relation to then-current time-series data.

17. The computer-program product of claim 15 , the method comprising storing a representation of the CPU-core utilization snapshot.

18. The computer-program product of claim 17 , the method comprising, responsive to a context switch, balancing load across the plurality of CPU cores using the stored information related to the CPU-core utilization snapshot.

19. The computer-program product of claim 17 , the method comprising:

receiving a request for at least a portion of the CPU-core utilization values;

retrieving the representation of the CPU-core utilization snapshot; and

publishing the representation to a requestor.

20. The computer-program product of claim 15 , the method comprising performing infrastructure monitoring in relation to the CPU-core utilization snapshot.