Menu Close

2.7. TuneD 插件

插件是 TuneD 配置集中的模块,用于监控或优化系统上的不同设备。

TuneD 使用两种类型的插件:

监控插件

监控插件用于从正在运行的系统中获取信息。通过调优插件进行动态调优,可以使用监控插件的输出。

当任何已启用的调优插件需要指标时,监控插件会自动实例化。如果两个调优插件需要相同的数据,则只创建一个监控插件的实例,并且数据会被共享。

调优插件
每个调优插件对单个子系统进行调优,并会获取从调优配置集填充的多个参数。每个子系统可以有多个设备,如多个 CPU 或网卡,这些设备由调优插件的单个实例处理。还支持单个设备的具体设置。

TuneD 配置集中的插件语法

描述插件实例的部分采用以下格式:

[NAME]
type=TYPE
devices=DEVICES
NAME
是插件实例的名称,在日志中使用。它可以是一个任意字符串。
TYPE
是调优插件的类型。
DEVICES

是此插件实例处理的设备列表。

devices 行可以包含一个列表、通配符(*)和负效果(!)。如果没有 devices 行,则插件实例处理所有在 TYPE 系统中附加的所有设备。这与使用 devices=* 选项相同。

例 2.4. 使用插件匹配块设备

以下示例与以 sd 开头的所有块设备(如 sdasdb )匹配,且不禁用这些块设备:

[data_disk]
type=disk
devices=sd*
disable_barriers=false

以下示例与 sda1sda2 以外的所有块设备匹配:

[data_disk]
type=disk
devices=!sda1, !sda2
disable_barriers=false

如果没有指定插件的实例,则不会启用插件。

如果插件支持更多选项,也可以在插件部分中指定它们。如果没有指定选项,且之前未在 included 插件中指定,则使用默认值。

简短插件语法

如果您的插件实例不需要使用自定义名称,且配置文件中只有一个定义,则 TuneD 支持以下短语法:

[TYPE]
devices=DEVICES

在这种情况下,可以省略 type 行。然后,实例使用名称来指代,与类型相同。然后,前面的示例可重写为:

例 2.5. 使用简短语法匹配块设备

[disk]
devices=sdb*
disable_barriers=false

配置集中的冲突插件定义

如果使用 include 选项指定同一部分,则会合并设置。如果因为冲突而无法合并它们,则最后冲突的定义会覆盖上一个设置。如果您不知道之前定义的内容,您可以使用 replace 布尔值选项并将其设置为 true。这会导致之前带有相同名称的定义被覆盖,且不会出现合并。

您还可以通过指定 enabled=false 选项来禁用插件。这与实例从未定义的影响相同。如果您从 include 选项重新定义之前定义,且不想在自定义配置集中激活插件,则禁用插件会很有用。

注意

TuneD 包含了作为启用或禁用调优配置文件的一部分来运行任何 shell 命令的功能。这可让您使用尚未集成到 TuneD 的功能扩展 TuneD 配置集。

您可以使用 script 插件指定任意 shell 命令。

其他资源

  • tuned.conf(5) 手册页