Red Hat Training

A Red Hat training course is available for RHEL 8

第 2 章 Tuned 入门

作为系统管理员,您可以使用 Tuned 应用程序针对各种用例优化系统性能配置集。

2.1. Tuned 的目的

tuned 是一种监控系统并优化特定工作负载下性能的服务。Tuned 的核心是配置集,它们根据不同的用例对系统进行调优。

tuned 附带许多预定义配置集用于用例,例如:

  • 高吞吐量
  • 低延迟
  • 节能功能

可以修改为每个配置集定义的规则,并自定义如何调优特定的设备。当您切换到另一个配置集或取消激活 Tuned 时,上一个配置集对系统设置所做的所有更改都会恢复到其原始状态。

您还可以配置 Tuned 以响应设备使用的变化,并调整设置以提高活跃设备的性能并减少不活跃设备的功耗。

2.2. tuned 配置集

对系统的详细分析可能非常耗时。tuned 提供许多预定义配置集,适用于典型的用例。您还可以创建、修改和删除配置文件。

Tuned 提供的配置集分为以下类别:

  • 节能配置集
  • 性能提升配置集

性能提升配置集包括侧重于以下方面的配置集:

  • 存储和网络的低延迟
  • 存储和网络的高吞吐量
  • 虚拟机性能
  • 虚拟化主机性能

配置集配置语法

tuned.conf 文件可以包含一个 [main] 部分,以及用于配置插件实例的其它部分。但是,所有部分都是可选的。

