Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

A.5. tuned-adm

tuned-adm is a command line tool that enables you to switch between Tuned profiles to improve performance in a number of specific use cases. It also provides the tuned-adm recommend sub-command that assesses your system and outputs a recommended tuning profile.
As of Red Hat Enterprise Linux 7, Tuned includes the ability to run any shell command as part of enabling or disabling a tuning profile. This allows you to extend Tuned profiles with functionality that has not been integrated into Tuned yet.
Red Hat Enterprise Linux 7 also provides the include parameter in profile definition files, allowing you to base your own Tuned profiles on existing profiles.
The following tuning profiles are provided with Tuned and are supported in Red Hat Enterprise Linux 7.
throughput-performance
A server profile focused on improving throughput. This is the default profile, and is recommended for most systems.
This profile favors performance over power savings by setting intel_pstate and min_perf_pct=100. It enables transparent huge pages and uses cpupower to set the performance cpufreq governor. It also sets kernel.sched_min_granularity_ns to 10 μs, kernel.sched_wakeup_granularity_ns to 15 μs, and vm.dirty_ratio to 40%.
latency-performance
A server profile focused on lowering latency. This profile is recommended for latency-sensitive workloads that benefit from c-state tuning and the increased TLB efficiency of transparent huge pages.
This profile favors performance over power savings by setting intel_pstate and max_perf_pct=100. It enables transparent huge pages, uses cpupower to set the performance cpufreq governor, and requests a cpu_dma_latency value of 1.
network-latency
A server profile focused on lowering network latency.
This profile favors performance over power savings by setting intel_pstate and min_perf_pct=100. It disables transparent huge pages, and automatic NUMA balancing. It also uses cpupower to set the performance cpufreq governor, and requests a cpu_dma_latency value of 1. It also sets busy_read and busy_poll times to 50 μs, and tcp_fastopen to 3.
network-throughput
A server profile focused on improving network throughput.
This profile favors performance over power savings by setting intel_pstate and max_perf_pct=100 and increasing kernel network buffer sizes. It enables transparent huge pages, and uses cpupower to set the performance cpufreq governor. It also sets kernel.sched_min_granularity_ns to 10 μs, kernel.sched_wakeup_granularity_ns to 15 μs, and vm.dirty_ratio to 40%.
virtual-guest
A profile focused on optimizing performance in Red Hat Enterprise Linux 7 virtual machines as well as VMware guests.
This profile favors performance over power savings by setting intel_pstate and max_perf_pct=100. It also decreases the swappiness of virtual memory. It enables transparent huge pages, and uses cpupower to set the performance cpufreq governor. It also sets kernel.sched_min_granularity_ns to 10 μs, kernel.sched_wakeup_granularity_ns to 15 μs, and vm.dirty_ratio to 40%.
virtual-host
A profile focused on optimizing performance in Red Hat Enterprise Linux 7 virtualization hosts.
This profile favors performance over power savings by setting intel_pstate and max_perf_pct=100. It also decreases the swappiness of virtual memory. This profile enables transparent huge pages and writes dirty pages back to disk more frequently. It uses cpupower to set the performance cpufreq governor. It also sets kernel.sched_min_granularity_ns to 10 μs, kernel.sched_wakeup_granularity_ns to 15 μs, kernel.sched_migration_cost to 5 μs, and vm.dirty_ratio to 40%.
cpu-partitioning
The cpu-partitioning profile partitions the system CPUs into isolated and housekeeping CPUs. To reduce jitter and interruptions on an isolated CPU, the profile clears the isolated CPU from user-space processes, movable kernel threads, interrupt handlers, and kernel timers.
A housekeeping CPU can run all services, shell processes, and kernel threads.
You can configure the cpu-partitioning profile in the /etc/tuned/cpu-partitioning-variables.conf file. The configuration options are:
isolated_cores=cpu-list
Lists CPUs to isolate. The list of isolated CPUs is comma-separated or the user can specify the range. You can specify a range using a dash, such as 3-5. This option is mandatory. Any CPU missing from this list is automatically considered a housekeeping CPU.
no_balance_cores=cpu-list
Lists CPUs which are not considered by the kernel during system wide process load-balancing. This option is optional. This is usually the same list as isolated_cores.
For more information on cpu-partitioning, see the tuned-profiles-cpu-partitioning(7) man page.
For detailed information about the power saving profiles provided with tuned-adm, see the Red Hat Enterprise Linux 7 Power Management Guide.
For detailed information about using tuned-adm, see the man page:
$ man tuned-adm