[ Bottom of Page | Previous Page | Next Page | Contents | Index | Library Home |
Legal |
Search ]
Performance Management Guide
Documenting Performance Requirements
In identifying and quantifying performance requirements, it is important
to identify the reasoning behind a particular requirement. This is part of
the general capacity planning process. Users might be basing their statements
of requirements on assumptions about the logic of the program that do not
match the programmer's assumptions. At a minimum, a set of performance requirements
should document the following:
- The maximum satisfactory response time to be experienced most of the time
for each distinct type of user-computer interaction, along with a definition
of most of the time. Response time is measured from
the time that the user performs the action that says "Go" until the user receives
enough feedback from the computer to continue the task. It is the user's subjective
wait time. It is not from entry to a subroutine until the first write statement.
If the user denies interest in response time and indicates that only the result
is of interest, you can ask whether "ten times your current estimate of stand-alone
execution time" would be acceptable. If the answer is "yes," you can proceed
to discuss throughput. Otherwise, you can continue the discussion of response
time with the user's full attention.
- The response time that is minimally acceptable the rest of the time. A
longer response time can cause users to think the system is down. You also
need to specify rest of the time; for example, the
peak minute of a day, 1 percent of interactions. Response time degradations
can be more costly or painful at a particular time of the day.
- The typical throughput required and the times it will be taking place.
This is not a casual consideration. For example, the requirement for one program
might be that it runs twice a day: at 10:00 a.m. and 3:15 p.m. If this is
a CPU-limited program that runs for 15 minutes and is planned to run on a
multiuser system, some negotiation is in order.
- The size and timing of maximum-throughput periods.
- The mix of requests expected and how the mix varies with time.
- The number of users per machine and total number of users, if this is
a multiuser application. This description should include the times these users
log on and off, as well as their assumed rates of keystrokes, completed requests,
and think times. You may want to investigate whether think times vary systematically
with the preceding and following request.
- Any assumptions that the user is making about the machines the workload
will run on. If the user has a specific existing machine in mind, make sure
you know that early on. Similarly, if the user is assuming a particular type,
size, cost, location, interconnection, or any other variable that will constrain
your ability to satisfy the preceding requirements, that assumption also becomes
part of the requirements. Satisfaction will probably not be assessed on the
system where the program is developed, tested, or first installed.
[ Top of Page | Previous Page | Next Page | Contents | Index | Library Home |
Legal |
Search ]