IBM POWER Linux Performance Recomendations
Daniel Martin-Corben 270004CY29 Visits (5373)
Over the last few months I have done a number of Linux on IBM POWER installs, as such I have done some research on how to get the best out of the systems. Most of my day to day work involves me working with AIX on POWER so this was a learning curve for me. Along with this I have written a number of related articles that tie in with this work, they are 'Ins
First is a number of recommended environmental settings -
# fs.file-max = 4878674
These have been used in a number of tests relating to high performance systems using DB2 and Java.
# mount -t debugfs debugfs /sys/kernel/debug
The preempt scheduler relates to the releasing of CPU time when a process of a higher priority wants to use the CPU, so if you have a lot of things with similar priorities the CPU time can be consumed with this swapping in and out.
# echo WAKEUP_PREEMPTION > /deb
Other things I have looked at are -
The latest Power servers have a new mode of energy savings called Idle Power Saver, which is enabled by default. Idle Power Saver will put the processor into a power saving mode when it detects that utilization has gone below a certain threshold for a specified amount of time. Switching the processor into and out of power saving mode takes time. For sustained peak performance it is best not to let the system drop into power saving mode. Idle Power Saver can be disabled by using the web interface to the Advanced System Management Interface (ASMI) console. Navigate to System Configuration -> Power Management -> Idle Power Saver. Set the Idle Power Saver value to Disabled, then click on the "Save settings" button on the bottom of the page.
If the systems uses only IPv4 connections; it does not need IPv6 support. Your get a small boost to performance by disabling IPv6 support in Linux. With IPv6 disabled, the system wont spend extra time trying to work with possible IPv6 connections.
Disabling IPv6 support in the Linux kernel guarantees that no IPv6 code will ever be run as long as the system is booted. That may be too heavy-handed. A lighter touch is to let the kernel boot with IPv6 support and then use the sysctl facility to dynamically set a kernel variable to disable IPv6.
sysctl -w net.
The example above disables IPv6 on all interfaces. You can optionally disable IPv6 support on specific interfaces.
sysctl -w net.
This is something I have not tried, but we will need to think about it if we do network testing and do this if not already -
Disclaimer - Your mileage will vary