TuneD plugins
TuneD profiles use plugins to monitor or optimize different devices on the system.
TuneD uses two types of plugins:
- Monitoring plugins
- Used for gathering system data such as, CPU load, disk I/O, and network traffic. The output of the monitoring plugins can be used by tuning plugins for dynamic tuning. Monitoring plugins are automatically instantiated whenever their metrics are needed by any of the enabled tuning plugins. The available monitoring plugins are:
-
disk - Gets disk load (number of IO operations) per device and measurement interval.
-
net - Gets network load (number of transferred packets) per network card and measurement interval.
-
load - Gets CPU load per CPU and measurement interval.
- Tuning plugins
- Each tuning plugin tunes an individual subsystem and takes several parameters that are populated from the TuneD profiles. Each subsystem can have multiple devices, such as multiple CPUs or network cards, handled by individual instances of the tuning plugins. Specific settings for individual devices are also supported. The available tuning plugins are:
-
acpi - Configures the ACPI driver. Use the
platform_profileoption to set the ACPI platform profilesysfsattribute. It is a genericpower/performancepreference API for other drivers. Multiple profiles can be specified, separated by|. The first available profile is selected. -
audio - Sets the autosuspend timeout for audio codecs to the value specified by the timeout option. Currently, the
snd_hda_intelandsnd_ac97_codeccodecs are supported. The value 0 means that autosuspend is disabled. You can also enforce the controller reset by setting the Boolean option reset_controller totrue. -
bootloader - Adds options to the kernel command line. This plugin supports only the GRUB boot loader. Customized non-standard location of the GRUB configuration file can be specified by the
grub2_cfg_fileoption. The kernel options are added to the current GRUB configuration and its templates. The system needs to be rebooted for the kernel options to take effect. -
cpu - Manages CPU governor and power settings by setting the CPU governor to the value specified by the
governoroption. It dynamically changes the Power Management Quality of Service (PM QoS) CPU Direct Memory Access (DMA) latency, according to the CPU load. -
disk - Manages disk settings such as
apm,scheduler_quantum,readahead,readahead_multiply,spindown. -
eeepc_she - Dynamically sets the front-side bus (FSB) speed according to the CPU load.
-
irq - Handles individual interrupt requests (IRQ) as devices and multiple plugin instances can be defined, each addressing different devices or irqs. The device names used by the plugin are
irq<n>, where<n>is the IRQ number. The special deviceDEFAULTcontrols values written to/proc/irq/default_smp_affinity, which applies to all non-active IRQs. -
irqbalance - Manages settings for
irqbalance. The plugin configures CPUs which should be skipped when rebalancing IRQs in/etc/sysconfig/irqbalance. It then restarts irqbalance only if it was previously running. -
modules - Applies custom kernel modules options. It can set parameters to kernel modules and creates
/etc/modprobe.d/tuned.conffile. The syntax ismodule=option1=value1 option2=value2…wheremoduleis the module name andoptionx=valuexare module options which might be present. -
mounts - Enables or disables barriers for mounted filesystems.
-
net - Configures Wake-on-LAN and interface speed by using the same syntax as the ethtool utility. Also, dynamically changes the interface speed according to the interface utilization.
-
rtentsk - Avoids inter-processor interruptions caused by enabling or disabling static keys. It has no options. When included, TuneD keeps an open socket with timestamping enabled, thus keeping the static key enabled.
-
selinux - Tunes SELinux options. SELinux decisions, such as allowing or denying access, are cached. This cache is known as the Access Vector Cache (AVC). When using these cached decisions, SELinux policy rules need to be checked less, which increases performance. The avc_cache_threshold option adjusts the maximum number of AVC entries.
-
systemd - Tunes systemd options. The
cpu_affinityoption sets CPU affinity in/etc/systemd/system.conf. This configures the CPU affinity for the service manager and the default CPU affinity for all forked off processes. Add a comma-separated list of CPUs with optional CPU ranges specified by the minus sign (-). -
scsi_host - Tunes SCSI host settings (for example,
ALPM). -
scheduler - Offers a variety of options for the tuning of scheduling priorities, CPU core isolation, and process, thread, and IRQ affinities.
-
script - Runs external script or binary when loading or unloading a profile.
-
service - Handles various sysvinit, sysv-rc, openrc, and systemd services specified by the plugin options. Supported service handling commands are start, stop, enable, and disable.
-
sysctl - Modifies kernel parameters. Use this plugin only if you want to change system settings that are not covered by other plugins available in TuneD. The syntax is name=value, where name is the same as the name provided by the
sysctlutility. -
sysfs - Sets various
sysfssettings specified by the plugin options. The syntax is name=value, where name is thesysfspath to use. -
usb - Adjusts USB autosuspend timeout. The value
0means that autosuspend is disabled. -
uncore - Limits the maximum and minimum uncore frequency. The options max_freq_khz, min_freq_khz correspond to
sysfsfiles exposed by Intel uncore frequency driver. Their values can be specified in kHz or as a percentage of their configurable range. -
video - Sets various powersave levels on video cards. Currently, only the
Radeoncards are supported. Thepowersavelevel can be specified by using theradeon_powersaveoption. Supported values are, default, auto, low, mid, high, dynpm, dpm-battery, dpm-balanced, and dpm-perfomance. -
vm - Enables or disables transparent huge pages. Valid values for the transparent_hugepages option are:
always, never, madvise.