以 hash 符号(#)开头的行是注释。

其它资源

  • tuned.conf(5) man 手册.

2.3. 默认 Tuned 配置集

在安装过程中,系统的最佳配置集会被自动选择。目前,默认配置集会根据以下可自定义规则选择:

环境默认配置集目标

计算节点

throughput-performance

最佳吞吐量性能

虚拟机

virtual-guest

最佳性能.如果您对最佳性能不感兴趣,您可以将其改为 balancedpowersave 配置集。

其他情况

balanced

平衡性能和功耗

其它资源

  • tuned.conf(5) man 手册.

2.4. 合并 Tuned 配置集

作为实验性功能,可以同时选择更多配置集。tuned 将尝试在负载期间合并它们。

如果存在冲突,则最后一个指定的配置集中的设置具有优先权。

例 2.1. 虚拟客户机中的低功耗

以下示例优化了系统在虚拟机中运行以获得最佳性能,并同时针对低功耗进行调整,而低功耗则是优先级:

# tuned-adm profile virtual-guest powersave
警告

合并可以自动完成,无需检查生成的参数组合是否有意义。因此,这个功能可能会以相反的方式调整一些参数,这可能是计数器:例如,使用 throughput-performance 配置集设置磁盘以实现高吞吐量,并同时将磁盘降序设置为 spindown-disk 配置集的低值。

其它资源

  • tuned.conf(5) man 手册.

2.5. Tuned 配置集的位置

在以下目录中调优存储配置集

/usr/lib/tuned/
发行版相关的配置文件存储在 目录中。每个配置集都有自己的目录。该配置集由名为 tuned.conf 的主配置文件以及其他可选文件组成,如 helper 脚本。
/etc/tuned/
如果需要自定义配置集,请将配置集目录复制到用于自定义配置集的 目录中。如果同一名称有两个配置集,则使用 /etc/tuned/ 中的自定义配置集。

其它资源

  • tuned.conf(5) man 手册.

2.6. RHEL 提供的调优配置集

以下是在 Red Hat Enterprise Linux 上安装 Tuned 的配置集列表

注意

可能提供更多特定于产品或第三方调优配置集。此类配置文件通常由单独的 RPM 软件包提供。

balanced

默认节能配置文件.它旨在成为性能和能耗之间的妥协。它尽可能使用自动扩展和自动调整。唯一缺点是增加了延迟。在当前的 Tuned 版本中,它启用了 CPU、磁盘、音频和视频插件并激活 conservative CPU 调控器。如果支持,radeon_powersave 选项使用 dpm-balanced 值,否则将其设置为 auto

它将 energy_performance_preference 属性更改为 normal 能源设置。它还将 scaling_governor 策略属性改为 conservativepowersave CPU 调控器。

powersave

用于最大节能性能的配置文件。它可以限制性能,从而最大程度减少实际的功耗。在当前的 Tuned 版本中,它为 SATA 主机适配器实现 USB autosuspend、WiFi 节能和 Aggressive Link Power Management(ALPM)节能。它还为低唤醒率的系统调度多核功率节省,并激活 ondemand 调控器。它可节省 AC97 音频功率,或者根据您的系统节省 HDA-Intel 功耗,而超时为 10 秒。如果您的系统包含启用了 KMS 的 Radeon 图形卡,配置集将其配置为自动节能。在 ASUS Eee PC 上启用动态 Super Hybrid Engine。

它将 energy_performance_preference 属性更改为 powersavepower 能源设置。它还将 scaling_governor 策略属性改为 ondemandpowersave CPU 调控器。

注意

在某些情况下,与 powersave 配置集相比,balanced 配置集更高效。

请考虑需要执行一系列明确的工作,例如需要转码的视频文件。如果在全功率上执行转码,因为任务很快完成,计算机开始空闲,并且可以自动步入到非常高效的节能模式,您的机器可能会消耗较少的能源消耗。另一方面,如果您用限流机器对文件进行转换,则计算机在转码期间消耗的功率较少,但这个过程需要更长的时间,总体消耗的能源可能会更高。

因此,balanced 配置集通常是一个更好的选择。

throughput-performance

针对高吞吐量优化的服务器配置文件。它禁用节能机制并启用 sysctl 设置,以提高磁盘和网络 IO 的吞吐量性能。CPU 调控器被设置为 performance

它将 energy_performance_preferencescaling_governor 属性更改为 performance 配置集。

accelerator-performance
accelerator-performance 配置集包含与 throughput-performance 配置集相同的调优。另外,它会将 CPU 锁定为低 C 状态,从而使延迟少于 100us。这提高了某些加速器(如 GPU)的性能。
latency-performance

针对低延迟而优化的服务器配置文件。它禁用节能机制并启用可提高延迟的 sysctl 设置。CPU 调控器被设置为 performance,CPU 锁定为低 C 状态(通过 PM QoS)。

它将 energy_performance_preferencescaling_governor 属性更改为 performance 配置集。

network-latency

低延迟网络调优配置文件。它基于 latency-performance 配置集。它还禁用透明巨页和 NUMA 平衡,并调整其他几个网络相关的 sysctl 参数。

它继承了将 energy_performance_preferencescaling_governor 属性更改为 performance 配置集的 latency-performance 配置集。

hpc-compute
针对高性能计算优化的配置集。它基于 latency-performance 配置集。
network-throughput

用于吞吐量网络调优的配置文件。它基于 throughput-performance 配置集。它还会增加内核网络缓冲区。

它继承 latency-performancethroughput-performance 配置集,并将 energy_performance_preferencescaling_governor 属性更改为 performance 配置集。

virtual-guest

基于 throughput-performance 配置集为 Red Hat Enterprise Linux 8 虚拟机和 VMWare 客户机设计配置集,它可减少虚拟内存交换性并增加磁盘预读值。它不禁用磁盘障碍。

它继承 throughput-performance 配置集,并将 energy_performance_preferencescaling_governor 属性更改为 performance 配置集。

virtual-host

基于 throughput-performance 配置集为虚拟主机设计的配置集,除了其它任务外,还可减少虚拟内存交换性,增加磁盘预读值,并启用更积极的脏页面回写值。

它继承 throughput-performance 配置集,并将 energy_performance_preferencescaling_governor 属性更改为 performance 配置集。

oracle
基于 throughput-performance 配置文件优化的 Oracle 数据库负载配置集。它还禁用透明大内存页并修改其他与性能相关的内核参数。这个配置集由 tuned-profiles-oracle 软件包提供。
desktop
基于 balanced 配置文件为桌面优化的配置文件。它还支持调度程序自动组,以更好地响应交互式应用程序。
cpu-partitioning

cpu-partitioning 配置集将系统 CPU 划分为隔离和内务的 CPU。为减少隔离 CPU 上的 jitter 和中断,配置集清除了与用户空间进程、可移动内核线程、中断处理程序和内核计时器隔离的 CPU。

内务 CPU 可以运行所有服务、shell 进程和内核线程。

您可以在 /etc/tuned/cpu-partitioning-variables.conf 文件中配置 cpu-partitioning 配置集。配置选项为:

isolated_cores=cpu-list
列出要隔离的 CPU。隔离 CPU 的列表用逗号分开,用户可以指定范围。您可以使用破折号指定一个范围,如 3-5。此选项是必需的。此列表中缺少的任何 CPU 都会自动被视为内务 CPU。
no_balance_cores=cpu-list
列出内核在系统范围范围的进程负载均衡期间没有考虑的 CPU。此选项是可选的。这通常与 isolated_cores 列表相同。

有关 cpu-partitioning 的详情请参考 tuned-profiles-cpu-partitioning(7) man page。

optimize-serial-console

通过减少 printk 值将 I/O 活动向下调整到串行控制台的配置集。这可提高串行控制台的响应速度。这个配置集旨在用作其他配置集上的覆盖。例如:

# tuned-adm profile throughput-performance optimize-serial-console
mssql
为 Microsoft SQL Server 提供的配置集。它基于 thoguhput-performance 配置集。
intel-sst

针对具有用户定义的 Intel Speed Select Technology 配置的系统优化配置集。这个配置集旨在用作其他配置集上的覆盖。例如:

# tuned-adm profile cpu-partitioning intel-sst

2.7. RHEL 提供的实时 Tuned 配置集

实时配置集适用于运行实时内核的系统。如果没有特殊的内核构建,它们不会将系统配置为实时系统。在 RHEL 上,配置集可从其他软件仓库获得。

可用的实时配置集如下:

realtime

在裸机实时系统上使用。

tuned-profiles-realtime 软件包提供,该软件包可从 RT 或 NFV 存储库获取。

realtime-virtual-host

在配置为实时的虚拟化主机中使用.

tuned-profiles-nfv-host 软件包提供,该软件包可从 NFV 存储库中获取。

realtime-virtual-guest

在配置为实时的虚拟化 guest 中使用.

tuned-profiles-nfv-guest 软件包提供,该软件包可从 NFV 存储库中获取。

2.8. Tuned 中的静态和动态调优

本节解释 Tuned 应用的两个系统调优类别之间的区别:静态 和动态

静态调优
主要由预定义的 sysctlsysfs 设置以及几个配置工具(如 ethtool )的一次性激活组成。
动态调优

观察如何在整个系统正常运行期间使用各种系统组件。tuned 可基于该监控信息动态调整系统设置。

例如,硬盘驱动器在启动和登录期间大量使用,但在用户可能主要使用 Web 浏览器或电子邮件客户端等应用时很少使用。同样,CPU 和网络设备在不同的时间使用不同。tuned 监控这些组件的活动,并响应其使用中的变化。

默认情况下禁用动态调优。要启用它,请编辑 /etc/tuned/tuned-main.conf 文件并将 dynamic_tuning 选项改为 1tuned 随后定期分析系统统计信息,并使用它们更新您的系统调优设置。要配置这些更新之间的时间间隔,使用 update_interval 选项。

目前实施动态调优算法,试图平衡性能和 powersave,因此在性能配置集中被禁用。可以在 Tuned 配置集中启用或禁用单个插件的动态调优。

例 2.2. workstation 上的静态和动态调优

在典型的办公室工作站上,以太网网络接口大部分时间处于非活动状态。只有几封电子邮件可以进入和传出,或者可能加载一些网页。

对于这些类型的负载,网络接口不必像默认那样全速运行。tuned 具有对网络设备的监控和调优插件,可检测此低活动,然后自动降低该接口的速度,通常导致功耗降低。

如果接口上的活动在较长时间内增加,例如,下载 DVD 镜像或打开包含大附件的电子邮件,Tuned 会检测到这一点,并将接口速度设置为在活动水平较高时提供最佳性能。

此原则也用于 CPU 和磁盘的其他插件。

2.9. tuned no-daemon 模式

您可以使用 no-daemon 模式运行 Tuned,不需要任何驻留的内存。在这个模式中,Tuned 应用设置并退出。

默认情况下禁用 no-daemon 模式,因为此模式中缺少很多 Tuned 功能,包括:

  • D-Bus 支持
  • 热插拔支持
  • 对设置的回滚支持

要启用 no-daemon 模式,请在 /etc/tuned/tuned-main.conf 文件中包括以下行:

daemon = 0

2.10. 安装并启用 Tuned

此流程安装并启用 Tuned 应用程序,为您的系统安装 Tuned 配置集并预设置默认 Tuned 配置集。

流程

  1. 安装 tuned 软件包:

    # yum install tuned
  2. 启用并启动 tuned 服务:

    # systemctl enable --now tuned
  3. 另外,还可为实时系统安装 Tuned 配置集:

    # yum install tuned-profiles-realtime tuned-profiles-nfv
  4. 验证 Tuned 配置集是否活跃并应用:

    $ tuned-adm active
    
    Current active profile: balanced
    $ tuned-adm verify
    
    Verfication succeeded, current system settings match the preset profile.
    See tuned log file ('/var/log/tuned/tuned.log') for details.

2.11. 列出可用的 Tuned 配置集

此流程列出了系统中当前可用的所有 Tuned 配置集。

流程

  • 要列出系统中所有可用的 Tuned 配置集,请使用:

    $ tuned-adm list
    
    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: balanced
  • 要只显示当前活跃的配置集,请使用:

    $ tuned-adm active
    
    Current active profile: balanced

其它资源

  • tuned-adm(8) man 手册.

2.12. 设置 Tuned 配置集

此流程激活系统中所选 Tuned 配置集。

先决条件

流程

  1. 另外,您还可以让 Tuned 建议最适合您的系统的配置集:

    # tuned-adm recommend
    
    balanced
  2. 激活配置集:

    # tuned-adm profile selected-profile

    另外,您可以激活多个配置集的组合:

    # tuned-adm profile profile1 profile2

    例 2.3. 针对低功耗优化的虚拟机

    以下示例优化了系统,使其在具有最佳性能的虚拟机中运行,并同时进行微调以实现低功耗,而低功耗则是优先级:

    # tuned-adm profile virtual-guest powersave
  3. 查看系统中当前活跃的 Tuned 配置集:

    # tuned-adm active
    
    Current active profile: selected-profile
  4. 重启系统:

    # reboot

验证步骤

  • 验证 Tuned 配置集是否活跃并应用:

    $ tuned-adm verify
    
    Verfication succeeded, current system settings match the preset profile.
    See tuned log file ('/var/log/tuned/tuned.log') for details.

其它资源

  • tuned-adm(8) man page

2.13. 禁用 Tuned

此流程禁用 Tuned,并在 Tuned 修改前将所有受影响的系统设置重置为原始状态。

流程

  • 临时禁用所有调整:

    # tuned-adm off

    调整会在 tuned 服务重启后再次应用。

  • 另外,要永久停止和禁用 tuned 服务:

    # systemctl disable --now tuned

其它资源

  • tuned-adm(8) man page