WebSphere eXtreme Scale Administration Guide > Capacity planning
Sizing CPUs for parallel transactions
Single-partition transactions have throughput scaling linearly as the grid grows. Parallel transactions are different from single-partition transactions because they touch a set of the servers (this can be all of the servers).
If a transaction touches all of the servers, then the throughput is limited to the throughput of the client that initiates the transaction or the slowest server touched. Larger grids spread the data out more and provide more processor space, memory, network, and so on. However, the client must wait for the slowest server to respond, and the client must consume the results of the transaction.
When a transaction touches a subset of the servers, M out of N servers get a request. The throughput is then N divided by M times faster than the throughput of the slowest server. For example, if you have 20 servers and a transaction that touches 5 servers, then the throughput is 4 times the throughput of the slowest server in the grid.
When a parallel transaction completes, the results are sent to the client thread that started the transaction. This client must then aggregate the results single threaded. This aggregation time increases as the number of servers touched for the transaction grows. However, this time depends on the application because it is possible that each server returns a smaller result as the grid grows.
Typically, parallel transactions touch all of the server in the grid because partitions are uniformly distributed over the grid. In this case, throughput is limited to the first case.
Summary
With this sizing, you have three metrics, as follows.
- Number of partitions.
- Number of servers that are needed for the memory that is required.
- Number of servers that are needed for the required throughput.
If you need 10 servers for memory requirements, but you are getting only 50% of the needed throughput because of the processor saturation, then you need twice as many servers.
For the highest stability, you should run the servers at 60% processor loading and JVM heaps at 60% heap loading. Spikes can then drive the processor usage to 80–90%, but do not regularly run the servers higher than these levels.
Parent topic
Capacity planning