第 6 章 使用 RHEL 系统角色永久配置内核参数


您可以使用 kernel_settings RHEL 系统角色来同时在多个客户端上配置内核参数。同时配置具有以下优点:

  • 提供带有有效输入设置的友好接口。
  • 保留所有预期的内核参数。

从控制计算机运行 kernel_settings 角色后,内核参数将立即应用于受管系统,并在重新启动后保留。

重要

请注意,通过 RHEL 渠道提供的 RHEL 系统角色可作为默认 AppStream 存储库中的 RPM 软件包提供给 RHEL 客户。RHEL 系统角色也可作为一个集合提供给具有通过 Ansible Automation Hub 的 Ansible 订阅的客户。

6.1. 使用 kernel_settings RHEL 系统角色应用所选的内核参数

您可以使用 kernel_settings RHEL 系统角色在多个受管操作系统间远程配置各种内核参数,并具有持久性效果。例如,您可以配置:

  • 透明巨页,通过减少管理较小的页面的开销来提高性能。
  • 使用回环接口通过网络传输的最大数据包大小。
  • 限制对要同时打开的文件的限制。

先决条件

流程

  1. 创建一个包含以下内容的 playbook 文件,如 ~/playbook.yml

    ---
    - name: Configuring kernel settings
      hosts: managed-node-01.example.com
      tasks:
        - name: Configure hugepages, packet size for loopback device, and limits on simultaneously open files.
          ansible.builtin.include_role:
            name: rhel-system-roles.kernel_settings
          vars:
            kernel_settings_sysctl:
              - name: fs.file-max
                value: 400000
              - name: kernel.threads-max
                value: 65536
            kernel_settings_sysfs:
              - name: /sys/class/net/lo/mtu
                value: 65000
            kernel_settings_transparent_hugepages: madvise
            kernel_settings_reboot_ok: true

    示例 playbook 中指定的设置包括以下内容:

    kernel_settings_sysfs: <list_of_sysctl_settings>
    sysctl 设置的 YAML 列表以及您要分配给这些设置的值。
    kernel_settings_transparent_hugepages: <value>
    控制内存子系统透明巨页(THP)设置。您可以禁用 THP 支持(永不)、启用系统范围(始终 )或在 MAD_HUGEPAGE 区域(madvise)中启用。
    kernel_settings_reboot_ok: <true|false>
    默认值为 false。如果设置为 true,则系统角色将确定是否需要重新启动受管主机,以便请求的更改生效并重新启动它。如果设置为 false,则角色将返回变量 kernel_settings_reboot_required,值设为 true,表示需要重启。在这种情况下,用户必须手动重新引导受管节点。

有关 playbook 中使用的所有变量的详情,请查看控制节点上的 /usr/share/ansible/roles/rhel-system-roles.kdump/README.md 文件。

  1. 验证 playbook 语法:

    $ ansible-playbook --syntax-check ~/playbook.yml

    请注意,这个命令只验证语法,不会防止错误但有效的配置。

  2. 运行 playbook:

    $ ansible-playbook ~/playbook.yml

验证

  • 验证受影响的内核参数:

    # ansible managed-node-01.example.com -m command -a 'sysctl fs.file-max kernel.threads-max net.ipv6.conf.lo.mtu'
    # ansible managed-node-01.example.com -m command -a 'cat /sys/kernel/mm/transparent_hugepage/enabled'

其他资源

  • /usr/share/ansible/roles/rhel-system-roles.kernel_settings/README.md 文件
  • /usr/share/doc/rhel-system-roles/kernel_settings/ directory
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.