2.8. 可用的 TuneD 插件
监控插件
目前,实施了以下监控插件:
disk
- 每个设备获取磁盘负载(IO 操作数)和测量间隔。
net
- 每个网卡获取网络负载(传输数据包的数量)和测量间隔。
load
- 获取每个 CPU 的 CPU 负载和测量间隔。
调优插件
目前,实施了以下调优插件。只有其中一些插件实施动态性能优化。列出插件支持的选项:
cpu
将 CPU 调控器设置为
governor
选项指定的值,并根据 CPU 负载动态更改电源管理服务质量 (PM QoS) CPU Direct Memory Access (DMA) 延迟。如果 CPU 负载低于
load_threshold
选项指定的值,则延迟设置为由latency_high
选项指定的值,否则它将设置为latency_low
指定的值。您还可以强制对特定值强制延迟并阻止它动态更改。要做到这一点,将
force_latency
选项设置为所需的延迟值。eeepc_she
根据 CPU 负载动态设置前端总线 (FSB) 速度。
此功能可在一些笔记本电脑中找到,也称为 ASUS Super Hybrid Engine (SHE) 。
如果 CPU 负载较低或等于
load_threshold_powersave
选项指定的值,则插件会将 FSB 速度设置为she_powersave
选项指定的值。如果 CPU 负载较高或等于load_threshold_normal
选项指定的值,它会将 FSB 速度设置为she_normal
选项指定的值。不支持静态调优,如果 TuneD 不检测到对这个功能的硬件支持,则插件会被透明禁用。
net
-
将 Wake-on-LAN 功能配置为
wake_on_lan
选项指定的值。它使用与ethtool
实用程序相同的语法。它还会根据接口利用率动态更改接口速度。 sysctl
设置由插件选项指定的各种
sysctl
设置。语法为
name=value
,其中 name 与sysctl
实用程序提供的名称相同。如果您需要更改 TuneD 中其他插件所涵盖的系统设置,请使用
sysctl
插件。如果某些特定插件提供了设置,首选这些插件。usb
将 USB 设备的自动暂停超时设置为
autosuspend
参数指定的值。值
0
表示禁用自动暂停。vm
启用或禁用透明大内存页,具体取决于 transparent
_hugepages
选项的值。transparent_hugepages
选项的有效值为:- "always"
- "never"
- "madvise"
audio
将音频解码器的 autosuspend timeout 设置为
timeout
选项指定的值。目前,支持
snd_hda_intel
和snd_ac97_codec
codec。值0
表示自动暂停已被禁用。您还可以通过将 布尔值选项reset_controller
设置为true
来强制实施控制器重置。disk
将磁盘电梯设置为
elevator
选项指定的值。它还设置:
-
apm
选项指定的值的 APM -
调度程序对由
scheduler_quantum
选项指定的值进行量化 -
磁盘 spindown 的超时值由
spindown
选项指定的值 -
磁盘的 readahead 会到
readahead
参数指定的值 -
当前磁盘 readahead 值乘以
readahead_multiply
选项指定的常数
此外,此插件根据当前的驱动器利用率动态地更改驱动器的高级电源管理和机超时设置。动态调优可以由布尔值选项
动态
控制,默认情况下是启用的。-
scsi_host
SCSI 主机的选项调整。
它将积极链接电源管理 (ALPM) 设置为
alpm
选项指定的值。mounts
-
根据
disable_barriers
选项的布尔值启用或禁用挂载障碍。 script
加载或卸载配置集时,执行外部脚本或二进制代码。您可以选择任意可执行文件。
重要script
插件主要被用来与更早的版本兼容。如果其他 TuneD 插件涵盖所需的功能,则首选其他 TuneD 插件。TuneD 使用以下参数之一调用可执行文件:
-
在载入配置集时
start
-
在卸载配置集时
stop
您需要在可执行文件中正确实施
stop
操作,并恢复您在start
操作过程中更改的所有设置。否则,在更改 TuneD 配置集后回滚步骤将无法正常工作。Bash 脚本可以导入
/usr/lib/tuned/functions
Bash 库,并使用那里定义的功能。只在由 TuneD 原生提供的功能中使用这些功能。如果函数名称以下划线开头,如_wifi_set_power_level
,请考虑函数私有且不要在脚本中使用,因为它可能会在以后有所变化。使用插件配置中的
script
参数指定可执行文件的路径。例 2.6. 从配置集运行 Bash 脚本
要运行位于配置集目录中的
script.sh
的 Bash 脚本,请使用:[script] script=${i:PROFILE_DIR}/script.sh
-
在载入配置集时
sysfs
设置由插件选项指定的各种
sysfs
设置。语法为
name=value
,其中 name 是要使用的sysfs
路径。如果需要更改其他插件未涵盖的一些设置,请使用此插件。如果插件涵盖所需的设置,则首选插件。
video
在视频卡中设置各种电源保存级别。目前,只支持 Radeon 卡。
可以使用
radeon_powersave
选项指定节能级别。支持的值有:-
default
-
auto
-
低
-
mid
-
high
-
dynpm
-
dpm-battery
-
dpm-balanced
-
dpm-perfomance
详情请查看 www.x.org。请注意,此插件是实验性的,选项可能会在以后的版本中有所变化。
-
bootloader
在内核命令行中添加选项。这个插件只支持 GRUB 2 引导装载程序。
grub2_cfg_file
选项指定 GRUB 2 配置文件的自定义非标准位置。内核选项会添加到当前 GRUB 配置及其模板中。需要重新引导系统才能使内核选项生效。
切换到另一个配置集或手动停止
TuneD
服务会删除附加选项。如果您关闭或重启系统,则 kernel 选项会在grub.cfg
文件中保留。内核选项可使用以下语法指定:
cmdline=arg1 arg2 ... argN
例 2.7. 修改内核命令行
例如,要将
quiet
kernel 选项添加到 TuneD 配置集中,请在tuned.conf
文件中包括以下行:[bootloader] cmdline=quiet
以下是在内核命令行中添加
isolcpus=2
选项的自定义配置集示例:[bootloader] cmdline=isolcpus=2
service
处理由插件选项指定的各种
sysvinit
、sysv-rc
、openrc
和systemd
服务。语法为
service.service_name=command[,file:file]
。支持的服务处理命令有:
-
start
-
stop
-
enable
-
disable
使用逗号(
、
)或分号(;
)分隔多个命令。如果指令冲突,service
插件将使用最后列出的。使用可选的
file:file
指令,仅为systemd
安装一个覆盖配置文件file
。其他 init 系统会忽略这个指令。service
插件将覆盖配置文件复制到/etc/systemd/system/service_name.service.d/
目录中。卸载配置文件后,如果目录为空,service
插件会删除它们。注意service
插件仅在带有非systemd
init 系统的当前运行级别上运行。例 2.8. 启动并启用带有覆盖文件的sendmail
sendmail
服务[service] service.sendmail=start,enable,file:${i:PROFILE_DIR}/tuned-sendmail.conf
内部变量
${i:PROFILE_DIR}
指向插件从中加载配置文件的目录。-
scheduler
- 提供调优调度优先级的各种选项,CPU 核隔离,以及进程、线程和 IRQ 相关性。
有关可用的不同选项的具体内容,请参阅 scheduler
TuneD 插件的功能。