IP Library › Granted Patent US 12,235,748
Granted Patent B2
US 12,235,748 · App. 18/391,626 · Granted Feb 25, 2025

Predicting application performance from resource statistics

Inventor: Philip Eugene Cannata (Austin, TX)
Assignee: Oracle International Corporation
G06F11/3452G06F11/3013G06F11/3409G06F11/3447G06N3/04G06N20/00
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 12,235,748
App. No.
18/391,626
Granted
Feb 25, 2025
Kind
B2
Abstract

Embodiments include systems and methods for generating a data throughput estimation model. A system may be monitored to measure both (a) data throughput and (b) computing statistics of one or more computing resources to generate an initial data set. The relationship between the data throughput and the computing statistics, in the initial data set, is used to generate a data throughput estimation model. The data throughput estimation model may be generated using a machine learning model, a neural network algorithm, boosting decision tree algorithm, and/or a random forest decision tree algorithm. Additional measurements of the computing resource statistics may be applied to the data throughput estimation model to estimate data throughput.

Claims (39)

1. A method comprising:

determining, by a resource monitoring module associated with a computing system, a first set of values for at least one resource statistic for the computing system executing during a first period of time;

measuring, by a data monitoring module associated with the computing system, throughput for data transmissions corresponding to the computing system during the first period of time; and

training a model, based on the first set of values for the at least one resource statistic and the measured throughput for the data transmissions during the first period of time, to compute throughput as a function of the at least one resource statistic,

wherein the at least one resource statistic does not include any measurements of the throughput for data transmissions corresponding to the computing system;

wherein the method is performed by at least one device including a hardware processor.

2. The method of claim 1 , wherein the at least one resource statistic includes information corresponding to a processor, CPU, core, thread, memory, and/or cache utilization corresponding to the computing system.

3. The method of claim 1 , wherein the at least one resource statistic includes information corresponding to a processor, CPU, core, thread, memory, and/or cache saturation corresponding to the computing system.

4. The method of claim 1 , wherein determining the model which computes throughput as a function of the at least one resource statistic comprises executing a boosting decision tree algorithm.

5. The method of claim 1 , wherein determining the model which computes throughput as a function of the at least one resource statistic comprises executing a random forest algorithm.

6. The method of claim 1 , wherein determining the model which computes throughput as a function of the at least one resource statistic comprises executing a neural network algorithm.

7. The method of claim 1 , wherein determining the model which computes throughput as a function of the at least one resource statistic comprises executing a statistical machine learning algorithm.

8. The method of claim 1 , further comprising:

determining a second set of values for the at least one resource statistic for the computing system executing during a second period of time; and

applying the second set of values to the model to estimate the throughput for data transmissions corresponding to the computing system during the second period of time.

9. The method of claim 1 , wherein the computing system includes an operating system executing on a machine, and the at least one resource statistic is an operating system resource statistic for the operating system.

10. The method of claim 1 , wherein the computing system includes a machine, and the at least one resource statistic is a hardware statistic for the machine.

11. The method of claim 1 , wherein the computing system includes a transmitting device and the at least one resource statistic includes an aggregate throughput value of data received from the transmitting device at a plurality of receiving devices.

12. The method of claim 1 , wherein the at least one resource statistic comprises thread migration.

13. The method of claim 1 , wherein the at least one resource statistic comprises inter-processor cross-calls.

14. The method of claim 1 , wherein the at least one resource statistic comprises an operating system resource statistic that has a correlation value above a threshold with a thread migration statistic.

15. The method of claim 1 , the operations further comprising:

after training the model, executing one or more of machine learning or a neural network algorithm to update the model based on one or more changes to the computer system.

16. A method comprising:

determining a second set of values for at least one resource statistic for a computing system executing during a second period of time;

training a model to estimate throughput as a function of the at least one resource statistic, the model determined by correlating

(a) a determined first set of values for the at least one resource statistic for the computing system executing during a first period of time, wherein the first set of values for the at least one resource statistic is determined using a resource monitoring module associated with the computing system, with

(b) the throughput for data transmissions during the first period of time, wherein the throughput for data transmissions during the first period of time is determined using a data monitoring module associated with the computing system;

wherein the at least one resource statistic does not include any measurements of the throughput for data transmissions corresponding to the computing system;

wherein the method is performed by at least one device including a hardware processor.

17. The method of claim 16 , wherein the computing system includes a transmitting device that transmits the data transmissions during the first period of time and transmits the data transmissions during the second period of time.

18. The method of claim 16 , wherein the computing system includes a receiving device that receives the data transmissions during the first period of time and receives the data transmissions during the second period of time.

19. The method of claim 16 , further comprising:

applying the second set of values to the model.

20. A method comprising:

determining, by a resource monitoring module associated with a computing system, a first set of values for at least one data transfer statistic for the computing system executing during a first period of time, wherein the at least one data transfer statistic comprises measurements of throughput for data transmissions corresponding to the computing system;

determining, by a data monitoring module associated with the computing system, a second set of values for at least one non-data transfer statistic for the computing system during the first period of time, wherein the at least one non-data transfer statistic does not include any measurements of the throughput for data transmissions corresponding to the computing system;

training a model to estimate data transfer statistics based on non-data transfer statistics, based on the first set of values for the at least one data transfer statistic and the second set of values for the at least one non-data transfer statistic;

wherein the method is performed by at least one device including a hardware processor.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2023
From: CANNATA, PHILIP EUGENE
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 065935/0873 →
Continuity (2)
Continuation 16202532 · Nov 28, 2018
Related Publication 20240118987A1 · Apr 11, 2024
References Cited (17)
US 8898096B2 · Caves et al. · 2014 [cited by applicant]
US 9229838B2 · Chang et al. · 2016 [cited by applicant]
US 9635570B2 · Ronen et al. · 2017 [cited by applicant]
US 9798629B1 · Shilane et al. · 2017 [cited by applicant]
US 10489215B1 · Wen et al. · 2019 [cited by applicant]
US 20060010101A1 · Suzuki et al. · 2006 [cited by applicant]
US 20110320391A1 · Chen et al. · 2011 [cited by applicant]
US 20120041914A1 · Tirunagari · 2012 [cited by applicant]
US 20160078368A1 · Kakhandiki et al. · 2016 [cited by applicant]
US 20160350198A1 · Neuvirth-Telem et al. · 2016 [cited by applicant]
US 20170153963A1 · Chahal et al. · 2017 [cited by applicant]
US 20170220942A1 · Baldini et al. · 2017 [cited by applicant]
US 20190213099A1 · Schmidt et al. · 2019 [cited by applicant]
CN 102004671B · 2013 [cited by applicant]
Berlinska, The statistical models of parallel applications performance, Annales UMCS Informatica AI 3 (2005) 199-204. [cited by applicant]
Jain et al., Predicting Application Performance using Supervised Learning on Communication Features, SC '13: Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis. [cited by applicant]
Kundu et al., Application Performance Modeling in a Virtualized Environment, HPCA—16 2010 The Sixteenth International Symposium on High-Performance Computer Architecture. [cited by applicant]