Linux Tuning Profiles
Table of Contents
Preprovisioned tuning profiles#
user1@rhel10-vm2:~$ ls /usr/lib/tuned/profiles
accelerator-performance balanced desktop intel-sst network-latency optimize-serial-console throughput-performance virtual-host
aws balanced-battery hpc-compute latency-performance network-throughput powersave virtual-guest
user1@rhel10-vm2:~$
Verify and change tuning profiles#
Verify that the tuned service is installed with DNF:
user1@rhel10-vm2:~$ dnf list --installed | grep tuned
tuned.noarch 2.25.1-2.el10_0 @rhel-10-for-x86_64-baseos-rpms
Verify the status of the service with systemctl:
user1@rhel10-vm2:~$ systemctl status tuned
● tuned.service - Dynamic System Tuning Daemon
Loaded: loaded (/usr/lib/systemd/system/tuned.service; enabled; preset: enabled)
Active: active (running) since Fri 2026-08-21 19:29:51 CEST; 1h 15min ago
Invocation: fa8cec68b5b449ee9d4f13e2ef0a4618
Docs: man:tuned(8)
man:tuned.conf(5)
man:tuned-adm(8)
Main PID: 936 (tuned)
Tasks: 4 (limit: 10680)
Memory: 17.7M (peak: 19.7M)
CPU: 952ms
CGroup: /system.slice/tuned.service
└─936 /usr/bin/python3 -Es /usr/sbin/tuned -l -P
Warning: some journal files were not opened due to insufficient permissions.
user1@rhel10-vm2:~$
Display the list of available tuning profiles:
user1@rhel10-vm2:~$ tuned-adm list
Available profiles:
- accelerator-performance - Throughput performance based tuning with disabled higher latency STOP states
- aws - Optimize for aws ec2 instances
- balanced - General non-specialized tuned profile
- balanced-battery - Balanced profile biased towards power savings changes for battery
- desktop - Optimize for the desktop use-case
- hpc-compute - Optimize for HPC compute workloads
- intel-sst - Configure for Intel Speed Select Base Frequency
- latency-performance - Optimize for deterministic performance at the cost of increased power consumption
- network-latency - Optimize for deterministic performance at the cost of increased power consumption, focused on low latency network performance
- network-throughput - Optimize for streaming network throughput, generally only necessary on older CPUs or 40G+ networks
- optimize-serial-console - Optimize for serial console use.
- powersave - Optimize for low power consumption
- throughput-performance - Broadly applicable tuning that provides excellent performance across a variety of common server workloads
- virtual-guest - Optimize for running inside a virtual guest
- virtual-host - Optimize for running KVM guests
Current active profile: virtual-guest
user1@rhel10-vm2:~$
Getting help:
user1@rhel10-vm2:~$ tuned-adm --help
usage: tuned-adm [-h] [--version] [--debug] [--async] [--timeout TIMEOUT] [--loglevel LOGLEVEL]
{list,active,off,profile,profile_info,recommend,verify,auto_profile,profile_mode,instance_acquire_devices,get_instances,instance_get_devices} ...
Manage tuned daemon.
positional arguments:
{list,active,off,profile,profile_info,recommend,verify,auto_profile,profile_mode,instance_acquire_devices,get_instances,instance_get_devices}
list list available profiles or plugins (by default profiles)
active show active profile
off switch off all tunings
profile switch to a given profile, or list available profiles if no profile is given
profile_info show information/description of given profile or current profile if no profile is specified
recommend recommend profile
verify verify profile
auto_profile enable automatic profile selection mode, switch to the recommended profile
profile_mode show current profile selection mode
instance_acquire_devices
acquire devices from other instances and assign them to the given instance
get_instances list active instances of a given plugin or all active instances if no plugin is specified
instance_get_devices
list devices assigned to a given instance
options:
-h, --help show this help message and exit
--version, -v show program's version number and exit
--debug, -d show debug messages
--async, -a with dbus do not wait on commands completion and return immediately
--timeout TIMEOUT, -t TIMEOUT
with sync operation use specific timeout instead of the default 600 second(s)
--loglevel LOGLEVEL, -l LOGLEVEL
level of log messages to capture (one of debug, info, warn, error, console, none). Default: console
user1@rhel10-vm2:~$
user1@rhel10-vm2:~$ tuned-adm active
Current active profile: virtual-guest
user1@rhel10-vm2:~$ tuned-adm profile network-throughput
Unable to switch profile: Unauthorized
user1@rhel10-vm2:~$ sudo tuned-adm profile network-throughput
[sudo] password for user1:
user1@rhel10-vm2:~$
user1@rhel10-vm2:~$ tuned-adm active
Current active profile: network-throughput
Verify the recommended tuning profile:
user1@rhel10-vm2:~$ tuned-adm recommend
virtual-guest
Trying to turn off tuning profiles:
user1@rhel10-vm2:~$ tuned-adm off
Cannot disable active profile.
user1@rhel10-vm2:~$ tuned-adm verify
Verification succeeded, current system settings match the preset profile.
See TuneD log file ('/var/log/tuned/tuned.log') for details.
user1@rhel10-vm2:~$ sudo tuned-adm off
user1@rhel10-vm2:~$
user1@rhel10-vm2:~$ tuned-adm verify
Verification failed, current system settings differ from the preset profile.
You can mostly fix this by restarting the TuneD daemon, e.g.:
systemctl restart tuned
or
service tuned restart
Sometimes (if some plugins like bootloader are used) a reboot may be required.
See TuneD log file ('/var/log/tuned/tuned.log') for details.
user1@rhel10-vm2:~$ tuned-adm active
No current active profile.
user1@rhel10-vm2:~$
Even when no tuning profile is active, the tuned service unit is still active:
user1@rhel10-vm2:~$ systemctl status tuned
● tuned.service - Dynamic System Tuning Daemon
Loaded: loaded (/usr/lib/systemd/system/tuned.service; enabled; preset: enabled)
Active: active (running) since Fri 2026-08-21 19:29:51 CEST; 1h 18min ago
Invocation: fa8cec68b5b449ee9d4f13e2ef0a4618
Docs: man:tuned(8)
man:tuned.conf(5)
man:tuned-adm(8)
Main PID: 936 (tuned)
Tasks: 2 (limit: 10680)
Memory: 17.9M (peak: 20.8M)
CPU: 1.088s
CGroup: /system.slice/tuned.service
└─936 /usr/bin/python3 -Es /usr/sbin/tuned -l -P
Warning: some journal files were not opened due to insufficient permissions.
user1@rhel10-vm2:~$ sudo tuned-adm recommend
virtual-guest
user1@rhel10-vm2:~$ tuned-adm profile virtual-guest
Unable to switch profile: Unauthorized
user1@rhel10-vm2:~$ sudo tuned-adm profile virtual-guest
user1@rhel10-vm2:~$
user1@rhel10-vm2:~$ tuned-adm active
Current active profile: virtual-guest
user1@rhel10-vm2:~$ cat /var/log/tuned/tuned.log | tail -n 15
2026-08-21 20:48:22,006 INFO tuned.plugins.plugin_vm: Setting option 'dirty_ratio' to '20'
2026-08-21 20:48:30,092 ERROR tuned.daemon.daemon: TuneD is not running
2026-08-21 20:49:25,138 INFO tuned.exports.dbus_exporter: action 'com.redhat.tuned.log_capture_start' requested by caller ':1.55' wasn't authorized, ignoring the request
2026-08-21 20:49:25,148 INFO tuned.exports.dbus_exporter: action 'com.redhat.tuned.switch_profile' requested by caller ':1.55' wasn't authorized, ignoring the request
2026-08-21 20:49:30,990 INFO tuned.profiles.loader: loading profile: virtual-guest
2026-08-21 20:49:30,992 INFO tuned.daemon.daemon: starting tuning
2026-08-21 20:49:30,993 INFO tuned.plugins.base: instance cpu: assigning devices cpu1, cpu0
2026-08-21 20:49:30,994 INFO tuned.plugins.plugin_cpu: We are running on an x86 GenuineIntel platform
2026-08-21 20:49:30,994 WARNING tuned.plugins.plugin_cpu: your CPU doesn't support MSR_IA32_ENERGY_PERF_BIAS, ignoring CPU energy performance bias
2026-08-21 20:49:30,995 INFO tuned.plugins.base: instance disk: assigning devices vda, dm-0, dm-1
2026-08-21 20:49:30,996 WARNING tuned.plugins.base: instance video: no matching devices available
2026-08-21 20:49:30,996 INFO tuned.plugins.plugin_vm: Setting option 'dirty_ratio' to '30'.
2026-08-21 20:49:30,996 INFO tuned.plugins.plugin_vm: Not setting option 'dirty_background_ratio' to '10', already set.
2026-08-21 20:49:31,044 INFO tuned.plugins.plugin_sysctl: reapplying system sysctl
2026-08-21 20:49:31,045 INFO tuned.daemon.daemon: static tuning from profile 'virtual-guest' applied
user1@rhel10-vm2:~$