IP Library Granted Patent US 9,300,523
Granted Patent B2
US 9,300,523 · App. 13/563,063 · Granted Mar 29, 2016

System and method for performance management in a multi-tier computing environment

Inventors: Amir Alon (Cresskill, NJ); Yoram Yori Lavi (New York, NY); Mordechai Tal (Kfar Saba, IL); Adam Honen (Tel Aviv, IL); Dan Pinkus (Ramat Gan, IL); Amidan Tabak (Rosh Hain, IL)
Assignee: SAP SE
H04L41/044G06F11/3495G06Q10/10H04L43/103H04L67/125G06F11/3409G06F11/3419G06F2201/81G06F2201/865G06F2201/87G06F2201/875
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,300,523
App. No.
13/563,063
Granted
Mar 29, 2016
Kind
B2
Abstract

A method of profiling code executed within a monitored tier of a multi-tier computing system includes the steps of periodically sampling the code executed by processing enclaves of the monitored tier, determining in real-time the periodical sampling overhead, dynamically adjusting the periodical sampling rate, identifying the business context of each code sample, and merging request traffic data and profiling data for presenting to an operator of the multi-tier system.

Claims (44)

1. A method for profiling executable code executed within a monitored tier of a multi-tier computing system, the monitored tier including a plurality of processing enclaves, the method including the steps of:

periodically sampling the executable code executed by said plurality of processing enclaves of said monitored tier at a periodical sampling rate, thereby producing a plurality of code samples;

identifying a business context of each of said plurality of code samples, thereby producing profiling data having business context;

merging request-traffic data respective of the traffic of requests through said monitored tier, and profiling data according to the business context of the request traffic data and of the profiling data; and

determining in real-time the overhead associated with said step of periodically sampling the executable code, and accordingly dynamically adjusting the periodical sampling rate;

wherein said step of determining in real-time the overhead associated with said step of periodically sampling the executable code is performed by measuring CPU usage associated with execution of sampling code within said selected tier.

2. The method of claim 1 further comprising the step of analyzing said plurality of code samples for determining code hotspots.

3. The method of claim 2 further comprising the step of adding an i th instrumentation code from a set of N predetermined instrumentation codes, to the executable code executed by said monitored tier, said set of N predetermined instrumentation codes being sorted according to their respective overhead from the lightest to the heaviest, said i th instrumentation code employed for gathering information about a selected code hotspot.

4. The method of claim 3 wherein at least one of said set of N predetermined instrumentation codes being selected from the list consisting of:

an instrumentation code for counting a number of times a method was called;

an instrumentation code for measuring the amount of time spent within a method;

an instrumentation code for measuring the amount of CPU consumed in a method;

an instrumentation code for measuring the amount of time a method spent on input or output operations; and

an instrumentation code for measuring the amount of time a method was blocked by a thread.

5. The method of claim 3 further comprising the step of determining a total instrumentation overhead of all executed ones of said set of N predetermined instrumentation codes.

6. The method of claim 5 wherein in case said total instrumentation overhead exceeds an instrumentation threshold, removing said i th instrumentation code.

7. The method of claim 5 wherein, in case said total instrumentation overhead does not exceed an instrumentation threshold, re-iterating said steps of adding an i th instrumentation code and determining a total instrumentation overhead,

wherein said step of adding an i.sup.th instrumentation code is performed for an (i+1) th instrumentation code of said set of N predetermined instrumentation codes, and

wherein said steps of adding an i th instrumentation code and determining a total instrumentation overhead are re-iterated until i equals N or until said total instrumentation overhead exceeds said instrumentation threshold.

8. The method of claim 3 further comprising the step of gathering information about said selected code hotspot by employing each executed one of said set of N predetermined instrumentation codes for producing instrumentation data.

9. The method of claim 8 further comprising the step of merging the instrumentation data into the profiling data.

10. The method of claim 8 further comprising the step of initiating ad-hoc sampling of the executable code executed by said plurality of processing enclaves of said monitored tier according to analysis of the instrumentation data.

11. The method of claim 10 wherein said step of periodically sampling the executable code, and said step of initiating ad-hoc sampling of the executable code are performed by employing application-program-interfaces of a Java-virtual-machine.

12. The method of claim 1 wherein said step of dynamically adjusting the periodical sampling rate is performed according to the following equation:

Sc t =a*Sc t +(1− a )* Sc t−1

