Press "Enter" to skip to content

PVE折腾记录

load负载虚高

因为笔记本主板的设备很多,内核会不断探测,导致负载过高。

解决


#编辑 /etc/default/grub 文件替换为
GRUB_CMDLINE_LINUX_DEFAULT="quiet module_blacklist=sdhci_pci,sdhci,ac,rtsx_usb_sdmmc,rtsx_usb video=eDP-1:d acpi_enforce_resources=lax"

#然后执行
update-grub && reboot

以下是AI对此的解释:

1. 存储与读卡器驱动屏蔽(解决 Load 高的关键)

这部分解决了你之前在 ps 和 stack 中看到的 kworker 进程陷入 D 状态(不可中断睡眠) 的问题。

  • module_blacklist=sdhci_pci,sdhci

    • 作用:禁止内核加载 PCIe 总线的 SD/eMMC 控制器驱动。

    • 原因:你的主板 eMMC 芯片物理缺失,内核不断尝试初始化它会导致 Failed to initialize 报错并阻塞进程。

  • rtsx_usb_sdmmc,rtsx_usb

    • 作用:禁用 Realtek USB 接口的内置读卡器驱动。

    • 原因:堆栈显示 rtsx_usb_sdmmc 正在不断进行 mmc_rescan(重新扫描),试图寻找不存在的 SD 卡,这是导致你最后 1.5 负载的真凶。


2. 电源与显示输出优化

针对你裸板运行、无电池、无屏幕的物理现状进行清理。

  • module_blacklist=...,ac

    • 作用:屏蔽 AC 适配器探测驱动。

    • 原因:由于你采用短接开机且处于裸板模式,内核探测 AC 电源状态时会发生 error -17(资源忙)冲突。

  • video=eDP-1:d

    • 作用:强制禁用 eDP(笔记本内置显示屏)接口。

    • 原因:显卡驱动 i915 会持续探测已拆掉的屏幕,产生 failed to retrieve link info 的日志冗余。


3. 内核强制放行参数

  • acpi_enforce_resources=lax

    • 作用:将 ACPI 资源冲突检查设为“松散”模式。

    • 原因:允许内核驱动与主板固件(BIOS)在发生 I/O 端口冲突时共享资源,防止内核因“争抢”不到资源而让相关线程死等,从而降低负载。


4. 变更结果总结表

参数类别 具体参数 解决的问题 对现有硬件的影响
存储屏蔽 sdhci_pci, sdhci eMMC 初始化失败导致的负载 不影响 M.2 SATA SSD
读卡器屏蔽 rtsx_usb_sdmmc, rtsx_usb 内部 USB 读卡器死循环扫描 不影响外部 USB 口和网卡
电源优化 acacpi_enforce_resources=lax 电源适配器探测报错 解决 ACPI 冲突导致的 D 状态进程
显示优化 video=eDP-1:d 缺失屏幕导致的驱动反复探测 减少内核日志报错