IP Library Granted Patent US 7,716,335
Granted Patent B2
US 7,716,335 · App. 11/346,900 · Granted May 11, 2010

System and method for automated workload characterization of an application server

Assignee: Oracle America, Inc.
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 7,716,335
App. No.
11/346,900
Granted
May 11, 2010
Kind
B2
Abstract

An application server may be instrumented to provide a resource measurement framework to collect resource usage data regarding request processing by the application server and applications executing on the application server. The resource measurement framework of an application server may collect hardware and software resource usage data regarding request processing at interception points located at interfaces between application components and services or other components of the application server by instrumenting those interfaces. The resource measurement framework may collect resource usage by instrumenting standard interfaces and/or methods of various specifications, such as implemented by containers or other components of the application server. Thus, the resource measurement framework may collect resource usage for applications or application components that do not include any resource measuring capabilities. The collected resource usage data may be parsed and combined to create an overall characterization of resource usage corresponding to the application server's request processing.

Claims (50)

1. A system, comprising:

one or more processors;

memory coupled to the one or more processors and comprising program instructions executable by the one or more processors to implement an application server, wherein the application server comprises:

a plurality of services for supporting one or more applications running on the application server, wherein the plurality of services comprise one or more application component containers for managing the execution of components of the one or more applications running on the application server, and wherein one or more of the components are configured to invoke one or more of the plurality of services;

a resource measurement framework comprising a plurality of interception points each configured to intercept a request to one of the plurality of services, wherein in response to intercepting a request, the resource measurement framework is configured to record resource usage data for the request;

wherein the resource measurement framework is configured to record resource usage data for a plurality of requests to the plurality of services for characterizing a workload of the application server while running the one or more applications; and

wherein the resource measurement framework is configured to record the resource usage data for the plurality of requests in a log, wherein the program instructions are further executable by the one or more processors to implement a workload characterization to parse the log and generate a characterization of the workload for the application server.

2. The system as recited in claim 1 , wherein the resource measurement framework comprises program instructions added to program methods of the plurality of services, wherein the program instructions added to program methods of the plurality of services are configured to implement said plurality of interception points to intercept calls to the program methods and record resource usage data for each respective method call.

3. The system as recited in claim 1 , wherein the resource measurement framework is configured to intercept requests to the plurality of services and record resource usage data transparently to the one or more applications running on the application server.

4. The system as recited in claim 1 , wherein for each request intercepted at one of said plurality of interception points the resource measurement framework is configured to:

create a unique identifier;

associate the unique identifier with a thread or context of one of the plurality of services corresponding to the request; and

associate the resource usage data with the unique identifier.

5. The system as recited in claim 4 , wherein for each request intercepted at one of said plurality of interception points the resource measurement framework is configured to:

intercept a response to the request;

associate the response with the unique identifier;

record resource usage data for the response.

6. The system as recited in claim 1 , wherein said plurality of services further comprise one or more of a web component container service, an object request broker service, a message service, and a database connectivity service.

7. The system as recited in claim 1 , wherein said resource usage data for each request comprises software usage data and hardware usage data.

8. The system as recited in claim 7 , wherein said software usage data comprises clock data.

9. The system as recited in claim 7 , wherein said hardware usage data comprises one or more of a processor cycle count, network transmission data, and mass storage access data.

10. A method, comprising:

instrumenting program code for an application server to provide a resource measurement framework for the application server, wherein the application server comprises a plurality of services for supporting one or more applications running on the application server, wherein the plurality of services comprise one or more application component containers for managing the execution of components of the one or more applications running on the application server, wherein one or more of the components are configured to invoke one or more of the plurality of services;

running the one or more applications on the application server;

the resource measurement framework intercepting requests to the plurality of services;

in response to intercepting each request, the resource measurement framework recording resource usage data for the request in a log; and

wherein said intercepting and said recording are performed transparently to the one or more applications running on the application server; and

performing a workload characterization comprising parsing the log and generating a characterization of the workload for the application server.

11. The method of claim 10 , wherein the resource measurement framework comprises program instruction added to program methods of the plurality of services, wherein the program instructions added to the program methods of the plurality of services are configured to implement the plurality of interception points to intercept calls to the program methods and record resource usage data for each respective method call.

12. The method of claim 10 , wherein the resource measurement framework is configured to intercept requests to the plurality of services and record resource usage data transparently to the one or more applications running on the application server.

13. The method of claim 10 , wherein for each request intercepted at one of the plurality of interception points the resource measurement framework is configured to:

create a unique identifier;

associate a unique identifier with a thread or context of one of the plurality of services corresponding to the request; and

associate the resource usage data with the unique identifier.

14. The method of claim 13 , where for each request intercepted at one of the plurality of interception points, the resource measurement framework is configured to:

intercept a response to the request;

associate the response with the unique identifier;

record resource usage data for the response.

15. The method of claim 10 , wherein the resource usage data for each request comprises software usage data and hardware usage data.

16. The method of claim 15 , wherein said hardware usage data comprises one or more of a processor cycle count, network transmission data, and mass storage access data.

17. The method of claim 10 , further comprising:

executing the application server prior to said instrumenting; and

comparing resource usage data corresponding to said executing with the resource usage data recorded by the resource measurement framework to determine an amount of resource usage related to instrumentation of the application server.

18. A computer accessible storage medium, comprising program instructions, wherein the program instructions are computer executable to implement:

an application server instrumented to provide a resource measurement framework for the application server, wherein the application server comprises a plurality of services for supporting one or more applications running on the application server, wherein the plurality of services comprise one or more application component containers for managing the execution of components of the one or more applications running on the application server, wherein one or more of the components are configured to invoke one or more of the plurality of services;

running the one or more applications on the application server;

the resource measurement framework intercepting requests to the plurality of services;

in response to intercepting each request, the resource measurement framework recording resource usage data for the request in a log; and

wherein said intercepting and said recording are performed transparently to the one or more applications running on the application server; and

performing a workload characterization comprising parsing the log and generating a characterization of the workload for the application server.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037306/0292 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2006
From: DINKER, DARPAN; SCHWETMAN, HERBERT D.; BONEBAKKER, JAN L.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 017551/0672 →
Continuity (2)
Provisional Application 6069445000 · Jun 27, 2005
Related Publication 20070011330A1 · Jan 11, 2007