Introduction to client/server performance

The performance characteristics of a client/server environment are different than those of centralized environments.

This is because client/server applications are split between the client and the server. The client and server communicate by sending and receiving requests and messages. This model is far different than that for a centralized environment. In that environment, a program calls the CPU, and the memory and disk drives are fully dedicated.

Instead, when a client requests processing time and data from the server, it transmits the request on the network. The request travels to the server and waits in a queue until the server is able to process it. The performance characteristics of this type of architecture degrade exponentially as the number of requests increase. In other words, response times increase gradually as more requests are made, but then increase dramatically at some point, which is known as the "knee of the curve." This concept is illustrated by the following graph:

Client/server performance curve

It is important to determine this point at which performance begins to degrade significantly. The point can vary with every client/server installation.

The following is a suggested guideline for client/server operations: Communicate with the server only when necessary, and in as few data transmissions as possible. Opening a file and reading one record at a time often results in problems for client-server projects and tools.