wherein:

t Sc t

Sc t is an updated estimation of CPU time associated with said step of periodically sampling;

Sc t−1 is a previous estimation of CPU time associated with said step of periodically sampling;

Sc t is a latest measurement of CPU time associated with said step of periodically sampling; and

a is a history decay factor for previous measurements of CPU time associated with said step of periodically sampling.

13. The method of claim 12 further comprising adjusting said periodical sampling rate according to said updated estimation of CPU time associated with said step of periodically sampling.

14. The method of claim 1 , further comprising the steps of:

receiving a plurality of samples of executable code, each sample of executable code being sampled during execution of said selected unit-of-work within said selected processing enclave;

selecting a sub-group of said plurality of samples of executable code according to a combination of values of a set of data dimensions selected from a plurality of data dimensions defined for said selected business transaction; and

analyzing said sub-group of said plurality of samples of executable code for determining code hotspots.

15. A method for profiling executable code executed within a monitored tier of a multi-tier computing system, the monitored tier including a plurality of processing enclaves, the method including the steps of:

periodically sampling the executable code executed by said plurality of processing enclaves of said monitored tier at a periodical sampling rate, thereby producing a plurality of code samples;

identifying a business context of each of said plurality of code samples, thereby producing profiling data having business context; and

merging request-traffic data respective of the traffic of requests through said monitored tier, and profiling data according to the business context of the request traffic data and of the profiling data;

wherein said step of identifying a business context of each of said plurality of code samples includes the following sub-steps:

monitoring an entering request entering said monitored tier for determining an allocated unit-of-work, allocated by said monitored tier for handling said entering request;

receiving context information associated with said entering request, the context information indicating a business context of said entering request; and

associating each one of said plurality of code samples, which was sampled during execution of said allocated unit-of-work, with said allocated unit-of-work.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Oct 13, 2014
From: PLENUS II, LIMITED PARTNERSHIP; PLENUS II (D.C.M.), LIMITED PARTNERSHIP; PLENUS III, LIMITED PARTNERSHIP; PLENUS III (D.C.M.), LIMITED PARTNERSHIP; PLENUS III (2), LIMITED PARTNERSHIP; PLENUS III (C.I.), L.P.
To: OPTIER LTD.
Reel/Frame 033936/0454 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2014
From: OPTIER LTD.
To: SAP SE
Reel/Frame 033938/0145 →
SECURITY AGREEMENT Recorded Aug 27, 2013
From: OPTIER LTD.
To: PLENUS II, LIMITED PARTNERSHIP; PLENUS II (D.C.M), LIMITED PARTNERSHIP; PLENUS III, LIMITED PARTNERSHIP; PLENUS III (D.C.M), LIMITED PARTNERSHIP; PLENUS III (2), LIMITED PARTNERSHIP; PLENUS III (C.I), L.P
Reel/Frame 031094/0493 →
SECURITY AGREEMENT Recorded Aug 27, 2013
From: OPTIER LTD.
To: PLENUS II, LIMITED PARTNERSHIP; PLENUS II (D.C.M), LIMITED PARTNERSHIP; PLENUS III, LIMITED PARTNERSHIP; PLENUS III (D.C.M), LIMITED PARTNERSHIP; PLENUS III (2), LIMITED PARTNERSHIP; PLENUS III (C.I), L.P
Reel/Frame 031095/0664 →
SECURITY AGREEMENT Recorded Aug 27, 2013
From: OPTIER LTD.
To: PLENUS II, LIMITED PARTNERSHIP; PLENUS II (D.C.M), LIMITED PARTNERSHIP; PLENUS III, LIMITED PARTNERSHIP; PLENUS III (D.C.M), LIMITED PARTNERSHIP; PLENUS III (2), LIMITED PARTNERSHIP; PLENUS III (C.I), L.P
Reel/Frame 031095/0820 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2012
From: ALON, AMIR; LAVI, YORAM YORI; TAL, MORDECHAI; HONEN, ADAM; PINKUS, DAN; TABAK, AMIDAN
To: OPTIER LTD.
Reel/Frame 028901/0280 →
Continuity (5)
Continuation In Part 13533498 · Jun 26, 2012
Continuation 12860239 · Aug 20, 2010
Continuation 11088277 · Mar 23, 2005
Provisional Application 60576805 · Jun 4, 2004
Related Publication 20120331135A1 · Dec 27, 2012