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 thepowersave
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, thebalanced
profile can be a better option. -
throughput-performance
-
The
throughput-performance
profile disables power-saving mechanisms and enablessysctl
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 enablessysctl
settings to improve latency. -
network-latency
-
The
network-latency
profile provides low latency network tuning. Thenetwork-latency
profile inherits from thelatency-performance
profile, and in addition, includes several network-relatedsysctl
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. Thenetwork-throughput
is based on thethroughput-performance
profile, and in addition, includessysctl
settings to increase kernel network buffer sizes. -
virtual-guest
-
The
virtual-guest
profile is designed for virtual guests and is based on thethroughput-performance
profile. In addition, this profile decreases virtual memoryswappiness
and increases thedirty_ratio
setting. -
virtual-host
-
The
virtual-host
profile is designed for virtual hosts and is based on thethroughput-performance
profile. In addition, this profile sets a more aggressive value for dirty pageswriteback
. -
desktop
-
The
desktop
profile is optimized for desktop environments and is based on thebalanced
profile. In addition, this profile sets schedulerautogroups
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.