System for improving the performance of a computer software application in a server network
First Claim
1. A system for creating a set of predicted resource utilizations of a computer application wherein the computer application operates as a software program on a system of servers configured to operate a set of software programs;
- the set of resources containing a set of local resources and a set of remote services;
wherein the set of local resources is connected to the set of application servers;
wherein the set of remote resources is connected to the set of networked servers;
the system of servers include a set of application servers which are connected to a set of networked servers by a communications network, and wherein the computer application utilizes a set of system resources the set of system resources contain a set of local resources and a set of remote resources;
wherein the set of local resources is connected to the set of application servers;
wherein the set of remote resources is connected to the set of networked servers;
the set of local resources containing a local CPU resource for executing software programs, a local RAM resource for storing software programs and for storing dynamic data, a local data storage resource for storing persistent data, and a local data pipe resource for communicating with the set of software programs by a set of transactions;
the set of remote resources containing a remote CPU resource for executing software programs, a remote RAM resource for storing software programs and for storing dynamic data, a remote data storage resource for storing persistent data, and a remote data pipe resource for communicating with at least one networked server in the set of networked servers and at least one application server in the set of application servers;
each of the set of transactions including an exchange of data associated with the computer application;
wherein at least one of the set of networked servers services at least one transaction of the set of transactions and services a set of requests from at least one network server in the set of networked servers;
the set of transactions causing usage of the set of system resources;
wherein a transaction log associated with the computer application is generated and contains a list of transaction information measured by the computer application;
the list of transaction information describing resource usage by the computer application;
wherein a set of system resource monitors resides on the system of servers, and each system resource monitor is associated with a particular server in the system of servers, each system resource monitor operating on at least one software program in the set of software programs; and
wherein at least one system resource monitor of the set of system resource monitors measures a set of resource utilization data for the particular server of the set of servers with which the system resource monitor is associated, the system comprising;
a. a performance criteria describing an expected resource utilization by the computer application;
b. a system resource utilization data repository for storing and organizing the set of resource utilization data, the system resource utilization data repository residing on and operating on at least one server in the system of servers;
c. a system model generator residing on and operating on at least one server in the system of servers, the system model generator creating a set of predicted resource utilizations for the system of servers, derived from the set of resource utilization data and from the transaction log.
3 Assignments
0 Petitions
Accused Products
Abstract
Method and apparatus for separating background utilization from transaction resource consumption to simulate resource costs on system servers including a computer application server is taught. Transaction throughput combined with resource consumption data. Regression analysis on the resulting data set provides information useful for determining performance and for creating discrete event simulations. In a first embodiment, data from an application server is combined with the application transaction log to find a background utilization on the application servers and to simulate transaction resource cost with a background load. In a second embodiment, data from servers other than the application server are combined with the application transaction log to estimate the resource cost per transaction for a given resource in the system. In a third embodiment, data from servers other than the application server are combined with the application transaction log to simulate resource cost for a given resource based on transaction throughput.
43 Citations
23 Claims
-
1. A system for creating a set of predicted resource utilizations of a computer application wherein the computer application operates as a software program on a system of servers configured to operate a set of software programs;
-
the set of resources containing a set of local resources and a set of remote services; wherein the set of local resources is connected to the set of application servers; wherein the set of remote resources is connected to the set of networked servers; the system of servers include a set of application servers which are connected to a set of networked servers by a communications network, and wherein the computer application utilizes a set of system resources the set of system resources contain a set of local resources and a set of remote resources; wherein the set of local resources is connected to the set of application servers; wherein the set of remote resources is connected to the set of networked servers; the set of local resources containing a local CPU resource for executing software programs, a local RAM resource for storing software programs and for storing dynamic data, a local data storage resource for storing persistent data, and a local data pipe resource for communicating with the set of software programs by a set of transactions; the set of remote resources containing a remote CPU resource for executing software programs, a remote RAM resource for storing software programs and for storing dynamic data, a remote data storage resource for storing persistent data, and a remote data pipe resource for communicating with at least one networked server in the set of networked servers and at least one application server in the set of application servers; each of the set of transactions including an exchange of data associated with the computer application; wherein at least one of the set of networked servers services at least one transaction of the set of transactions and services a set of requests from at least one network server in the set of networked servers; the set of transactions causing usage of the set of system resources; wherein a transaction log associated with the computer application is generated and contains a list of transaction information measured by the computer application; the list of transaction information describing resource usage by the computer application; wherein a set of system resource monitors resides on the system of servers, and each system resource monitor is associated with a particular server in the system of servers, each system resource monitor operating on at least one software program in the set of software programs; and wherein at least one system resource monitor of the set of system resource monitors measures a set of resource utilization data for the particular server of the set of servers with which the system resource monitor is associated, the system comprising; a. a performance criteria describing an expected resource utilization by the computer application; b. a system resource utilization data repository for storing and organizing the set of resource utilization data, the system resource utilization data repository residing on and operating on at least one server in the system of servers; c. a system model generator residing on and operating on at least one server in the system of servers, the system model generator creating a set of predicted resource utilizations for the system of servers, derived from the set of resource utilization data and from the transaction log. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method for improving the performance of a computer application wherein the computer application operates as a software program on a first configuration of a system of servers operating on a set of software programs;
-
the system of servers including a set of application servers which are connected to a set of networked servers by a communications network, and wherein the computer application utilizes a set of system resources; the set of system resources including a set of local resources and a set of remote resources; the set of local resources connected to the set of application servers, and wherein the computer application utilizes a set of remote resources connected to the set of networked servers; the set of local resources containing a local CPU resource for executing software programs, a local RAM resource for storing software programs and for storing dynamic data, a local data storage resource for storing persistent data, and a local data pipe resource for communicating with the set of software programs by a set of transactions; each of the set of transactions including an exchange of data associated with the computer application; wherein at least one of the set of networked servers services at least one transaction of the set of transactions and services a set of requests from at least one network server of the set of networked servers; the set of transactions causing the usage of the set of system resources and the set of remote resources; wherein the set of remote resources contains a remote CPU resource for executing software programs, a remote RAM resource for storing software programs and for storing dynamic data, a remote data storage resource for storing persistent data, and a remote data pipe resource for communicating with at least one networked server in the set of networked servers and at least one application server in the set of application servers; and wherein a transaction log associated with the computer application is generated and contains a list of transaction information measured by the computer application; the list of transaction information describing resource usage by the computer application; wherein a set of system resource monitors resides on the system of servers, each system resource monitor is associated with a particular server in the system of servers, each system resource monitor operating on at least one software program in the set of software programs; and wherein at least one system resource monitor of the set of system resource monitors measures a set of resource utilization data for the particular server of the set of servers with which the system resource monitor is associated, the method comprising; a. causing the computer application to run under a set of load conditions; b. collecting a transaction log from the computer application; c. collecting the set of resource utilization data and storing the resource utilization data in a system resource utilization repository; d. generating a system model by combining the list of transaction information with the resource utilization data; e. running a discrete event simulation based on the system model to create a predicted system resource usage by the computer application; f. comparing the predicted system resource usage to a desired performance criteria for system resource usage; and
,g. changing the system of servers to a second configuration which meets the desired performance criteria for system resource usage. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
Specification