Red Hat Training

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

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

本章为系统管理员提供了与 Red Hat Enterprise Linux 7.3 附带的内核有显著变化的总结。这些更改包括添加或更新的 proc 条目、sysctlsysfs 默认值、引导参数、内核配置选项或任何可见的行为更改。
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 或 1
0 - turn nmi_watchdog off
1 - 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 - 在检测捕获更多调试信息时。