Load simulation tool for server resource capacity planning
First Claim
Patent Images
1. A method for deriving server resource utilization estimates for a server cluster, the method comprising:
- recording server cluster data during operation of the server cluster, at least some of the server cluster data indicating server resource parameter values;
using a load simulation tool that, using the recorded data, determines a maximum load that can be handled by the server cluster;
specifying a load to be handled by the server cluster; and
deriving server resource utilization estimates corresponding to the specified load, wherein the using a load simulation tool comprises;
creating a test script from the recorded values;
running the test script on a master client to simulate load and server resource utilization conditions that existed on a server when the recorded values were recorded; and
increasing the load on the server, when the test script is running, until a maximum load that can be handled by the server is obtained, wherein;
the server cluster contains a set of identical servers;
running the test script run on the master client simulates server cluster operation on only one of the servers of the server cluster; and
the method further comprises extrapolating the results obtained on the one server using the number of servers in the set of identical servers to obtain the maximum load that can be handled by the server cluster.
3 Assignments
0 Petitions
Accused Products
Abstract
A methods and systems for capacity planning of server resources are described wherein a load simulation tool is used to use actual data gathered from a server cluster during operation to simulate server cluster operation in which the load (requests per second) can be increased, and the effects on the utilization of resources can be observed. Plans containing recommendations are then presented to a system user so the user can make decisions necessary regarding whether to change configuration hardware to meet expected load increases in the future.
-
Citations
37 Claims
-
1. A method for deriving server resource utilization estimates for a server cluster, the method comprising:
-
recording server cluster data during operation of the server cluster, at least some of the server cluster data indicating server resource parameter values;
using a load simulation tool that, using the recorded data, determines a maximum load that can be handled by the server cluster;
specifying a load to be handled by the server cluster; and
deriving server resource utilization estimates corresponding to the specified load, wherein the using a load simulation tool comprises;
creating a test script from the recorded values;
running the test script on a master client to simulate load and server resource utilization conditions that existed on a server when the recorded values were recorded; and
increasing the load on the server, when the test script is running, until a maximum load that can be handled by the server is obtained, wherein;
the server cluster contains a set of identical servers;
running the test script run on the master client simulates server cluster operation on only one of the servers of the server cluster; and
the method further comprises extrapolating the results obtained on the one server using the number of servers in the set of identical servers to obtain the maximum load that can be handled by the server cluster. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A method for deriving server resource utilization estimates for a server cluster, the method comprising:
-
recording server cluster data during operation of the server cluster, at least some of the server cluster data indicating server resource parameter values;
using a load simulation tool that, using the recorded data, determines a maximum load that can be handled by the server cluster;
specifying a load to be handled by the server cluster; and
deriving server resource utilization estimates corresponding to the specified load, wherein the using a load simulation tool comprises;
creating a test script from the recorded values;
running the test script on a master client to simulate load and server resource utilization conditions that existed on a server when the recorded values were recorded; and
increasing the load on the server, when the test script is running, until a maximum load that can be handled by the server is obtained, wherein;
the server cluster contains a set of non-identical servers;
running the test script run on the master client further comprises running the test script on each of the non-identical servers in the server cluster; and
the method further comprises summing the results obtained from each non-identical server in the cluster to obtain the maximum load that can be handled by the server cluster.
-
-
22. A method for deriving server resource utilization estimates for a server cluster, the method comprising:
-
recording server cluster data during operation of the server cluster, at least some of the server cluster data indicating server resource parameter values;
using a load simulation tool that, using the recorded data, determines a maximum load that can be handled by the server cluster;
specifying a load to be handled by the server cluster;
deriving server resource utilization estimates corresponding to the specified load;
displaying the server resource utilization estimates; and
recommending a plan to optimize processing of the specified load, wherein the plan recommends a change in the hardware configuration of the server cluster, wherein the server resource utilization is processor utilization, the method further comprising;
finding a functional dependency approximation between processor utilization and load;
transforming functional dependency into linear form by using logarithmic transformation;
deriving first and second processor regression constants using linear regression methodology;
dividing the first processor regression constant by e to the power of the product of the second processor regression constant and the specified load to obtain the processor utilization estimate.
-
-
23. A method for deriving server resource utilization estimates for a server cluster, the method comprising:
-
recording server cluster data during operation of the server cluster, at least some of the server cluster data indicating server resource parameter values;
using a load simulation tool that, using the recorded data, determines a maximum load that can be handled by the server cluster;
specifying a load to be handled by the server cluster;
deriving server resource utilization estimates corresponding to the specified load;
displaying the server resource utilization estimates; and
recommending a plan to optimize processing of the specified load, wherein the plan recommends a change in the hardware configuration of the server cluster, wherein the server resource utilization is communication bandwidth utilization, the method further comprising;
finding a functional dependency approximation between communication bandwidth utilization;
transforming functional dependency into linear form by using logarithmic transformation;
deriving first and second bandwidth regression constants using linear regression methodology;
deriving a transmission overhead factor that, when applied to a certain size web page, results in the actual capacity necessary to transmit the web page;
deriving a weighted communication overhead factor by dividing the transmission overhead factor by the available communication bandwidth;
deriving an adjusted communication load by adding the first bandwidth regression constant to the product of the specified load and the second bandwidth regression constant; and
determining the communication bandwidth utilization estimate by multiplying the weighted communication overhead factor by the adjusted communication load.
-
-
24. A method for deriving server resource utilization estimates for a server cluster, the method comprising:
-
recording server cluster data during operation of the server cluster, at least some of the server cluster data indicating server resource parameter values;
using a load simulation tool that, using the recorded data, determines a maximum load that can be handled by the server cluster;
specifying a load to be handled by the server cluster;
deriving server resource utilization estimates corresponding to the specified load;
displaying the server resource utilization estimates; and
recommending a plan to optimize processing of the specified load, wherein the plan recommends a change in the hardware configuration of the server cluster, wherein the server resource utilization is memory utilization, the method further comprising;
deriving a connection memory factor that is the adjusted average of the incoming connections at different speeds;
deriving a weighted connection memory factor by multiplying the connection memory factor by the specified load;
deriving a page load ratio by dividing the specified load by the difference of the maximum load value and the specified load;
deriving a total number of concurrent connections by adding the weighted connection memory factor and the page load ratio; and
deriving a gross memory utilization by multiplying the total number of concurrent connections by the sum of the amount of memory necessary to support each connection for communications and the amount of memory necessary to support data structures associated with each connection, and adding the amount of memory required by a server operating system and the amount of memory required by the server communication program; and
deriving the memory utilization estimate by dividing the gross memory utilization by total memory available.
-
-
25. A system, comprising:
-
a server cluster having one or more servers, one of which is a primary server that controls the operation of the server cluster;
a cluster controller resident in memory on the primary server of the server cluster, the cluster controller controlling communications between the primary server and secondary servers, if any, and between clients and the server cluster;
an operating system resident in the memory of the primary server;
a communications program within the cluster controller to provide communications capability for the system;
a filter to collect server data indicating certain operating parameters for the server cluster;
a monitor on each server in the server cluster to collect server data indicating certain operating parameters for the server cluster;
a user interface to collect data input by a user;
a capacity planner within the cluster controller configured to utilize the collected data to derive one or more server resource utilization estimates for server resources to determine how handling a specified load will affect the utilization of the server resources, and to produce a plan recommending changes to be made to the server cluster to adequately accommodate the specified load; and
a load simulation tool configured to use the collected data to create a simulation script that, when run on a master client, simulates the operation of the server cluster system to allow the user to find the maximum load that the server cluster can handle; and
wherein the maximum load obtained through the use of the load simulation tool is utilized in the derivation of the one or more server resource utilization estimates, wherein the filter is an ISAPI filter. - View Dependent Claims (26, 27, 28, 29, 30)
-
-
31. A system, comprising:
-
a server cluster having one or more servers, one of which is a primary server that controls the operation of the server cluster;
a cluster controller resident in memory on the primary server of the server cluster, the cluster controller controlling communications between the primary server and secondary servers, if any, and between clients and the server cluster;
an operating system resident in the memory of the primary server;
a communications program within the cluster controller to provide communications capability for the system;
a filter to collect server data indicating certain operating parameters for the server cluster;
a monitor on each server in the server cluster to collect server data indicating certain operating parameters for the server cluster;
a user interface to collect data input by a user;
a capacity planner within the cluster controller configured to utilize the collected data to derive one or more server resource utilization estimates for server resources to determine how handling a specified load will affect the utilization of the server resources, and to produce a plan recommending changes to be made to the server cluster to adequately accommodate the specified load; and
a load simulation tool configured to use the collected data to create a simulation script that, when run on a master client, simulates the operation of the server cluster system to allow the user to find the maximum load that the server cluster can handle; and
wherein the maximum load obtained through the use of the load simulation tool is utilized in the derivation of the one or more server resource utilization estimates, wherein the server resource utilization derived by the capacity planner comprises general server utilization, and the capacity planner is further configured to derive general server utilization by solving;
wherein U is the general server utilization;
X is the maximum load that can be handled by the server cluster which is determined by the load simulation tool; and
L is the specified load.
-
-
32. A system, comprising:
-
a server cluster having one or more servers, one of which is a primary server that controls the operation of the server cluster;
a cluster controller resident in memory on the primary server of the server cluster, the cluster controller controlling communications between the primary server and secondary servers, if any, and between clients and the server cluster;
an operating system resident in the memory of the primary server;
a communications program within the cluster controller to provide communications capability for the system;
a filter to collect server data indicating certain operating parameters for the server cluster;
a monitor on each server in the server cluster to collect server data indicating certain operating parameters for the server cluster;
a user interface to collect data input by a user;
a capacity planner within the cluster controller configured to utilize the collected data to derive one or more server resource utilization estimates for server resources to determine how handling a specified load will affect the utilization of the server resources, and to produce a plan recommending changes to be made to the server cluster to adequately accommodate the specified load; and
a load simulation tool configured to use the collected data to create a simulation script that, when run on a master client, simulates the operation of the server cluster system to allow the user to find the maximum load that the server cluster can handle; and
wherein the maximum load obtained through the use of the load simulation tool is utilized in the derivation of the one or more server resource utilization estimates, wherein the server resource utilization derived by the capacity planner comprises general server utilization, and the capacity planner is further configured to derive general server utilization by solving;
wherein UCPU is processor utilization;
L is the specified load;
a is processor regression constant a; and
b is processor regression constant b.
-
-
33. A system, comprising:
-
a server cluster having one or more servers, one of which is a primary server that controls the operation of the server cluster;
a cluster controller resident in memory on the primary server of the server cluster, the cluster controller controlling communications between the primary server and secondary servers, if any, and between clients and the server cluster;
an operating system resident in the memory of the primary server;
a communications program within the cluster controller to provide communications capability for the system;
a filter to collect server data indicating certain operating parameters for the server cluster;
a monitor on each server in the server cluster to collect server data indicating certain operating parameters for the server cluster;
a user interface to collect data input by a user;
a capacity planner within the cluster controller configured to utilize the collected data to derive one or more server resource utilization estimates for server resources to determine how handling a specified load will affect the utilization of the server resources, and to produce a plan recommending changes to be made to the server cluster to adequately accommodate the specified load; and
a load simulation tool configured to use the collected data to create a simulation script that, when run on a master client, simulates the operation of the server cluster system to allow the user to find the maximum load that the server cluster can handle; and
wherein the maximum load obtained through the use of the load simulation tool is utilized in the derivation of the one or more server resource utilization estimates, wherein the server resource utilization derived by the capacity planner comprises communication bandwidth utilization, and the capacity planner is further configured to derive communication bandwidth utilization by solving;
wherein UB is communication bandwidth utilization;
L is the specified load;
c is processor regression constant c;
d is processor regression constant d;
FTCP is a transmission overhead factor; and
B is the total communication bandwidth available.
-
-
34. A system, comprising:
-
a server cluster having one or more servers, one of which is a primary server that controls the operation of the server cluster;
a cluster controller resident in memory on the primary server of the server cluster, the cluster controller controlling communications between the primary server and secondary servers, if any, and between clients and the server cluster;
an operating system resident in the memory of the primary server;
a communications program within the cluster controller to provide communications capability for the system;
a filter to collect server data indicating certain operating parameters for the server cluster;
a monitor on each server in the server cluster to collect server data indicating certain operating parameters for the server cluster;
a user interface to collect data input by a user;
a capacity planner within the cluster controller configured to utilize the collected data to derive one or more server resource utilization estimates for server resources to determine how handling a specified load will affect the utilization of the server resources, and to produce a plan recommending changes to be made to the server cluster to adequately accommodate the specified load; and
a load simulation tool configured to use the collected data to create a simulation script that, when run on a master client, simulates the operation of the server cluster system to allow the user to find the maximum load that the server cluster can handle; and
wherein the maximum load obtained through the use of the load simulation tool is utilized in the derivation of the one or more server resource utilization estimates, wherein the server resource utilization derived by the capacity planner comprises communication bandwidth utilization, and the capacity planner is further configured to derive communication bandwidth utilization by solving;
wherein N is a total number of concurrent connections derived by solving;
wherein;
UM is memory utilization;
MTCP is a an amount of memory necessary to support the connections for communications;
MIISStruct is the amount of memory necessary to support data structures associated with each connection;
MOS is the amount of memory required by a server operating system;
MIIS is the amount of memory required by a server communication program;
M is the total amount of memory available;
L is the specified load;
X is the maximum load that can be handled by the server cluster; and
S1 is a connection memory factor that is the adjusted average of the incoming connections at different speeds.
-
-
35. One or more computer-readable media having computer-readable instructions thereon which, when executed by one or more computers, cause the computers to derive server resource utilization estimates for a server cluster having at least one primary server and at least one secondary server coupled to the primary server, the media further including instructions to cause the computers to:
-
record server cluster data during operation of the server cluster, at least some of the server cluster data indicating server resource parameter values;
use a load simulation tool that, using the recorded data, determines a maximum load that can be handled by the server cluster;
specify a load to be handled by the server cluster;
derive server resource utilization estimates corresponding to the specified load; and
recommend a plan to optimize processing of the specified load, further comprising instructions to cause the computers to display the server resource utilization estimates.
-
-
36. One or more computer-readable media having computer-readable instructions thereon which, when executed by one or more computers, cause the computers to derive server resource utilization estimates for a server cluster having at least one primary server and at least one secondary server coupled to the primary server, the media further including instructions to cause the computers to:
-
record server cluster data during operation of the server cluster, at least some of the server cluster data indicating server resource parameter values;
use a load simulation tool that, using the recorded data, determines a maximum load that can be handled by the server cluster;
specify a load to be handled by the server cluster;
derive server resource utilization estimates corresponding to the specified load; and
recommend a plan to optimize processing of the specified load, further comprising instructions to cause the computers to recommend a change in the hardware configuration of the server cluster to optimize processing of the specified load.
-
-
37. One or more computer-readable media having computer-readable instructions thereon which, when executed by one or more computers, cause the computers to derive server resource utilization estimates for a server cluster having at least one primary server and at least one secondary server coupled to the primary server, the media further including instructions to cause the computers to:
-
record server cluster data during operation of the server cluster, at least some of the server cluster data indicating server resource parameter values;
use a load simulation tool that, using the recorded data, determines a maximum load that can be handled by the server cluster;
specify a load to be handled by the server cluster;
derive server resource utilization estimates corresponding to the specified load; and
recommend a plan to optimize processing of the specified load, further comprising instructions to cause the computers to store data comprising the maximum load, the recorded values, the specified load, and the server resource utilization estimates in non-volatile memory.
-
Specification