How to use tuned-adm to optimize Linux system performance

As a system administrator, you should be able to optimize the performance of your Linux system by adjusting various settings to suit your use case workload. This guide was written to help you optimize and optimize the performance of your Linux server.

of Tune up Daemons can be used to apply system adjustments dynamically or statically. There are predefined tuning profiles that reflect specific workload requirements.

The available profiles you can adjust to are:

Adjusted profile
Purpose
balancedIdeal for systems that seek a compromise between energy savings and performance.
desktopFrom the balance profile. Provides faster response time for interactive applications.
Throughput performanceTune the system for maximum throughput.
Delay performanceIdeal for server systems that require low latency at the cost of power consumption.
Network latencyFrom the latency performance profile. It enables other network tuning parameters to provide lower network latency.
Network throughputDerived from the throughput performance profile. Additional network tuning parameters are available for maximum network throughput.
Energy savingAdjust your system to maximize power savings.
OracleOptimized for Oracle database load based on throughput performance profile.
Virtual guestOptimized to run in virtual guests
Web hostingIf used to run KVM guests, adjust the system for best performance

So let’s look at two system tuning modes.

Static adjustment

In this adjustment method, Tune up The daemon applies system settings when the service starts or when a new tuning profile is selected. It configures predefined kernel parameters in a configuration file, Tuning applies at runtime. Kernel parameters are set for overall performance expectations and are not adjusted as activity levels change.

Dynamic Adjustment

With dynamic adjustments, the adjusted daemon can monitor system activity and adjust settings based on changes in runtime behavior. Dynamic adjustments start with the initial settings declared in the selected adjustment profile and continuously adjust to the current workload.

Installation tuning

In RHEL / CentOS 8/7 Linux systems, the adjusted packages are installed and enabled by default. If you want to manually install and enable packages on a CentOS / RHEL machine, run the following command:

sudo yum install tuned
sudo systemctl enable --now tuned

Ubuntu / Debian:

sudo apt update
sudo apt install tuned tuned-utils tuned-utils-systemtap

Confirm the service status after startup.

$ systemctl status tuned
● tuned.service - Dynamic System Tuning Daemon
   Loaded: loaded (/usr/lib/systemd/system/tuned.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2020-02-04 04:10:52 UTC; 6 days ago
     Docs: man:tuned(8)
           man:tuned.conf(5)
           man:tuned-adm(8)
 Main PID: 936 (tuned)
   CGroup: /system.slice/tuned.service
           └─936 /usr/bin/python2 -Es /usr/sbin/tuned -l -P

.....

Select adjustment profile

The adjusted configuration files are divided into the following categories:

  • Performance Boost Profile
  • Energy-saving profiles

Performance improvement profiles include profiles that focus on:

  • Low latency for storage and networking
  • High-throughput storage and networking
  • Web hosting performance
  • Virtual machine performance

We will use tuning Command to change the settings of the adjusted daemon.

Check the currently active tuning profile:

$ tuned-adm active
Current active profile: virtual-guest

of Adjusted ad list The command is used to list all available tuning profiles:

Available profiles:
- balanced                    - General non-specialized tuned profile
- desktop                     - Optimize for the desktop use-case
- 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
- 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

On Ubuntu, more configuration files are available:

$ tuned-adm list
Available profiles:
- atomic-guest                - Optimize virtual guests based on the Atomic variant
- atomic-host                 - Optimize bare metal systems running the Atomic variant
- balanced                    - General non-specialized tuned profile
- cpu-partitioning            - Optimize for CPU partitioning
- default                     - Legacy default tuned profile
- desktop                     - Optimize for the desktop use-case
- desktop-powersave           - Optmize for the desktop use-case with power saving
- enterprise-storage          - Legacy profile for RHEL6, for RHEL7, please use throughput-performance profile
- laptop-ac-powersave         - Optimize for laptop with power savings
- laptop-battery-powersave    - Optimize laptop profile with more aggressive power saving
- 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
- oracle                      - Optimize for Oracle RDBMS
- powersave                   - Optimize for low power consumption
- realtime                    - Optimize for realtime workloads
- realtime-virtual-guest      - Optimize for realtime workloads running within a KVM guest
- realtime-virtual-host       - Optimize for KVM guests running realtime workloads
- sap-hana                    - Optimize for SAP HANA
- sap-hana-vmware             - Optimize for SAP HANA running inside a VMware guest
- sap-netweaver               - Optimize for SAP NetWeaver
- server-powersave            - Optimize for server power savings
- spindown-disk               - Optimize for power saving by spinning-down rotational disks
- 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

tuned-adm configuration file The command is used to switch the active profile to another profile. This example will tune our system for maximum throughput.

sudo tuned-adm profile throughput-performance

Confirm the current profile.

$ sudo tuned-adm active
Current active profile: throughput-performance

Check system recommended adjustment profile

The tuned-adm command can also suggest system tuning profiles. This is based on various system characteristics, including whether the system is a virtual machine and other predefined categories selected during system installation.

$ tuned-adm recommend
virtual-guest

You can then set your profile to a recommended value.

sudo tuned-adm profile virtual-guest

To view the profile details, run:

$ tuned-adm profile_info virtual-guest
Profile name:
virtual-guest

Profile summary:
Optimize for running inside a virtual guest

Profile description:

Close profile

To revert setting changes made by the current profile, switch to another profile or deactivate the tuned daemon.

Use the tuned-adm off command to turn off tuned tuning activities:

$ tuned-adm off

Confirm with the following command:

$ tuned-adm active

You can also use the Cockpit Web console to manage adjustment profiles.

Running CentOS 8 VM with Vagrant on KVM / VirtualBox / VMWare / Parallels

Retain system journal records with persistent storage

Enable Hyper-V on Windows 10 and install Vagrant

Sidebar