HCE定制内核参数说明
HCE 2.0相较CentOS 8存在部分定制内核参数,具体说明及用途如下。
kernel参数
以下是所属文件在/proc/sys/kernel和/sys/kernel目录下的参数:
扫描任务
自动NUMA平衡会扫描任务的地址空间并取消页面映射,以检测页面放置是否正确,或者数据是否应迁移到靠近任务运行的内存节点。每次“扫描延迟”,任务会扫描其地址空间中的下一个“扫描大小”数量的页面。当达到地址空间的末尾时,扫描器会从头开始。
“扫描延迟”和“扫描大小”共同决定了扫描速率。当“扫描延迟”减少时,扫描速率增加。因此“扫描延迟”和每个任务的扫描速率是自适应的,取决于历史行为。如果页面放置正确,则扫描延迟增加;否则,扫描延迟减少。“扫描大小”不是自适应的,但“扫描大小”越大,扫描速率越高。
更高的扫描速率会带来更高的系统开销,因为必须捕获页面错误,并迁移数据。然而,扫描速率越高,任务的内存迁移到本地节点的速度越快,如果工作负载模式发生变化,可以最小化由于远程内存访问带来的性能影响。表1中的参数控制扫描延迟和扫描页面数量的阈值。
参数 |
说明 |
取值 |
---|---|---|
kernel.numa_balancing_scan_delay_ms |
任务初次启动时的扫描延迟。 |
默认值1000(单位:毫秒) |
kernel.numa_balancing_scan_period_max_ms |
控制扫描任务的最长时间间隔,从而控制最小扫描频率。 |
默认值60000(单位:毫秒) |
kernel.numa_balancing_scan_period_min_ms |
控制扫描任务的最短时间间隔,从而控制最大扫描频率。 |
默认值1000(单位:毫秒) |
kernel.numa_balancing_scan_size_mb |
定义每次扫描的页面大小。 |
默认值256(单位:MB) |
CFS调度器
CFS(完全公平调度器)采用纳秒级的精度进行会计,不依赖于任何jiffies或其他HZ相关的细节。因此,CFS调度器不再像之前的调度器那样具有“时间片”概念,也不包含任何启发式算法。唯一的可调参数(需要启用 CONFIG_SCHED_DEBUG)是:
/proc/sys/kernel/sched_min_granularity_ns
由于其设计,CFS调度器不易受到针对传统调度器启发式算法的现有“攻击”,如fiftyp.c、thud.c、chew.c、ring-test.c和massive_intr.c等测试均能正常执行,不会影响交互性。
CFS调度器在处理优先级(nice levels)和SCHED_BATCH上的表现显著优于之前的传统调度器:这两类工作负载的隔离性得到了更为积极的增强。对称多处理(SMP)负载均衡的实现经过了重构和清理:负载均衡代码中不再包含运行队列遍历的假设,现采用调度模块的迭代器。由此,负载均衡代码变得更加简洁。
参数 |
描述 |
取值 |
---|---|---|
kernel.sched_min_granularity_ns |
该参数用于将调度器调整为“桌面”模式(即低延迟)或“服务器”模式(即良好的批处理)工作负载。默认设置适合桌面工作负载。SCHED_BATCH也由CFS调度模块处理。 |
默认值3000000(单位:纳秒) |
压力场景定位开关
参数 |
描述 |
取值 |
---|---|---|
kernel.net_res_debug_enhance |
在海量收发报文等压力场景下,内核网络协议栈可能会发生资源不足或超限,从而导致用户态socket、send接口返回失败或者网络丢包等故障,net_res_debug_enhance开启的情况下会在该类异常场景下打印定位信息至系统日志中。 1表示启用,0表示不启用。 |
默认值0(不启用) |
oom事件故障定位
产品/平台业务软件或操作系统本身可能因为某种特殊原因导致内存空间不足,触发oom事件。kbox能够将oom事件发生的时间、发生oom进程信息、系统进程信息等异常信息记录到存储设备中,方便维护人员定位。
参数 |
描述 |
取值 |
---|---|---|
kernel.oom_enhance_enable |
控制是否启用oom信息打印功能,1表示启用,0表示不启用。 |
默认值1(启用) |
kernel.oom_print_file_info |
控制是否打印文件系统信息,1表示启用,0表示不启用。 |
默认值1(启用) |
kernel.oom_show_file_num_in_dir |
控制打印的文件系统信息中文件的数量。 |
默认值10 |
SMT驱离特性
参数 |
描述 |
取值 |
---|---|---|
kernel.qos_offline_wait_interval_ms |
离线任务在超负载情况下返回用户态时,每次睡眠的时间。 |
取值范围[100-1000],默认值100(单位:毫秒) |
kernel.qos_overload_detect_period_ms |
非离线任务持续占有CPU超过此时间会触发优先级反转解决流程。 |
取值范围[100-100000],默认值5000(单位:毫秒) |
openEuler新增内核参数,详情请参见openEuler技术白皮书第五章节——SMT 驱离防止优先级反转特性。
算力统计
同一节点内睿频、调频、SMT、大小核等因素导致从cpuacct子系统统计的CPU利用率不能真实反映使用了多少算力,节点间CPU利用率所代表的算力没有可比性(差异达到30%+)。算力统计的目标是基于CPU真实算力利用率进行统计,解决当前CPU利用率(占空比)不能真实反映算力利用的问题,基于真实算力推导的cgroup级别的CPU利用率,相对占空比的利用率更能表征业务性能指标。现阶段算力统计主要考虑SMT影响。
参数 |
描述 |
取值 |
---|---|---|
kernel.normalize_capacity.sched_normalize_util |
动态开启CPU利用率归一化功能,0关闭,1开启。 |
默认值0 |
kernel.normalize_capacity.sched_single_task_factor |
在超线程的场景,设置逻辑核单独运行算力系数。取值1-100,数值越大,说明逻辑核的算力越大。 |
默认值100 |
kernel.normalize_capacity.sched_multi_task_factor |
在超线程的场景,设置逻辑核并行运行算力系数。取值1-100,数值越大说明逻辑核的算力越大。 |
默认值60 |
kernel.normalize_capacity.sched_normalize_adjust |
可读可写,动态开启算力补偿总开关,0关闭,1开启。 |
默认值0 |
preferred CPU利用率
参数 |
描述 |
取值 |
---|---|---|
kernel.sched_util_low_pct |
preferred CPU利用率阈值,当preferred CPU利用率低于该阈值时,限制业务在preferred CPU中选核,否则在allowed CPU中选核。 |
默认值85 |
软件狗检测周期
HCE在内核watchdog基础上,增加LOCKUP情况下错误重置软件狗导致watchdog失效的场景检测功能,记录或回显有效信息,协助开发运维快速定位问题。软件狗检测周期增加了sysctl参数设置,可根据产品诉求,动态调整检测和告警日志打印周期。
参数 |
描述 |
取值 |
---|---|---|
kernel.watchdog_enhance_enable |
控制watchdog增强的所有功能,0表示关闭,其他值表示开启。建议配置0或者1。 |
默认值1(开启) |
kernel.watchdog_softlockup_divide |
软件狗检测周期调整参数,kernel.watchdog_thresh * 2 / kernel.watchdog_softlockup_divide后的值为软件狗检测周期。 |
取值范围[1, 60],默认值5(单位:秒) |
kernel.watchdog_print_period |
设置软件狗检测到进程不调度后,打印进程信息的时间间隔。 |
取值范围[1, 60],默认值10(单位:秒) |
cpu qos接口兼容开关
参数 |
描述 |
取值 |
---|---|---|
kernel.sched_qos_level_0_has_smt_expell |
HCE+CCE混部2级扩展到5级后的cpu qos接口兼容开关,0表示关闭,即启用5级cpu qos状态。 当cce遇到需要保持兼容的场景时,可开启kernel.sched_qos_level_0_has_smt_expell开关,将开关置1,使0优先级保持原来在、离线混部时的语义。 |
默认值0 |
通过内核参数动态调整hz
参数 |
描述 |
取值 |
---|---|---|
kernel.actual_hz |
系统启动后可通过内核参数动态调整hz的能力,为0时表示关闭hz调整特性,此时将使用内核默认的 1000 HZ。 |
取值范围[0, 1000],默认值0 |
内核调度策略
参数 |
描述 |
取值 |
---|---|---|
kernel.sched_latency_ns |
sched_latency_ns是一个用于定义目标抢占延迟时间的变量。它指定了在这个时间周期内,调度器会至少一次调度所有运行队列中的任务。 |
默认值24000000(单位:纳秒) |
kernel.sched_migration_cost_ns |
sched_migration_cost_ns参数指定以纳秒为单位的时间间隔。任务最后一次执行后,CPU 缓存被视为具有有用内容,直到此间隔过期为止。增加这个间隔会导致任务迁移减少。 |
默认值500000(单位:纳秒) |
kernel.sched_nr_migrate |
如果一个SCHED_OTHER任务产生了大量其他任务,它们将全部在同一CPU上运行。迁移任务或softirq将尝试平衡这些任务,以便它们可以在空闲的CPU上运行。sched_nr_migrate选项可以设置为指定一次移动的任务数。 |
默认值32 |
kernel.sched_tunable_scaling |
控制调度程序是否可以根据在线CPU数量自动调整sched_min_granularity_ns/sched_latency_ns/sched_wakeup_granularity_ns的值。 |
0:不调整 1:对数调整(以 2 为底对数进行调整) 2:线性调整(线性比例调整) 默认值1 |
kernel.sched_wakeup_granularity_ns |
调度程序唤醒间隔时间。 |
默认值4000000(单位:纳秒) |
kernel.sched_autogroup_enabled |
是否开启autogroup调度特性,默认关闭。 当开启autogroup调度特性时,一个autogroup中的所有成员都属于同一个内核调度器"任务组"。CFS调度器使用了在任务组间均衡分配CPU时钟周期的算法。 |
0:关闭 1:开启 默认值0 |
潮汐调度功能
参数 |
描述 |
取值 |
---|---|---|
kernel.sched_dynamic_affinity_disable |
禁用潮汐调度功能。参数值为0时表示潮汐调度开启,参数值为1时表示禁用禁用潮汐调度。 |
默认值0 |
CPU QoS 优先级负载均衡特性
参数 |
描述 |
取值 |
---|---|---|
kernel.sched_prio_load_balance_enabled |
是否开启CPU QoS优先级负载均衡,0表示关闭,1表示开启。 |
取值范围{0,1},默认值0 |
openEuler新增内核参数,请参考openEuler技术白皮书第五章节——CPU QoS 优先级负载均衡特性。
支持核挂死检测特性
CPU核挂死问题比较特殊,它出现时,CPU核无法执行任何指令,也不响应中断,故内核检测无法覆盖此场景,需要芯片使用仿真器来定位根因。为提升此类问题定位的效率,内核开发了核挂死检测特性,此特性可快速定性是否出现核挂死问题。
参数 |
描述 |
取值 |
---|---|---|
kernel.corelockup_thresh |
设置此阈值为x,当某个CPU连续x次收不到hrtimer和NMI中断时,就判定该CPU出现了核挂死。 |
默认值5 |
控制idle polling执行参数
参数 |
描述 |
取值 |
---|---|---|
kernel.halt_poll_threshold |
开启此特性时,GuestOS kernel在进入idle时,会在先进行idle polling一段时间,而不发生VM-exit。此参数控制idle polling执行的时间,在idle polling过程中发生任务调度可以避免IPI中断开销。 |
默认值:0 取值范围:0-max(uint64) |
用户态穿越内核UCE不复位
参数 |
描述 |
取值 |
---|---|---|
kernel.machine_check_safe |
确保内核开启config开关CONFIG_ARCH_HAS_COPY_MC,/proc/sys/kernel/machine_check_safe值为1时代表全场景使能,改为0代表不使能,其他值均为非法。 |
默认值1 取值范围{0,1} |
支持网络数据包校验错误时打印源 IP 地址
当发生硬件错误或者网络遭受攻击时,内核会收到检验错误的网络数据包并直接抛弃,无法定位数据包来源。本特性提供如上场景下的可定位能力:校验失败后,在系统日志中打印该数据包的源IP地址。
参数 |
描述 |
取值 |
---|---|---|
kernel.net_csum_debug |
配置该参数值为1时开启此特性,为0时关闭此特性 该参数仅存在于arm环境。 |
默认值0 |
集群调度
参数 |
描述 |
取值 |
---|---|---|
kernel.sched_cluster |
值为1时开启集群调度,为0时关闭集群调度。 |
默认值1 |
net参数
以下是所属文件在/proc/sys/net目录下的参数:
TCP套接字缓存控制
参数 |
描述 |
取值 |
---|---|---|
net.ipv4.tcp_rx_skb_cache |
控制一个skb的每个TCP套接字缓存,这可能有助于改善某些工作负载的性能。这在具有大量TCP套接字的系统上可能是危险的,因为它会增加内存使用。 |
默认值0(不启用) |
网络命名空间控制
参数 |
描述 |
取值 |
---|---|---|
net.netfilter.nf_namespace_change_enable |
如果此选项设置为0,则在非初始化网络命名空间中,命名空间为只读状态。 |
默认值0 |
查询VF信息显示广播地址信息
参数 |
描述 |
取值 |
---|---|---|
net.core.vf_attr_mask |
用于控制netlink消息查询VF信息时(如“ip linkshow”命令)是否显示广播地址信息。 默认值1,显示广播地址信息,与社区保持一致。 |
默认值1 |
定制 TCP 重传策略
HCE的TCP报文重传遵循指数退避原则,在弱网场景下包到达率较低,时延较高。因此新增通过编程接口定制TCP重传策略的能力,包括定制线性退避次数、最大重传次数、最大重传间隔时间,以优化弱网场景的包到达率和时延。
参数 |
描述 |
取值 |
---|---|---|
net.ipv4.tcp_sock_retrans_policy_custom |
用于控制定制TCP重传策略功能是否开启。0:关闭定制TCP重传策略功能。1:开启定制TCP重传策略功能。 |
默认值0 |
IPv6 repath 拥塞换路
云DCN网络存在丰富的多路径, 现有云DCN网络采用ECMP方式进行负荷分担来减少冲突。在动态突发和流大小不一致的情况下,依旧会出现负载不均和拥塞热点。
IPv6 Re-path方案通过端侧拥塞检测与切换路径来实现网络负载均衡,提升业务流吞吐,降低传输时延。发送端动态感知网络拥塞状态,评估是否需要进行路径切换,如果需要,则执行Re-path换路,调整到轻载路径,从而避免网络拥塞“热点”。
参数 |
描述 |
取值 |
---|---|---|
net.ipv6.tcp_repath_cong_thresh |
空闲时指定的拥塞轮次数目,若连续拥塞轮次超过该值则执行换路 |
取值范围:[1-8192] 默认值:10 |
net.ipv6.tcp_repath_enabled |
特性开关(值为0表示特性不使能,值为1表示特性使能) |
取值范围:{0,1} 默认值:0 |
net.ipv6.tcp_repath_idle_rehash_rounds |
非空闲时指定的拥塞轮次数目,若连续拥塞轮次超过该值则执行换路 |
取值范围:[3-31] 默认值:3 |
net.ipv6.tcp_repath_rehash_rounds |
控制调整一个轮次内丢失报文所占的比例的阈值,超过阈值则判断本轮次拥塞 |
取值范围:[3-31] 默认值:3 |
net.ipv6.tcp_repath_times_limit |
每秒钟允许的最大换路次数 |
取值范围:[1-10] 默认值:2 |
网络PPS性能调优参数
当大规格虚拟机(例如192U的虚机)采用HCE 5.10内核时,在高并发(并发数大于8)场景下,可以使用net.core.high_order_alloc_disable参数提升接收网络PPS性能。
参数名称 |
参数描述 |
临时开启方法 |
永久开启方法 |
---|---|---|---|
net.core.high_order_alloc_disable |
默认情况下网络内存尝试使用高阶页面,该参数开启后选择order0页面分配。 默认值:0 |
执行命令sysctl -w net.core.high_order_alloc_disable=1 重启后该参数将变回默认值。 |
重启后该参数值不变。 |

