Configuring and using DDR3 memory with HP ProLiant Gen8 Servers

23
Understanding unbalanced memory configurations
Unbalanced memory configurations are those in which the installed memory is not distributed evenly across the
memory channels and/or the processors. ISS discourages unbalanced configurations because they will always have
lower performance than similar balanced configurations. There are two types of unbalanced configurations, each with
its own performance implications.
Unbalanced across channels. A memory configuration is unbalanced across channels if the memory capacities
installed on each of the 4 channels of each installed processor are not identical.
Unbalanced across processors. A memory configuration is unbalanced across processors if a different amount of
memory is installed on each of the processors.
Memory configurations that are unbalanced across channels
In unbalanced memory configurations across channels, the memory controller will split memory up into regions, as
shown in Figure 13. Each region of memory will have different performance characteristics. The memory controller
groups memory across channels as much as possible to create the regions. It will create as many regions as possible
with DIMMs that span all four memory channels, since these have the highest performance. Next, it will move to create
regions that span two memory channels and then to just one.
Figure 13. A memory configuration that is unbalanced across memory channels
The primary effect of memory configurations that are unbalanced across channels is a decrease in memory throughput
in those regions that span fewer memory channels. In the example above, measured memory throughput in Region 2
may be as little as 25% of the throughput in Region 1.
Memory configurations that are unbalanced across Processors
Figure 14 shows a memory configuration that is unbalanced across processors. The CPU1 threads operating on the
larger memory capacity of CPU1 may have adequate local memory with relatively low latencies. The CPU2 treads
operating on the smaller memory capacity of CPU2 may consume all available memory on CPU2 and request remote
memory from CPU1. The longer latencies associated with the remote memory will result in reduced performance of
those threads. In practice, this may result in non-uniform performance characteristics for program threads depending
on which processor executes them.