Method, system, and product for assessing a server application performance
First Claim
1. A method for assessing server application software performance under a simulated load generated by at least one client computer connected to at least one server running the server application software via a communications network without having to create actual clients of the server application software in an actual configuration while retaining actual user behavior characteristics, the method comprising the steps of:
- defining at least one client profile based on one or more user parameters representing actual user behavior characteristics;
establishing a plurality of logical connections between the at least one client computer and the server application software, said logical connections simulating a plurality of logically simulated clients of the server application software and each client computer having many logical connections with the server application software;
generating periodically, for said logically simulated clients, one or more tasks for transmission to the server application software, the nature, timing and frequency of such tasks for said logically simulated clients being controlled by the client profile; and
communicating the tasks to the server application software from the at least one client computer so as to simulate the real time generation and transmission of messages from multiple actual clients of the server application software and without having to create actual clients of the server application software in an actual configuration.
3 Assignments
0 Petitions
Accused Products
Abstract
Method and system for assessing the performance of a server application that acquires performance information from the perspective of a simulated user and has significantly reduced hardware requirements. Particularly, actual user behavior is modeled so that accurate determinations can be made as to the number of users a given server application can adequately support.
User behavior is modeled in a client profile that contains user parameters corresponding to the nature, timing, and frequency of user activities in operating a client that in turn corresponds to client tasks. A plurality of processes and process threads are initiated to contact a server as a plurality of simulated clients from a single client computer, each simulated client making a separate logical connection to the server. A task scheduler will schedule the simulated client tasks that are determined for each simulated user by reference to the user parameters in the client profile throughout a work day. The scheduler also introduces a random element so that the tasks simulate natural variability in user behavior.
User receivable response times for the task corresponding to simulated user activity are maintained in a log file and the 95th percentile time or score for each task type is calculated. The individual task type scores may be weighted and averaged together to arrive at a weighted average response time. The weighted average response time can then be used as a threshold value to determine the total number of users a server application can adequately support.
290 Citations
39 Claims
-
1. A method for assessing server application software performance under a simulated load generated by at least one client computer connected to at least one server running the server application software via a communications network without having to create actual clients of the server application software in an actual configuration while retaining actual user behavior characteristics, the method comprising the steps of:
-
defining at least one client profile based on one or more user parameters representing actual user behavior characteristics; establishing a plurality of logical connections between the at least one client computer and the server application software, said logical connections simulating a plurality of logically simulated clients of the server application software and each client computer having many logical connections with the server application software; generating periodically, for said logically simulated clients, one or more tasks for transmission to the server application software, the nature, timing and frequency of such tasks for said logically simulated clients being controlled by the client profile; and communicating the tasks to the server application software from the at least one client computer so as to simulate the real time generation and transmission of messages from multiple actual clients of the server application software and without having to create actual clients of the server application software in an actual configuration. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method for assessing E-mail server application software performance under a simulated load generated by at least one client computer connected to at least one server running the server application software via a communications network without having to create actual E-mail clients of the E-mail server application software in an actual configuration while retaining actual E-mail user behavior characteristics, the method comprising the steps of:
-
defining at least one client profile based on one or more user parameters representing actual E-mail user behavior characteristics; establishing a plurality of logical connections between the at least one client computer and the E-mail server application software said logical connections simulating a plurality of logically simulated E-mail clients of the E-mail server application software and each client computer having many logical connections with the E-mail server application software, said logical connections comprising individual threads of a process in a multithreaded, multitasking operating system running on the client computer making each of the logical connections with the server; generating periodically, for said logically simulated E-mail clients, one or more tasks for transmission to the E-mail server application software, the nature, timing and frequency of such tasks for said logically simulated clients being controlled by the client profile and such tasks including E-mail messages; causing E-mail message task generation to converse to a steady state by use of a damping factor applied to existing E-mail messages to prevent E-mail message task generation from diverging in an unbounded manner, communicating the tasks to the E-mail server application software from the at least one client computer so as to simulate the real time generation and transmission of messages from multiple actual E-mail clients of the E-mail server application software by scheduling each task for said logically simulated E-mail clients throughout a time period with an introduced random element to represent the natural variability in user behavior and without having to create actual E-mail clients of the E-mail server application software in an actual configuration; monitoring at the at least one client computer responses received from the E-mail server application software to the tasks and response times therefor, computing the weighted average response time for all responses from the E-mail server application software; and determining the maximum number of actual E-mail clients the E-mail server application software can process at a desired weighted average response time.
-
-
14. A computer program product for use on at least one client computer connected to at least one server computer via a communications network comprising:
-
a computer usable medium having computer readable program code means embodied in said medium for assessing the performance of server application software running on a server computer under a simulated load generated by at least one client computer, said computer readable program code means comprising; program code means for causing the client computer to store at least one client profile based on one or more user parameters representing actual user behavior characteristics; program code means for causing the client computer to establish a plurality of logical connections between the client computer and the server application software, said logical connections simulating a plurality of logically simulated clients of the server application software and the client computer having many such logical connections; program code means for causing the client computer to generate periodically, for said logically simulated clients, one or more tasks for transmission to the server application software, the nature, timing and frequency of such tasks for said logically simulated clients being controlled by the client profile; and program code means for causing the client computer to communicate the tasks to the server application software from the client computer so as to simulate the real time generation and transmission of messages from multiple actual clients of the server application software and without having to create actual clients of the server application software in an actual configuration. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A computer program product for use on at least one client computer connected to at least one server computer via a communications network comprising:
-
a computer usable medium having computer readable program code means embodied in said medium for assessing the performance of E-mail server application software running on a server computer under a simulated load generated by at least one client computer, said computer readable program code means comprising; program code means for causing the client computer to store at least one client profile based on one or more user parameters representing actual E-mail user behavior characteristics; program code means for causing the client computer to establish a plurality of logical connections between the client computer and the E-mail server application software, said logical connections simulating a plurality of logically simulated E-mail clients of the E-mail server application software and the client computer having many such logical connections, said logical connections comprising program code means for initiating a separate process thread under a process of a multithreaded, multitasking operating system to make and control each logical connection; program code means for causing the client computer to generate periodically, for said logically simulated E-mail clients, one or more tasks for transmission to the E-mail server application software the nature, timing and frequency of such tasks for said logically simulated E-mail clients being controlled by the client profile and such tasks including E-mail messages; program code means for causing the client computer to communicate the tasks to the E-mail server application software so as to simulate the real time generation and transmission of messages from multiple actual E-mail clients of the E-mail server application software and without having to create actual E-mail clients of the E-mail server application software in an actual configuration; program code means for causing E-mail message task generation to converge to a steady state by use of a damping factor applied to existing E-mail messages to prevent E-mail message task generation from diverging in an unbounded manner; program code means for scheduling the tasks throughout a time period and introducing a random element to the scheduling of tasks to represent the natural variations in E-mail user behavior; program code means for causing the client computer to monitor responses received from the E-mail server application software to the tasks and response times therefor; program code means for causing the client computer to compute the weighted average response time for all responses received from the E-mail server application software.
-
-
27. A system for assessing server application software performance under a simulated load comprising:
-
at least one server computer running server application software; and at least one client computer connected to the server computer via a communications network, said client computer comprising; a CPU; storage means, electronically coupled and responsive to said CPU, wherein said storage means is partitioned into at least a first memory partition and includes at least one client profile based on one or more user parameters representing actual user behavior characteristics stored in said first memory partition; interface means, electronically coupled and responsive to said CPU, for establishing a plurality of logical connections between the client computer and the server application software, said logical connections simulating a plurality of logically simulated clients of the server application software and the client computer having many such logical connections; means, electronically coupled and responsive to said CPU, for generating periodically, for said logically simulated clients, one or more tasks for transmission to the server application software, the nature, timing and frequency of such tasks for said logically simulated clients being controlled by the client profile; and output means, electronically coupled and responsive to said CPU, for communicating the tasks to the server application software so as to simulate the real time generation and transmission of messages from multiple actual clients of the server application software and without having to create actual clients of the server application software in an actual configuration. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38)
-
-
39. A system for assessing server application software performance under a simulated load comprising:
-
at least one server computer running server application software; and at least one client computer connected to the server computer via a communications network, said client computer comprising; a CPU; storage means, electronically coupled and responsive to said CPU, wherein said storage means is partitioned into at least first, second and third memory partitions and includes at least one client profile based on one or more user parameters representing actual user behavior characteristics stored in said first memory partition; interface means, electronically coupled and responsive to said CPU, for establishing a plurality of logical connections between the client computer and the server application software, said logical connections simulating a plurality of logically simulated clients of the server application software and the client computer having many such logical connections, wherein each logical connection is initiated by a separate process thread on a multitasking, multithreaded operating system to make and control the logical connection; means, electronically coupled and responsive to said CPU, for generating periodically, for said logically simulated clients, one or more tasks for transmission to the server application software, the nature, timing and frequency of such tasks for said logically simulated clients being controlled by the client profile and such tasks including E-mail messages, for scheduling the execution of said tasks throughout a given time period, and for introducing a random element to said execution to simulate natural E-mail user variability; output means, electronically coupled and responsive to said CPU, for communicating the tasks to the E-mail server application software so as to simulate the real time generation and transmission of messages from multiple actual E-mail clients of the E-mail server application software and without having to create actual E-mail clients of the E-mail server application software in an actual configuration, means, electronically coupled and responsive to said CPU, for causing E-mail message task generation to converge to a steady state by use of a damping factor applied to existing E-mail messages to prevent E-mail message task generation from diverging in an unbounded manner; input means, electronically coupled and responsive to said CPU, for receiving responses from the E-mail server application software to the tasks and for storing said responses and response times therefor in said second memory partition; and means, electronically coupled and responsive to said CPU, for computing the weighted average response time for all responses received from the E-mail server application software and for storing said weighted average response time in said third memory partition.
-
Specification