4 Reviewing TuneD Profiles

The following sections provide an overview of TuneD profiles and how they're configured in their respective tuned.conf configuration files.

Predefined Profiles

The following list provides a summary of profiles that are commonly provided for use with TuneD:

balanced

The balanced profile provides a balance between performance and power consumption. The profile uses automatic scaling and automatic tuning when possible. A possible drawback is increased latency.

powersave

The powersave profile provides maximum power saving performance. The profile can minimize actual power consumption by throttling performance.

Note:

In some instances, the balanced profile is more efficient than the powersave profile and therefore, a better choice. For example, consider a workload that includes idle periods between resource-intensive tasks. A system running in a higher performance mode uses more energy to complete the tasks, but it completes them more quickly, and returns its components to idle power saving states for longer. In such situations, the balanced profile can be a better option.

throughput-performance

The throughput-performance profile disables power-saving mechanisms and enables sysctl settings to improve the throughput performance of the disk and network IO.

latency-performance

The latency-performance profile is optimized for low latency. The profile disables power-saving mechanisms and enables sysctl settings to improve latency.

network-latency

The network-latency profile provides low latency network tuning. The network-latency profile inherits from the latency-performance profile, and in addition, includes several network-related sysctl settings. The profile also disables transparent huge pages and automatic NUMA balancing.

network-throughput

The network-throughput profile is used for optimizing throughput network tuning. The network-throughput is based on the throughput-performance profile, and in addition, includes sysctl settings to increase kernel network buffer sizes.

virtual-guest

The virtual-guest profile is designed for virtual guests and is based on the throughput-performance profile. In addition, this profile decreases virtual memory swappiness and increases the dirty_ratio setting.

virtual-host

The virtual-host profile is designed for virtual hosts and is based on the throughput-performance profile. In addition, this profile sets a more aggressive value for dirty pages writeback.

desktop

The desktop profile is optimized for desktop environments and is based on the balanced profile. In addition, this profile sets scheduler autogroups for better response of interactive applications.

Note:

Different types of instances of Oracle Linux can have different TuneD profiles installed by default. For example, on an Oracle Linux instance that's running in Oracle Cloud Infrastructure, the list would include extra profiles, such as the following:

oci-busy-polling

The oci-busy-polling profile enables Busy Polling conditionally in OCI.

oci-cpu-power

The oci-cpu-power profile sets processor power management parameters in OCI.

oci-nic

The oci-nic profile increases combined channels to 16 on NICs with bnxt_en driver on BM shapes in OCI.

oci-rps-xps

The oci-rps-xps profile enables RPS/XPS conditionally in OCI

To get a complete list of tuned-profile packages that are available for installation, run the following command:

sudo dnf list tuned-profiles*

For more information about profiles, see the manual page for tuned-profiles(7).

Custom Profiles

The predefined profiles included with TuneD cover a range of use cases. TuneD can also run custom profiles in cases where further optimization is required. One way of creating a custom profile is to copy an existing profile and then customizing that profile as required. For more information about how to create and activate custom profiles, see Creating a Custom TuneD Profile.

TuneD Profile Configuration Files

Profiles are automatically stored in the following directories:

  • /usr/lib/tuned/profile_name contains predefined profiles.

  • /etc/tuned/profile_name contains custom profiles.

Each profile's rules are contained in a corresponding tuned.conf file. For example, for the latency-performance profile, the rules are defined in /usr/lib/tuned/latency-performance/tuned.conf, while the rules for the powersave profile are defined in /usr/lib/tuned/powersave/tuned.conf.

The following extract shows an example configuration file for the latency-performance profile:

[main]
summary=Optimize for deterministic performance at the cost of increased power consumption

[cpu]
force_latency=cstate.id_no_zero:1|3
governor=performance
energy_perf_bias=performance
min_perf_pct=100

[acpi]
platform_profile=performance

[sysctl]
# If a workload mostly uses anonymous memory and it hits this limit, the entire
# working set is buffered for I/O, and any more write buffering would require
# swapping, so it's time to throttle writes until I/O can catch up.  Workloads
# that mostly use file mappings may be able to use even higher values.
#
# The generator of dirty data starts writeback at this percentage (system default
# is 20%)
vm.dirty_ratio=10

# Start background writeback (via writeback threads) at this percentage (system
# default is 10%)
vm.dirty_background_ratio=3

# The swappiness parameter controls the tendency of the kernel to move
# processes out of physical memory and onto the swap disk.
# 0 tells the kernel to avoid swapping processes out of physical memory
# for as long as possible
# 100 tells the kernel to aggressively swap processes out of physical memory
# and move them to swap cache
vm.swappiness=10

[scheduler]
runtime=0
...

The previous example shows how profile configuration files often include sections such as [cpu] and [sysctl], where different types of component and performance configurations are defined.

Profiles can inherit settings from other profiles. For example, the following sample extract shows how the configuration file for the network-performance profile uses the include= option to inherit settings from the latency-performance profile:

[main]
summary=Optimize for deterministic performance at the cost of increased power consumption, focused on low latency network performance
include=latency-performance

[vm]
transparent_hugepages=never

[sysctl]
net.core.busy_read=50
net.core.busy_poll=50
net.ipv4.tcp_fastopen=3
kernel.numa_balancing=0
kernel.hung_task_timeout_secs = 600
kernel.nmi_watchdog = 0
vm.stat_interval = 10
kernel.timer_migration = 0

[bootloader]
cmdline_network_latency=skew_tick=1 tsc=reliable rcupdate.rcu_normal_after_boot=1
...

For more information about configuring TuneD profiles, see the tuned.conf(5) manual page.