Monday, January 31, 2011

Nehalem Performance Optimization

Found a really well put together IBM document on Nehalem performance configuration*, highlights and link below:

RAM Configuration
1. Identical configuration for each memory channel (3 channels per Proc), and same speed RAM across the board. Within a memory channel you can mix sizes, but each memory channel must have an identical configuration. For best performance, each channel would have a single DIMM.


2. If a dual Proc machine only has RAM in one bank, there is a significant performance hit for the second Proc to access the “Remote RAM.”


3. The optimal configurations for dual Proc Nehalem servers are
a. 6GB (6x1GB)
b. 12GB (6x2GB)
c. 18GB (6x2GB, 6x1GB)
d. 24GB (6x4GB or 12x2GB)
e. 48GB (6x8GB or 12x4GB)
f. 72GB (6x4GB, 6x8GB)
g. 96GB (6x16GB or 12x8GB)


4. For single Proc Database servers, the best configs would be
a. 3GB ( 3x1GB sticks)
b. 6GB (3x2GB sticks)
c. 9GB (3x2GB, 3x1GB sticks)
d. 12GB (3x4GB sticks)
e. 24GB (6x4GB sticks)
f. 36GB (3x8GB, 3x4GB sticks)
g. 48GB (6x8GB sticks)


5. In general, avoid populating DIMM slots 1 (the first slot), 4, 9, or 12. Doing so unbalances the memory channels and decreases performance, so it is preferable to increase the DIMM size across the board rather than add more sticks.


6. Populate the furthest slots first, in this order: (3, 6, 8) and then (2, 5, 7)


7. Always use dual rank memory if available (e.g. 2Rx4, 2Rx8, etc).


BIOS Settings (more analysis to come):
Setting
Maximum Performance Setting per IBM
Memory Speed
Auto
Memory Channel Mode
Independent
Socket Interleaving
NUMA
Patrol Scrubbing
Disabled
Demand Scrubbing
Enabled
C-States
Enabled
Turbo Mode
Enabled
Thermal Mode
Performance
Hyper Threading
Dependent upon App




*This is for x3650 M2/x3550 M2&M3/dx360 M2. HS22’s have other requirements.

Optimizing Nehalem Performance (Dead link?)

No comments:

Post a Comment