该参数开启选择order0页面分配,建议tcp、udp业务高并发业务场景下(并发数大于8)开启此选项,对性能可能有较大提升,低并发场景不建议开启此参数,可能对性能产生劣化。
vm参数
以下是所属文件在/proc/sys/vm目录下的参数:
周期性回收
参数 |
描述 |
取值 |
---|---|---|
vm.cache_reclaim_s |
cache_reclaim_s用于设置周期性内存回收的回收间隔。当启用周期性内存回收时,它会每cache_reclaim_s秒回收一次内存。 |
默认值0 |
vm.cache_reclaim_weight |
cache_reclaim_weight是每次周期性回收中的回收因子。当启用周期性内存回收时,每次回收的回收量可以通过以下公式计算: reclaim_amount = cache_reclaim_weight * SWAP_CLUSTER_MAX * nr_cpus_node(nid)
内存回收使用工作队列机制,如果内存回收任务耗时较长,会阻塞后续工作的执行,从而可能影响时间敏感的工作。 |
默认值1 |
vm.cache_reclaim_enable |
cache_reclaim_enable用于启用或禁用周期性内存回收功能。 |
默认值1 |
页面缓存上限
参数 |
描述 |
取值 |
---|---|---|
vm.cache_limit_mbytes |
cache_limit_mbytes用于设置页面缓存的上限(以兆字节为单位)。如果页面缓存超过此限制,将会定期回收页面缓存。 |
默认值0 |
最大批处理大小和高水位线
参数 |
描述 |
取值 |
---|---|---|
vm.percpu_max_batchsize |
此参数用于设置每个区域中每个CPU的最大批处理大小和高水位线。 |
|
页面最大比例
参数 |
描述 |
取值 |
---|---|---|
vm.percpu_pagelist_fraction |
此参数定义了每个区域中为每个CPU页面列表分配的页面的最大比例(高水位标记为pcp->high)。 此值的最小限制为8,这意味着在任何单个per_cpu_pagelist中,不允许分配超过每个区域1/8的页面。此条目仅会影响热的每个CPU 页面列表。用户可以指定一个数字,例如100,以便为每个CPU页面列表分配每个区域的1/100。 每个CPU页面列表的批处理值也会因此更新,设置为 pcp->high/4 。批处理的上限为 (PAGE_SHIFT * 8) 。 初始值为零。内核在启动时不会使用此值来设置每个CPU页面列表的高水位线。如果用户将0写入此sysctl,它将恢复到默认行为。 |
默认值0 |
内存优先级分级特性
参数 |
描述 |
取值 |
---|---|---|
vm.memcg_qos_enable |
动态的开启内存优先级分级特性,0代表关闭特性,1代表开启特性。 |
默认值0 |
mmap加载的虚拟地址周期
参数 |
描述 |
取值 |
---|---|---|
vm.mmap_rnd_mask |
该参数可以将mmap加载的虚拟地址任意几个bit置成0,以此控制mmap加载的虚拟地址周期。 |
默认值null |
大页管理
参数 |
描述 |
取值 |
---|---|---|
vm.hugepage_mig_noalloc |
move_pages将大页从一个NUMA NODE迁移到另一个NUMA NODE,当目标NUMA NODE上的可用大页数量不足时,根据参数hugepage_mig_noalloc的值决定是否申请新的大页。值为1时不会申请新的大页,而是直接迁移失败。值为0时会在目标NUMA NODE上申请新的大页,并释放被迁移的大页。 |
默认值0 |
vm.hugepage_nocache_copy |
X86架构下,move_pages迁移大页到AEP对应的NUMA NODE时,根据参数hugepage_nocache_copy的值决定内存拷贝方式,值为1时会使用NT优化指令进行内存拷贝,值为0时会使用原生的mov指令进行内存拷贝。 |
默认值0 |
vm.hugepage_pmem_allocall |
在AEP对应的NUMA NODE上申请大页时,根据参数hugepage_pmem_allocall的值决定是否对大页进行数量限制。值为0时允许转换为的大页数量受到内核水线的控制。值为1时允许将所有的可用内存都申请为大页。 |
默认值0 |
vmemmap内存来源
参数 |
描述 |
取值 |
---|---|---|
vm.vmemmap_block_from_dram |
在AEP的内存热插到系统NUMA NODE中时,根据参数vmemmap_block_from_dram的值决定从AEP上申请的vmemmap的内存的来源。值为1时会从DRAM中申请。值为0时正常从对应的AEP中申请。 |
默认值0 |
内存复用
参数 |
描述 |
取值 |
---|---|---|
vm.swap_madvised_only |
内存复用开关。参数swap_madvised_only值为1表示开启内存复用。值为0表示关闭内存复用。 |
默认值0 |
Qemu热替换
参数 |
描述 |
取值 |
---|---|---|
vm.enable_hotreplace |
使能Qemu热替换能力,该功能支持在业务不中断的情况下快速升级Qemu版本,仅支持在HostOS系统热补丁升级场景使用,GuestOS场景不支持开启。 支持参数:0/1。 |
默认值0(不使能) |
释放主机缓存
提供主动释放主机缓存的方法。slab allocation是一种内存管理机制, 专门用于缓存内核的数据对象,可以减少内存碎片提高系统性能。但随着进程的进行,slab可能会占用大量内存。启动drop_slabs释放缓存以达到增加主机可用内存的目的。
参数 |
描述 |
取值 |
---|---|---|
vm.drop_slabs |
若值为0表示未清理;若值为1表示启动清理流程。 |
取值范围{0,1},默认值为1 |
vm.drop_slabs_limit |
表示优先级,值越大则表示更少比例的slabs缓存被清理。这是为了避免清理过多slabs而长时间占用CPU的情况。 |
取值范围[0, 12]内的整数,默认值为7 |
zram 内存压缩支持 cgroup 隔离
本特性实现memcg与zram设备之间的绑定,支持指定memcg使用指定zram设备,并且zram设备使用的内存从该组的容器的内存中获取。
参数 |
描述 |
取值 |
---|---|---|
vm.memcg_swap_qos_enable |
可读可写接口,默认为0关闭特性,向该接口输入1时将所有memcg的memory.swapfile设置为all,向该接口输入2时会将所有memcg的memory.swapfile设置为none。 当接口值为1或2时,若要修改接口的值,需要先将接口置0后再操作。 |
取值范围:{0,1,2} 默认值:0 |
支持关闭全局 swap,强制匿名页不换出
社区内核的全局swappiness配置为0时,并不代表一定不会换出匿名页。现提供swap_extension开关,用于关闭全局swap,强制匿名页不换出。
参数 |
描述 |
取值 |
---|---|---|
vm.swap_extension |
用于关闭全局swap,强制匿名页不换出。 swap_extension设置为1,关闭全局匿名页回收。全局匿名页默认不会被换出,除非进程主动调用madvise使用swap空间。cgroup内的进程匿名页交换不受影响。 swap_extension设置为2,会在swap空间用完时清空swapcache,此功能与本特性无关。 swap_extension设置为3,会同时使能功能1和功能2。 |
取值范围:{0,1,2,3} 默认值:0 |
内核水线参数
参数 |
描述 |
取值 |
---|---|---|
vm.lowmem_reserve_dma_ratio |
如果没有通过GFP标志位做出内存分配的强制匹配限定(如GFP_DMA等),那么当ZONE_HIGHMEM中内存不足时,可从更低位的ZONE_NORMAL中分配,ZONE_NORMAL中内存不足时,可从更低位的ZONE_DMA32中分配。这里的“低位”是指zone的物理内存的地址更小。这里所谓的“不足”就是当前zone的空余内存低于了本次内存分配的请求大小。除了最高位的ZONE_HIGHMEM,其他zones都会为比它更高位的zone单独划分出一片内存作为预留,这部分内存被称作“lowmem reserve”。当前默认值为“DMA/normal/HighMem: 256 320” ,单位是page。 |
默认值0 |
oom事件管理
在某些情况下,我们希望oom在发生的时候不要杀死进程,能够通知黑匣子上报事件,能够触发crash来定位问题。
参数 |
描述 |
取值 |
---|---|---|
vm.enable_oom_killer |
值为1时开启该特性,值为0时关闭此特性。 |
默认值0 |
内存 UCE 故障采集上报
使能内存UCE故障采集上报服务后,在内存UCE故障发生时,系统将会采集相关故障信息,将其作为告警事件发送给告警转发服务,之后订阅内存UCE故障事件的程序可接收到此告警进行自定义处理,从而提供内存UCE故障信息实时感知能力。
参数 |
描述 |
取值 |
---|---|---|
vm.uce_handle_event_enable |
是否使能内核内存UCE故障上报,0表示不使能,非0表示使能。 该特性仅存在arm环境。 |
默认值0 |
mce参数
以下是所属文件在/proc/sys/mce目录下的参数:
UCE机制增强
参数 |
描述 |
取值 |
---|---|---|
mce.mce_kernel_recover |
内核UCE机制增强功能开关,值为1表示UCE机制增强功能处于使能状态。 可通过 echo 0 > /proc/sys/mce/mce_kernel_recover 关闭特性。 |
默认值为1 |
debug参数
以下是所属文件在/proc/sys/debug目录下的参数:
系统异常通知
当Linux内核发生Oops时,会先后进入到die流程及panic流程中,此时会调用其他模块注册到die通知链及panic通知链的回调函数,当回调函数中存在使得内核发生Oops的异常时,内核会再次进入Oops流程, 而后在Oops流程中再次调用该回调函数时,又产生Oops,这样便形成了嵌套的Oops,无法走出Oops流程,系统挂死。
为了增强系统可定位性,提高可靠性,引入系统异常通知链特性,在用户注册的 panic/die通知链中出现嵌套Oops异常时,打印错误日志并执行crash流程复位系统。
参数 |
描述 |
取值 |
---|---|---|
debug.nest_oops_enhance |
panic通知链的嵌套Oops增强接口。 |
默认值为1(开启) |
debug.nest_panic_enhance |
die通知链的嵌套Oops增强接口。 |
默认值为1(开启) |