activeSessions | |
Description | activeSessions represents the average number of active sessions that will exist on your site at any one point in time. |
Units | This number is an integer. |
Formula Usage | Calculated by (SPH * ((sessionTimeOut + sessionLength) / 60 / 60)), rounded up. Used to calculate totalRAM. |
appRAM | |
Description | appRAM represents the average size of an instance of your application. |
Units | Measured in megabytes (MB), to the hundredth of an MB. |
Formula Usage | Calculated by (initializedRAM - sessionRAM). Used to calculate totalRAM and spikeTotalRAM. |
idealInstanceCount | |
Description | idealInstanceCount represents the ideal number of application instances for running your web site. |
Elaboration | The “ideal” instance count should provide a maximum wait time for your users no longer than loopTime, while serving a maximum of TPS transactions per second. The upper range of transactions that this number of instances should be able to handle is determined by maxQueued. |
Units | This number is an integer. |
Formula Usage | Calculated by (TPS * loopTime), rounded up. Used to calculate totalRAM and spikeTotalRAM. |
initializedRAM | |
Description | initializedRAM represents the maximum observed RAM footprint of your application while running and handling a single, typical user session. |
Elaboration | This number should be gathered from a newly launched instance of your application, and from
the first session created by this instance. The RAM footprint should be monitored during the entire typical session, as objects are instantiated and garbage collected as a matter of course between requests and responses. Some requests may cause spikes in RAM usage during a typical session which will not be evident if the RAM footprint is only calculated at the end of the session. Some applications do not employ sessions, relying solely on sessionless direct actions. In this case, still gather this number. Though the final sessionRAM calculation will not actually represent "session" size, it will still represent RAM that is additive after a typical user session. |
Units | This number is measured in megabytes (MB), to the hundredth of an MB. |
Formula Usage | Used to calculate sessionRAM and appRAM. |
loopTime | |
Description | loopTime represents the average request/response time through the critical path of your application. Be sure to take a large sample representing normal variations through the critical path. Once you have your large sample, identify the pages involved and average their request/response times, being sure to treat pages which were visited multiple times as separate pages for purposes of calculating the average. |
Elaboration | Taking a large sample which includes
normal variations through the critical
path ensures that the occasional long
request will be included in this
average. The "critical path" is defined as the key path through your application which meets the needs of your customer. The pages making up your critical path are those pages which, if missing, would impact the core function and purpose of your site. On many sites, there are ancillary pages which, while beneficial to your customers, will not usually be frequented by your typical user base. The primary purpose for focusing on the critical path and its normal variations is that it provides a means of weighting one page over another when calculating the average response time. This is important when the same page may be visited multiple times, and its response time should be weighted in relations to how often it is visited. Because loopTime represents the performance of a request/response cycle, and the performance of this cycle is affected by the hardware and network configuration of the host boxes and network involved in the cycle, this statistic should be gathered while running in an environment similar to what will be used in deployment. Another way of stating this point is that loopTime represents the time of a request/response cycle in a particular environment. This formula does not yet take into account significant configurations differences between multiple hosts on the same site, though, this document does provide information on how to compensate for this limitation. |
Units | Measured in seconds, to the hundredth of a second. |
Formula Usage | Used to calculate maxQueued, idealInstanceCount and sessionLength. |
maxQueued | |
Description | maxQueued represents the maximum number of requests which should be queued by a particular instance of your application. |
Units | An integer. |
Formula Usage | Calculated by (maxWaitTime / loopTime), rounded down. Used to calculate spikeTPD. |
maxWaitTime | |
Description | maxWaitTime represents the maximum acceptable response wait time for a customer. This number more closely represents the maximum time a customer should wait for their request to be processed by the WebObjects application plus the loopTime for a single request. |
Elaboration | maxWaitTime used in calculating the range of traffic a particular site can handle. The more traffic there is on a site, the slower it performs for each request. By gathering this statistic, you can be sure that a user's experience on your site is acceptable from a performance perspective, even during spikes in traffic. |
Units | Measured in seconds, to the hundredth of a second. |
Formula Usage | Used to calculate maxQueued and spikeSessionLength. |
sessionLength | |
Description | sessionLength represents the average length of a typical user session. |
Elaboration | A session will exist in memory beyond the time the user is through with their session. This number represents only that time that the session is in use by the user. |
Units | Measured in seconds, to the hundredth of a second. |
Formula Usage | Calculated by ((userPause + loopTime) * visitTransactionCount), rounded up. Used to calculate activeSessions. |
sessionRAM | |
Description | sessionRAM represents the average size of a session for your application. When sessionless direct actions are used, this number will represent the residual memory overhead left by your direct actions. |
Units | Measured in megabytes (MB), to the hundredth of an MB. |
Formula Usage | Calculated by ((tenRAM-initializedRAM)/10), rounded up. Used to calculate appRAM, totalRAM and spikeTotalRAM. |
sessionTimeOut | |
Description | sesssionTimeOut represents the length of inactivity in seconds a session will wait before being deallocated. |
Units | This number is measured in seconds. |
Formula Usage | Used to calculate activeSessions and spikeActiveSessions. |
SPH | |
Description | SPH represents the average number of unique sessions per hour generated on your site. |
Elaboration | This statistic is key to determining the RAM required for our application at any one point in time. |
Units | This number is an integer. |
Formula Usage | Calculated by (TPH / visitTransactionCount), rounded up. Used to calculate activeSessions. |
spikeActiveSessions | |
Description | spikeActiveSessions represents the average number of active sessions that will exist on your site at any one point in time during peak times. |
Units | This number is an integer. |
Formula Usage | Calculated by (spikeSPH * ((sessionTimeOut + spikeSessionLength) / 60 / 60)), rounded up. Used to calculate spikeTotalRAM. |
spikeSessionLength | |
Description | spikeSessionLength represents the average length of a typical user session during peak times. |
Units | Measured in seconds, to the hundredth of a second. |
Formula Usage | Calculated by ((userPause + maxWaitTime) * visitTransactionCount), rounded up. Used to calculate spikeActiveSessions. |
spikeSPH | |
Description | spikeSPH represents the average number of unique sessions per hour generated on your site during peak times. |
Units | This number is an integer. |
Formula Usage | Calculated by (spikeTPH / visitTransactionCount), rounded up. Used to calculate activeSessions. |
spikeTotalRAM | |
Description | spikeTotalRAM represents the average amount of RAM required to keep your applications from swapping during peak usage. |
Elaboration | This number is the more likely amount of RAM to use in production. |
Units | This number is measured in megabytes (MB), to the hundredth of an MB. |
Formula Usage | Calculated by ((appRAM * idealInstanceCount) + (spikeActiveSessions * sessionRAM)), rounded up. |
spikeTPD | |
Description | spikeTPD represents the maximum request/response transactions per day your site can handle based upon the maximum allowable queued requests. |
Elaboration | This number represents the upper range of traffic that your site can handle without your
maxWaitTime suffering. To improve this number, decrease loopTime or simulate an increase in TPD. |
Units | This number is an integer. |
Formula Usage | Calculated by (maxQueued * TPD). Used to calculate spikeTPH, spikeTPM and spikeTPS. |
spikeTPH | |
Description | spikeTPH represents the maximum request/response transactions per hour your site can handle based upon the maximum allowable queued requests. |
Units | This number is an integer. |
Formula Usage | Calculated by (spikeTPD / 24), rounded down. |
spikeTPM | |
Description | spikeTPM represents the maximum request/response transactions per minute your site can handle based upon the maximum allowable queued requests. |
Units | This number is an integer. |
Formula Usage | Calculated by (spikeTPD / 24 / 60), rounded down. |
spikeTPS | |
Description | spikeTPS represents the maximum request/response transactions per second your site can handle based upon the maximum allowable queued requests. |
Units | This number is an integer. |
Formula Usage | Calculated by (spikeTPD / 24 / 60 / 60), rounded down. |
tenRAM | |
Description | tenRAM represents the maximum observed RAM footprint of your application while running and handling ten additional typical user sessions. |
Elaboration | This number should be gathered from the same instance that was used to calculate
initializedRAM. This should take place immediately following determining initializedRAM so as to avoid the invalidation of this statistic through the natural deallocation of objects that occurs over time (such as session time outs.) |
Units | Measured in megabytes (MB), to the hundredth of an MB. |
Formula Usage | Used to calculate sessionRAM. |
totalRAM | |
Description | totalRAM represents the average amount of RAM required to keep your applications from swapping during optimal usage. |
Elaboration | This should be viewed as the minimum amount of RAM required to run your site. The more likely amount of RAM to use in production is probably closer to the spikeTotalRAM figure. Swapping to disk is a big hit in performance. Never skimp on memory when deploying an application. If anything, always err on having too much RAM rather than too little. |
Units | Measured in megabytes (MB), to the hundredth of an MB. |
Formula Usage | Calculated by ((appRAM * idealInstanceCount) + (activeSessions * sessionRAM)), rounded up. |
TPD | |
Description | TPD represents the average request/response transactions per day your site will need to handle. |
Elaboration | There are many types of transactions when talking about a web site. For a HTML page laden with graphics, there will be multiple HTTP requests (or transactions) to the web server to serve each graphic. A database also has the notion of a transaction, which is a finite set of related database operations, including fetching, inserting and deleting data. A single click of a submit button triggers a single request/response transaction in your WebObjects application, which, in turn, may represent multiple transactions to the database, and multiple transactions or resource requests to the web server. The type of transaction represented by this statistic is the request/response transaction of your WebObjects application. |
Units | Whole number of transactions per day. |
Formula Usage | Used to calculate spikeTPD, TPH, TPM and TPS. |
TPH | |
Description | TPH represents the average request/response transactions per hour your site will need to handle. |
Units | This number is an integer. |
Formula Usage | Calculated by (TPD / 24), rounded up. |
TPM | |
Description | TPM represents the average request/response transactions per minute your site will need to handle. |
Units | This number is an integer. |
Formula Usage | Calculated by (TPD / 24 / 60), rounded up. |
TPS | |
Description | TPS represents the maximum observed RAM footprint of your application while running and handling ten additional typical user sessions. |
Units | This number is an integer. |
Formula Usage | Calculated by (TPD / 24 / 60 / 60), rounded up. |
userPause | |
Description | userPause represents the average time between transactions for a typical user. |
Elaboration | As a customer navigates through your web site, the customer will take time to read each page they come to. Depending on how heavy or light the content of each page is on your web site, your users will spend more or less time going from page to page. userPause is used to help determine how long a session will stay around, and therefore how many sessions will be active at any one point in time. |
Units | This number is measured in seconds, to the hundredth of a second. |
Formula Usage | Used to calculate sessionLength and spikeSessionLength. |
visitTransactionCount | |
Description | visitTransactionCount represents the average number of page requests during a typical user session. |
Elaboration | This number is similar in nature to the loopTime as you should use the same large sample that was used in calculating loopTime. Using the sample, average the number of pages for each user session. |
Units | This number is an integer. |
Formula Usage | Used to calculate sessionLength, spikeSessionLength, SPH and spikeSPH. |