2.5. Tuned 和 ktune
Tuned 是监控系统组件使用的守护进程,并可根据监控信息动态调整系统设置。在任意正常运行的给定系统中,为各种系统组件进行动态帐户调整的方法都不尽相同。例如:在启动和登录过程中会大量使用硬盘,但在之后用户主要使用类似 OpenOffice 或者电子邮件客户端等程序时就几乎不使用硬盘了。同样,不同时间对 CPU 和网络设备的使用是不同的。Tuned 监控这些组件的活动并在其使用中有所改动。
以典型办公室工作站为例。大多数时间里,以太网网络接口将会非常不活跃。过一段时间只有一些电子邮件进出,或者载入一些网页。对于那类负载,网络接口不一定在所有时间都按默认设置那样全速运行。Tuned 有一个用于网络设备的监控和调整插件,可用来探测低活性,并自动降低接口速度,通常也就降低了电力消耗。如果接口活性在较长时间段内大幅度增长,例如下载 DVD 映像或者打开有大附件的电子邮件,tuned 可探测到这个情况并将接口速度设定为最大以便在高活性等级时提供最佳性能。这个原则也用于其他 CPU 和硬盘插件。
网络设备不是默认配置为这样动作,因为速度更改需要有几秒钟之后方可生效,因此对用户体验有直接和可见的影响。同样的考虑也适用于 CPU 和硬盘调整插件。当硬盘转速降低时,它可能需要几秒钟时间重新提高转速,这将导致系统在此阶段有明显的反应延迟。CPU 插件的延迟副作用最小,但仍可测到,只是用户很难注意到而已。
现在除 tuned 外,我们还为您提供 ktune。Ktune 是由红帽企业版 Linux 5.3 作为用于具体使用案例的机器优化性能而引进的框架和服务。从那时起,ktune 有很大程度的改进,现在我们使用它作为一般调节框架的固定部分。它主要用于 第 2.5.2 节 “Tuned-adm” 中描述的不同的预定义侧写。
使用以下命令安装 tuned 软件包及其关联的 systemtap 脚本:
yum install tuned
安装 tuned 软件包还会在
/etc/tuned.conf
中设定一个示例配置文件,并激活默认侧写。
运行以下命令启动 tuned:
service tuned start
要在每次机器引导时启动 tuned,请运行:
chkconfig tuned on
Tuned 有可选选项,您可在手动运行该程序时使用。可用选项有:
-d
,--daemon
- 将 tuned 作为守护进程启动,而不是在前台启动。
-c
,--conffile
- 使用有具体名称和路径的配置文件,例如:
--conffile=/etc/tuned2.conf
。默认为/etc/tuned.conf
。 -D
,--debug
- 使用日志记录的最高级别。
2.5.1. tuned.conf
文件
tuned.conf
文件包含 tuned 配置设定。默认情况下,它位于 /etc/tuned.conf
,但您可以通过启动带 --conffile
选项的 tuned.conf
指定一个不同的名称和位置。
配置文件必须含有为 tuned 定义通用参数的
[main]
部分。该文件还应为每个插件包含一个部分。
[main]
部分包含以下选项:
interval
- tuned 应该监控并调节系统的时间间隔,单位为秒。默认值为
10
。 verbose
- 指定输出结果是否应该详细。默认值为
False
。 logging
- 指定要记录信息的最小优先权。按降序排列允许的值有:
critical
、error
、warning
、info
和debug
。默认值为info
。 logging_disable
- 指定要记录信息的最大优先权,任何带这个优先权或者更低的优先权将不被记录。
critical
、error
、warning
、info
和debug
。notset
禁用这个选项。
每个插件都有其自身的片段,在方括号内指定插件名称。例如:
[CPUTuning]
。每个插件可有其自身的选项,但以下内容适用于所有插件:
enabled
- 指定是否启用该插件。默认值为
True
。 verbose
- 指定输出是否应详细。如果没有为这个插件设定,该值会继承
[main]
中的值。 logging
- 指定要记录信息的最小优先权。如果没有为这个插件设定,该值会继承
[main]
中的值。
示例配置文件如下:
[main] interval=10 pidfile=/var/run/tuned.pid logging=info logging_disable=notset # Disk monitoring section [DiskMonitor] enabled=True logging=debug # Disk tuning section [DiskTuning] enabled=True hdparm=False alpm=False logging=debug # Net monitoring section [NetMonitor] enabled=True logging=debug # Net tuning section [NetTuning] enabled=True logging=debug # CPU monitoring section [CPUMonitor] # Enabled or disable the plugin. Default is True. Any other value # disables it. enabled=True # CPU tuning section [CPUTuning] # Enabled or disable the plugin. Default is True. Any other value # disables it. enabled=True