第 3 章 对外部内核参数的重要更改
本章为系统管理员提供了与 Red Hat Enterprise Linux 7.3 附带的内核有显著变化的总结。这些更改包括添加或更新的
proc
条目、sysctl
和 sysfs
默认值、引导参数、内核配置选项或任何可见的行为更改。
- apic_extnmi=[APIC,X86]
- 提供外部不可屏蔽中断(NMI)交付设置。格式:{ bsp (默认)| 所有 | none }。bsp:外部 NMI 仅传送到 CPU 0。All :外部 NMI 作为 CPU 0 的备份广播到所有 CPU。none :为所有 CPU 屏蔽外部 NMI。这很有用,因此转储捕获内核不会被 NMI 冻结。
- BAU=[X86_UV] 在 SGI UV 上启用 BAU
- 默认行为是禁用 BAU (例如 bau=0)。格式:{ "0" | "1" }0 - 禁用 BAU。1 - 启用 BAU。unset - 禁用 BAU。
- cpu_init_udelay=N [X86]
- 将 assert 和
APIC INIT
的 de-assert 之间的 N 微秒延迟设置为启动处理器。这个延迟在每个 CPU 在线(如引导)上发生,并恢复挂起。默认值:10000 - hardlockup_all_cpu_backtrace=[KNL]
- 硬锁定检测器在所有 cpu 上生成回溯追踪。格式:整数
- intel_iommu=[DMAR] Intel
iommu
driver (DMAR)选项 [...] - ecs_off [Default Off]默认情况下,如果硬件公告支持扩展表本身以及
PASID
支持,则支持扩展上下文表。设置此选项后,即使在声明支持它们的硬件中也不会使用扩展表。 - kernelcore=nn[KMG] [KNL,X86,IA-64,PPC]
- 这个参数kernelcore=[KNL,X86,IA-64,PPC]格式:
nn[KMGTPE]
| "mirror"用户可以指定"mirror"选项,而不必指定内存nn[KMGTPE]
。如果指定了 "mirror" 选项,则镜像内存用于不可移动分配,剩余的内存则用于可移动页面。nn[KMGTPE]
和 "mirror" 选项都是 exclusive。用户不能同时指定nn[KMGTPE]
和 "mirror" 选项。 - libata.force=[LIBATA]
- slirp [no]ncqtrim:关闭排队的
DSM TRIM
。 - memmap=nn[KMG]!ss[KMG] [KNL,X86]
- 将特定内存标记为 protected。要使用的内存区域,从 ss 到 s+nn。内存区域应标记为 e820 类型 12 (0xc),并是 NVDIMM 或 ADR 内存。
- module_blacklist=[KNL]
- 不加载以逗号分隔的模块列表。此功能可用于调试问题模块。
- nfs4.layoutstats_timer=[NFSv4.2]
- 更改内核向 pNFS 元数据服务器发送布局统计的速度。将此值设置为零可让内核使用任何值,这是布局驱动程序的默认值。任何非零值都会在布局统计传输之间设置最小间隔(以秒为单位)。
- nmi_watchdog=[KNL,BUGS=X86]
- 调试 SMP 内核的功能。格式: [panic,][nopanic,][num]有效数字: 0 或 10 - turn nmi_watchdog off1 - turn nmi_watchdog on
- nohugeiomap [KNL,x86]
- 禁用内核大 I/O 映射。
- watchdog
- 这个参数禁用或启用软锁定检测器,以及同时由 NMI watchdog 保证的硬锁定检测器。0 - 禁用两个锁定检测器1 - 启用两个锁定检测器软锁定检测器和 NMI watchdog 还可以使用 soft_watchdog 和 nmi_watchdog 参数单独禁用或启用。如果读取 watchdog 参数,例如执行 cat /proc/sys/kernel/watchdog 命令,此命令的输出值为 0 或 1,显示 soft_watchdog 和 nmi_watchdog 的逻辑 OR。
- noxsaveopt [X86]
- 禁用保存 x86 扩展寄存器状态中使用的 xsaveopt。内核回退到使用 xsave 保存状态。通过使用此参数,保存状态的性能会降低,因为 xsave 不支持修改的优化,而 xsaveopt 在启用了 xsaveopt 的系统上支持它。
- noxsaves [X86]
- 禁用 xsaves 和 xrstors,用于保存和恢复 x86 扩展寄存器状态,格式为 xsave 区域。内核退回使用 xsaveopt 和 xrstor 以 xsave 区域的标准格式保存和恢复状态。通过使用此参数,每个进程的 xsave 区域可以在启用了 xsaves 的系统上占用更多内存。
- nompx [X86]
- 禁用 Intel 内存保护扩展。有关该功能的更多信息,请参阅 Documentation/x86/intel_mpx.txt。
- nowatchdog [KNL]
- 禁用两个锁定检测器:soft-lockup 和 NMI watchdog (硬锁定)。
- watchdog_cpumask
- 这个值用于设置哪些 CPU 可用于 watchdog 运行。默认 cpumask 是所有可能的内核,但在内核配置中启用了
NO_HZ_FULL
,且核心是通过 nohz_full=boot 参数指定的,则默认排除这些内核。此掩码中可以包含离线内核。如果内核稍后上线,则根据掩码值启动 watchdog。只有 nohz_full 情况下,才能重新启用默认没有运行 watchdog 的内核,如果在这些内核中发现内核锁定。参数值是 cpumasks 的标准 cpulist 格式。Example:要在内核 0、2、3 和 4 中启用 watchdog,请使用这个命令:echo 0,2-4/proc/sys/kernel/watchdog_cpumask
- watchdog_thresh
- 这个值用于设置 hrtimer 和 NMI 事件的频率以及软和硬锁定阈值。默认阈值为 10 秒。softlockup 阈值为 2114 watchdog_thresh。将此参数设置为零将禁用锁定检测。
- schedstats=[KNL,X86]
- 启用或禁用调度程序统计信息。允许的值是 enable 和 disable。此功能在调度程序中造成少量开销,但对调试和性能调优非常有用。
- usbcore.usbfs_snoop_max=[USB]
- 将每个 USB 请求块(URB)中的最大字节数设置为 snoop。默认值为 65536。
- usb-storage.quirks=[...]
- j = NO_REPORT_LUNS不要使用 report luns 命令,仅限 UAS。
- workqueue.watchdog_thres
- 如果配置了
CONFIG_WQ_WATCHDOG
,则 workqueue 可能会警告停滞条件,并转储内部状态以帮助调试。值 0 禁用 workqueue stall 检测。否则,它是停滞阈值持续时间(以秒为单位)。默认值为 30,可通过写入对应的 sysfs 文件在运行时更新。 - workqueue.power_efficient
- 每个 CPU 工作队列通常是首选的,因为它们具有更高的性能,因为它们具有比未绑定工作队列更多的电源。此内核参数使 per-cpu 工作队列被观察到为电源无限消耗,从而以较小的性能开销来显著降低功耗。
- perf_event_paranoid
- 由没有 CAP_SYS_ADMIN 的非特权用户控制性能事件的使用。默认值为 1。-1 - 允许所有用户使用所有事件。>=0 - 不允许不使用 CAP_IOC_LOCK 的用户进行原始追踪点访问。>=1 - 不允许 CPU 事件访问没有 CAP_SYS_ADMIN。>=2 - 禁止没有 CAP_SYS_ADMIN 的用户进行内核分析
/proc/sys/fs
- pipe-user-pages-hard:设置非特权用户可为管道分配的页面的最大数量。达到这个限制后,不会分配新的管道,直到使用量再次返回低于限制为止。当设置为 0 时,不会应用任何限制,这是默认设置。pipe-user-pages-soft:在管道大小限制为单个页面前,设置非特权用户可为管道分配的页面的最大数量。达到这个限制后,新管道的大小限制为单个用户的单个页面,以限制总内存用量。尝试使用 fcntl ()函数来增加页面总数,直到使用量再次丢弃限制为止。默认值允许在其默认大小最多分配 1024 个管道。当设置为 0 时,不会应用任何限制。
/proc/sys/kernel
- hardlockup_all_cpu_backtrace:这个值控制有关收集进一步调试信息的硬锁定检测行为。如果启用,则启动特定于架构的所有 CPU 堆栈转储。0 - 不做任何操作。这是默认的行为。1 - 在检测捕获更多调试信息时。