IP Library Granted Patent US 7,107,327
Granted Patent B2
US 7,107,327 · App. 10/133,608 · Granted Sep 12, 2006

Method and apparatus for determining a server configuration based on an execution profile of an application

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,107,327
App. No.
10/133,608
Granted
Sep 12, 2006
Kind
B2
Abstract

One embodiment of the present invention provides a system that facilitates determining server configurations based on an execution profile of an application. During operation, the system analyzes the application to develop an execution profile that specifies the number of times each primitive operation is executed. Next, the system estimates the amount of resources used by the application based on the number of times each primitive operation is executed. Finally, the system determines a server configuration based on the estimated amount of resources used by the application.

Claims (43)

1. A method for determining a server configuration to accommodate an application, comprising:

receiving the application;

determining the number of times each primitive operation is executed by the application;

receiving a list of server configurations, wherein each server configuration specifies an interconnection topology for the server configuration;

executing each primitive operation on each server configuration multiple times to estimate the amount of resources used by each primitive operation on each server configuration, wherein executing each primitive operation involves executing each primitive operation n times during a fixed time period, and then averaging the amount of resources used over the n executions, whereby executing each primitive operation n times in a fixed time period estimates the burst response of the server configuration;

estimating the amount of resources used by the application based on the number of times each primitive operation is executed; and

determining the server configuration to accommodate the application based on the estimated amount of resources used by the application;

wherein the server configuration is optimized for the execution of the application.

2. The method of claim 1 , further comprising receiving a list of server configurations.

3. The method of claim 2 , wherein the server configuration can specify:

an amount of memory;

a number of CPUs;

a CPU clock speed; and

a number of servers.

4. The method of claim 2 , wherein determining the server configuration involves selecting the server configuration from the list of server configurations.

5. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for determining a server configuration to accommodate an application, comprising:

receiving the application;

determining the number of times each primitive operation is executed by the application;

receiving a list of server configurations, wherein each server configuration specifies an interconnection topology for the server configuration;

executing each primitive operation on each server configuration multiple times to estimate the amount of resources used by each primitive operation on each server configuration, wherein executing each primitive operation involves executing each primitive operation n times during a fixed time period, and then averaging the amount of resources used over the n executions, whereby executing each primitive operation n times in a fixed time period estimates the burst response of the server configuration;

estimating the amount of resources used by the application based on the number of times each primitive operation is executed; and

determining the server configuration to accommodate the application based on the estimated amount of resources used by the application;

wherein the server configuration is optimized for the execution of the application.

6. The computer-readable storage medium of claim 5 , further comprising receiving a list of server configurations.

7. The computer-readable storage medium of claim 6 , wherein the server configuration can specify:

an amount of memory;

a number of CPUs;

a CPU clock speed; and

a number of servers.

8. The computer-readable storage medium of claim 6 , wherein determining the server configuration involves selecting the server configuration from the list of server configurations.

9. An apparatus for determining a server configuration to accommodate an application, comprising:

a counting mechanism configured to determine the number of times each primitive operation is executed by the application;

an estimating mechanism configured to estimate the amount of resources used by the application based on the number of times each primitive operation is executed;

a receiving mechanism configured to receive a list of server configurations, wherein each server configuration specifies an interconnection topology for the server configuration;

an executing mechanism configured to execute each primitive operation on each server configuration multiple times to estimate the amount of resources used by each primitive operation, wherein executing each primitive operation involves executing each primitive operation n times during a fixed time period, and then averaging the amount of resources used over the n executions, whereby executing each primitive operation n times in a fixed time period estimates the burst response of the server configuration; and

a configuration mechanism configured to determine the server configuration to accommodate the application based on the estimated amount of resources used by the application;

wherein the server configuration is optimized for the execution of the application.

10. The apparatus of claim 9 , wherein the configuration mechanism is configured to use a list of different server configurations.

11. The apparatus of claim 10 , wherein each server configuration can specify:

an amount of memory;

a number of CPUs;

a CPU clock speed; and

a number of servers.

Assignments (1)
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 037302/0616 →