商城首页欢迎来到中国正版软件门户

您的位置:首页 >如何在Linux中配置网络适配器节能项

如何在Linux中配置网络适配器节能项

  发布于2026-08-12 阅读(0)

扫一扫,手机访问

nmcli不能配置网卡节能项,因为其仅管理连接抽象层(IP、路由、DHCP等),不触达MAC/PHY层寄存器或驱动私有ioctl接口;EEE、LPI、ASPM等硬件级电源管理特性必须通过ethtool、setpci或内核参数控制。

如何在Linux中配置网络适配器节能项

nmcli 不能配置网卡节能项,包括 EEE、LPI、ASPM 等。这些是硬件级电源管理特性,必须用 ethtoolsetpci 或内核参数控制。

为什么 nmcli 对网卡节能无效

nmcli 能管的,其实是 NetworkManager 这一层的“连接配置”——比如 IP 地址、路由、DHCP、认证,以及 Wi‑Fi 连接这些内容。可再往下,它就不负责了:既不会去碰 MAC/PHY 层的寄存器,也不会调用驱动私有的 ioctl 接口。像 EEE、TX/RX LPI、Autosuspend 这类节能开关,本质上都在驱动或固件层,NetworkManager 默认也不会介入。

  • 执行 nmcli device show enp0s3 不会显示任何节能相关字段
  • nmcli connection modify 没有 eeelpiaspm 等参数选项
  • 试图在 ifcfg- 或 Netplan 中添加节能配置会被静默忽略

用 ethtool 启用 EEE 和 LPI(最常见场景)

EEE(Energy Efficient Ethernet)和 TX/RX LPI(Low Power Idle)需通过 ethtool --set-eee 控制,且依赖链路两端协商。不是“开了就省电”,而是“空闲时自动降频+降低信号幅度”。

  • 先确认支持:ethtool --show-eee enp0s3 —— 若 Supports EEE: YesEEE active: no,说明对端(交换机/另一台设备)未启用或不支持
  • 启用 EEE + TX LPI:sudo ethtool --set-eee enp0s3 eee on tx-lpi on
  • 部分网卡(如某些 Realtek RTL8125/RTL8168)需额外开启 RX LPI:sudo ethtool --set-eee enp0s3 rx-lpi on
  • 禁用(调试用):sudo ethtool --set-eee enp0s3 eee off
  • 注意:--set-eee 在较老内核(<5.4)或特定驱动(如 igb、e1000e 的旧版本)上可能报错 Operation not supported,此时只能靠 BIOS 设置或固件更新

让节能设置重启后仍生效

ethtool 命令默认只作用于当前运行时。要持久化,不能靠 NetworkManager 或 nmcli,必须绕过它直接干预启动流程。

  • Systemd 服务(推荐,通用性强):创建 /etc/systemd/system/enable-eee@.serviceExecStart 调用 ethtool --set-eee %I eee on tx-lpi on,然后 sudo systemctl enable enable-eee@enp0s3
  • Debian/Ubuntu:post-up 写入 /etc/network/interfaces(仅适用于 ifupdown 管理的接口,不适用于 NetworkManager 默认接管的系统)
  • RHEL/CentOS:ETHTOOL_OPTS="--set-eee eee on tx-lpi on" 加入 /etc/sysconfig/network-scripts/ifcfg-enp0s3(同样要求 NetworkManager 不接管该连接)
  • 关键点:NetworkManager 和 ifupdown 互斥;若你用 nmcli 管理连接,上述 ifcfg/post-up 方式将被忽略 —— 必须用 systemd 服务或 dispatcher 脚本

其他节能项:ASPM、PCIe LTR、USB autosuspend

除了以太网 PHY 层节能,还有 PCIe 总线级节电机制,比如 ASPM(Active State Power Management),它由内核和固件协同控制,ethtool 不涉及。

  • 查看 ASPM 状态:lspci -vv -s 0000:00:1f.6 | grep ASPM(替换为你的网卡 PCI 地址)
  • 强制启用 ASPM(需 BIOS 允许):echo "powersa ve" | sudo tee /sys/module/pcie_aspm/parameters/policy(临时)
  • USB 网卡节能:echo auto | sudo tee /sys/bus/usb/devices/*/power/level,但可能引发唤醒延迟
  • 警告:强行启用 ASPM 或 LTR 可能导致某些网卡(尤其是 Intel I210/I225)出现链路不稳定、重连或丢包,务必在业务低峰验证

真正能把节能效果做出来的配置,几乎都不在 NetworkManager 的图形界面里。关键往往藏得更深:可能是 ethtool 对寄存器的写入,可能是 setpci 对偏移地址的操作,也可能干脆就在内核启动参数里。更容易被忽视的其实是这一点:EEE 到底有没有生效,不是看本地开关点没点,而是看链路两端有没有完成同步协商——如果交换机那一侧没开,你这边单独启用,基本就是白费功夫。

本文转载于:https://www.php.cn/faq/2961662.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注