Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第 3 章 对外部内核参数的重要更改

本章为系统管理员提供了与 Red Hat Enterprise Linux 7.4 附带的内核有显著变化的总结。这些更改包括添加或更新的 proc 条目、sysctlsysfs 默认值、引导参数、内核配置选项或任何可见的行为更改。

更新了 /proc/sys/kernel 条目

hung_task_panic
在检测到无响应任务时控制内核的行为。如果启用了 CONFIG_DETECT_HUNG_TASK,就会发生这个文件。
格式:{ "0" | "1" }
0 - 继续操作。默认行为。
1 - 立即 panic。
hung_task_check_count
提供所检查的任务数上限。如果启用了 CONFIG_DETECT_HUNG_TASK,就会发生这个文件。
hung_task_timeout_secs
检查间隔。报告警告,如果 D 状态的任务没有调度时间超过这个值的时间。如果启用了 CONFIG_DETECT_HUNG_TASK,就会发生这个文件。
0 - 无限超时 - 不检查操作。
hung_task_warning
提供检查间隔期间报告的最大警告数。达到这个值时,不会报告更多警告。如果启用了 CONFIG_DETECT_HUNG_TASK,就会发生这个文件。
-1 - 报告无限警告数。
panic_on_rcu_stall
当设置为 1 时,在 RCU 停止检测信息后调用 panic()函数。这可用于定义 RCU 使用 vmcore 的根本原因。
0 - 当 RCU 停止发生时不会 panic。默认行为。
1 - 打印 RCU 停止信息后出现 panic。

更新了 /proc/sys/user 条目

您可以使用 /proc/sys/user 目录中的文件覆盖命名空间数量以及每个用户命名空间限制的其他对象的默认限制。这些限制的目的是停止出现故障并尝试创建大量对象的程序。这些限制的默认值会被调整,以便正常操作中的任何程序都无法访问它们。
每个用户命名空间对象的创建均负责创建对象的用户命名空间中的用户,并在该用户命名空间中的每个用户限制下被验证。在用户命名空间中进行创建此类对象,同时也负责创建用户命名空间的所有用户。
这个创建的对象的递归计数可确保创建用户命名空间不允许用户超过其当前限制。
/proc/sys/user 中更新的文件有:
max_cgroup_namespaces
当前用户命名空间中的任何用户可以创建的控制组群命名空间的最大数量。
max_ipc_namespaces
当前用户命名空间中的任何用户可以创建的进程间通信命名空间的最大数量。
max_mnt_namespaces
当前用户命名空间中的任何用户可以创建的挂载命名空间的最大数量。
max_net_namespaces
当前用户命名空间中的任何用户可以创建的网络命名空间的最大数量。
max_pid_namespaces
当前用户命名空间中的任何用户可以创建的最大进程 ID 命名空间数。
max_user_namespaces
当前用户命名空间中的任何用户可以创建的用户 ID 命名空间的最大数量。
max_uts_namespaces
当前用户命名空间中的任何用户可以创建的 UNIX 时间共享系统(UTS)命名空间的最大数量。

内核参数

acpi_force_table_verification [HW,ACPI]
在早期阶段启用表 checksum 验证。默认情况下,因为早期映射大小限制,在 32 位 AMD 和 Intel 构架中被禁用。
acpi_no_auto_ssdt [HW,ACPI]
禁用自动加载次要系统描述表(SSDT)。
acpi_no_static_ssdt [HW,ACPI]
禁止在早期引导时安装静态 SSDT。默认情况下,根磁盘系统描述表(RSDT)或 eXtended System Descriptor Table(XSDT)中包含的 SSDT 会被自动安装,并显示在 /sys/firmware/acpi/tables 目录中。
这个选项关闭这个功能。指定这个选项不会影响将 SSDT 表安装到 /sys/firmware/acpi/tables/dynamic 目录的动态表安装。
irqaffinity= [SMP]
使用以下格式设置默认 irq 关联性掩码:
格式: <cpu number>,..., <cpu number>
或者
<cpu number>-<cpu number>
您可以以升序或组合使用正范围。
<cpu number>,...,<cpu number>-<cpu number>
nokaslr [KNL]]
禁止在早期引导时安装静态 SSDT。默认情况下,自动安装 RSDT 或 XSDT 中的 SSDT,它们会出现在 /sys/firmware/acpi/tables 目录中。
如果设置了 CONFIG_RANDOMIZE_BASE,则禁用内核和模块偏移地址 SpaceLayout Randomization(ASLR)。
nohibernate
禁用休眠和恢复。
crash_kexec_post_notifiers
运行 panic-notifiers 和 dump kmsg 后运行 kdump
[PCI] hpbussize=nn
在热插拔桥下方为总线提供最少的附加总线号。默认为 1。
pcie_port_pm=[PCIE]
PCIe 端口电源管理处理:
格式:{ "off" | "force" }
off - 禁用所有 PCIe 端口的电源管理。
1 - 启用所有 PCIe 端口的电源管理。
sunrpc.svc_rpc_per_connection_limit=[NFS,SUNRPC]
将服务器的请求数量限制为与单一连接并行处理。默认值为 0(无限制)。