346 Maximum Performance with WebSphere Application Server V5.1 on iSeries
10.1 Scalability objectives
When considering scalability, your objective is to explore how a basic configuration can be
extended to provide more computing power, by better exploiting the power of each machine or
by using multiple machines. Specifically, you are interested in defining WebSphere
Application Server configurations that exhibit the following properties:
Scalability: The proposed configuration should allow the overall system to service a
higher client load than that which is provided by the simple basic configuration. Ideally, it
should be possible to service any given load, simply by adding the appropriate number of
Load balancing: The planned environment should ensure that each server in the
configuration processes a balanced share of the overall client load that is being processed
by the system as a whole. It would not do for one machine to be overloaded, while another
machine is mostly idle. If all of the machines are of roughly the same power, each should
process an equal share of the load. If various machines have different resource levels,
each should process a portion of the load relative to its processing power.
Furthermore, if the total load changes over time, the system should naturally adapt itself to
maintain this load-balancing properly, regardless of the actual total magnitude of this load.
All machines may be used at 50% of their capacity, or all machines may be used at 100%
of their capacity. You generally want to begin capacity planning when overall system usage
reaches 60% to 70% utilization. Refer to 10.6, “Capacity planning and workload estimation
tools” on page 362, for more information about capacity planning.
Failover: The idea of having multiple servers naturally leads to the potential for the
configuration to provide automated failover. That is, if any one server were to fail for any
reason, the configuration should continue to operate with the remaining servers. The
load-balancing property should ensure that the client load is redistributed to the remaining
servers. Each of the remaining servers then process a proportionately slightly higher
percentage of the total load. Of course, such an arrangement presupposes that the
system is designed with some degree of over capacity, so that the total number of servers
are indeed sufficient to process the total expected client load.
Ideally, the failover aspect should be totally transparent to users of the configuration.
When a server fails, any client that is currently interacting with that server should be
automatically redirected to one of the remaining servers, without any interruption of
service and without requiring any special action on the part of that client. In practice, some
failover solutions may not be completely transparent.
For example, a client that is currently in the middle of an operation, when a server fails,
may receive an error from that operation and may be required to retry (at which point the
client is connected to a different, still-available server). Or the client may observe a
“hiccup” or delay in processing, before the processing of their requests resumes
automatically using a different server.
The important point for failover is that each client, and the set of clients as a whole, can
continue to take advantage of the system and receive useful service, even if some of the
servers fail or become unavailable. Conversely, when a previously failed server is repaired
and again becomes available, the system should transparently start using that server
again to process a portion of the total client load.
The failover aspect of a configuration is also sometimes called
fault tolerance, in that it
allows the system to survive a variety of scheduled or unscheduled failures or faults. Note,
however, that failover is only one technique in the much broader field of fault tolerance. No
such technique can make a system 100% safe against any possible failure. The goal is to
greatly minimize the probability of a system failure, but it cannot be completely eliminated.