- Chapter 5 A Step-By-Step Approach to Capacity Planning in Client/Server Systems
- 2 Adequate Capacity
- 3 A Methodology for Capacity Planning in C/S Environments
- 4 Understanding the Environment
- 5 Workload Characterization
- 6 Workload Forecasting
- 7 Performance Modeling and Prediction
- 8 Development of a Cost Model
- 9 Cost/Performance Analysis
- 10 Concluding Remarks
Many organizations invest millions of dollars to build client/server computing environments and many millions more to maintain and update the environment. In most cases, the overall capacity of the environment is unknown and capacity planning and procurement is done without a defined methodology. To complicate matters, the notion of what is adequate capacity is not well understood in many cases.
Figure 5.1 illustrates the three main elements used to define adequate capacity of a C/S system:
Service-level agreements (SLAs). Adequate capacity has to be provided so that acceptable or desirable values for performance metrics such as response time or throughput can be achieved. Examples of SLAs include: \response times for trivial database queries should not exceed two seconds," \response times for database searches performed through the Web front-end should not exceed three seconds," \the NFS server should be able to support at least 10,000 NFS I/O operations per second with response times not exceeding 0.1 sec." The values of SLAs are specific to each organization and are determined by both management and users. Even when SLAs are not formally defined, it is possible to determine a level of acceptable service when users start to complain about poor performance.
Specified technologies and standards. Providing adequate capacity to meet service-level agreements can be done in many ways by using servers and operating systems of various types and many different networking topologies. For example, it is possible for a Windows NT-based file server running on a PC-based machine to deliver the same performance as a Unix-based file server running on a RISC machine. Some organizations may prefer to use one versus the other for reasons that are not directly related to performance (e.g., ease of system administration, familiarity with the system, and number and quality of possible vendors for the underlying hardware). Users and management may also choose to adopt certain standards for network protocols (e.g., TCP/IP) and middleware, further restricting the set of solutions that can be used. Thus, users and management may specify that adequate capacity be provided with certain specified technologies and standards for reasons other than performance.
Cost constraints. The problem of providing adequate capacity to meet SLAs would be somewhat easier to solve if one had unlimited monetary resources. Budget constraints are determined by management and limit the space of possible solutions. Expenditures for C/S systems include startup costs and operating costs for a defined period. Startup costs include purchase expenditures for hardware and software, installation costs, personnel costs, and initial training. Operating costs include hardware and software maintenance, telecommunications costs, and personnel costs required to maintain the system. Amortization costs may be included if they are incurred.
We say then that a C/S system has adequate capacity if the service-level agreements are continuously met for a specified technology and standards, and if the services are provided within cost constraints.