Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
Often, a detailed audit and analysis of a system can be very time consuming and might not be worth the few extra watts you might be able to save by doing so. Previously, the only alternative was simply to use the defaults. Therefore, Red Hat Enterprise Linux 6 includes separate profiles for specific use cases as an alternative between those two extremes, together with the tuned-adm tool that allows you to switch between these profiles easily at the command line. Red Hat Enterprise Linux 6 includes a number of predefined profiles for typical use cases that you can simply select and activate with the
tuned-admcommand, but you can also create, modify or delete profiles yourself.
To list all available profiles and identify the current active profile, run:
To only display the currently active profile, run:
To switch to one of the available profiles, run:
tuned-adm profile profile_name
Example 2.4. Switching to the server-powersave profile
tuned-adm profile server-powersave
To disable all tuning:
When you first install tuned, the
defaultprofile will be active. Red Hat Enterprise Linux 6 also includes the following predefined profiles:
- The default power-saving profile. It has the lowest impact on power saving of the available profiles and only enables CPU and disk plugins of tuned.
- A power-saving profile directed at desktop systems. Enables ALPM power saving for SATA host adapters (refer to Section 3.8, “Aggressive Link Power Management”) as well as the CPU, Ethernet, and disk plugins of tuned.
- A power-saving profile directed at server systems. Enables ALPM powersaving for SATA host adapters, disables CD-ROM polling through HAL (refer to the hal-disable-polling man page) and activates the CPU and disk plugins of tuned.
- A medium-impact power-saving profile directed at laptops running on AC. Enables ALPM powersaving for SATA host adapters, WiFi power saving, as well as the CPU, Ethernet and disk plugins of tuned.
- A high-impact power-saving profile directed at laptops running on battery. It activates all power saving mechanisms from the previous profiles plus it enables the multi-core power-savings scheduler for low wakeup systems and makes sure that the
ondemandgovernor is active and that AC97 audio power-saving is enabled. You can use this profile to save the maximum amount of power on any kind of system, not only laptops on battery power. The tradeoff for this profile is a noticeable impact on performance, specifically latency of disk and network I/O.
- A strong power-saving profile directed at machines with classic hard disks. It enables aggressive disk spin-down by increasing disk writeback values, lowering disk swappiness, and disabling log syncing. All partitions are remounted with a
noatimeoption. All tuned plugins are disabled.
- A server profile for typical throughput performance tuning. It disables tuned and ktune power saving mechanisms, enables sysctl settings that improve the throughput performance of your disk and network I/O, and switches to the deadline scheduler. CPU governor is set to
- A server profile for typical latency performance tuning. This profile disables dynamic tuning mechanisms and transparent hugepages. It uses the
performancegoverner for p-states through
cpuspeed, and sets the I/O scheduler to
deadline. Additionally, in Red Hat Enterprise Linux 6.5 and later, the profile requests a
1. In Red Hat Enterprise Linux 6.4 and earlier,
cpu_dma_latencyrequested a value of
- A server profile to improve throughput performance for enterprise-sized server configurations. This switches to the deadline scheduler and disables certain I/O barriers, dramatically improving throughput.
- This profile is optimized for virtual machines. It is based on the
enterprise-storageprofile, but also decreases the swappiness of virtual memory. This profile is available in Red Hat Enterprise Linux 6.3 and later.
- Based on the
enterprise-storageprofile, this profile decreases the swappiness of virtual memory and enables more aggressive writeback of dirty pages. Non-root and non-boot file systems are mounted with
barrier=0. Additionally, as of Red Hat Enterprise Linux 6.5, the kernel.sched_migration_cost parameter is set to 5 milliseconds. Prior to Red Hat Enterprise Linux 6.5, kernel.sched_migration_cost used the default value of 0.5 milliseconds
- A profile optimized for Oracle databases loads based on
throughput-performanceprofile. It additionaly disables transparent huge pages and modifies some other performance related kernel parameters. This profile is provided by tuned-profiles-oracle package. It is available in Red Hat Enterprise Linux 6.8 and later.
There may be more product specific or 3rd party Tuned profiles available. Such profiles are usually provided by separate RPM packages.
All the profiles are stored in separate subdirectories under
/etc/tune-profiles/desktop-powersavecontains all the necessary files and settings for the
desktop-powersaveprofile. Each of these directories contains up to four files:
- the configuration for the tuned service to be active for this profile.
- the sysctl settings used by ktune. The format is identical to the
/etc/sysconfig/sysctlfile (refer to the sysctl and sysctl.conf man pages).
- the configuration file of ktune itself, typically
- an init-style shell script used by the ktune service which can run specific commands during system startup to tune the system.
Example 2.5. Creating a New Profile
The easiest way to start a new profile is to copy an existing one and edit the configuration options. The
laptop-battery-powersaveprofile contains a very rich set of tunings already and is therefore a useful starting point.
- Copy the whole directory to the new profile name:
cp -a /etc/tune-profiles/laptop-battery-powersave/ /etc/tune-profiles/myprofile
- Modify any of the files in the new profile to match your personal requirements. If you require the detection of CD changes, you could disable that optimization by commenting out the appropriate line in the ktune.sh script:
# Disable HAL polling of CDROMS # for i in /dev/scd*; do hal-disable-polling --device $i; done > /dev/null 2>&1