news 2026/6/2 1:14:22

【记录】Ubuntu|Ubuntu 26.04 笔记本耗电过快,排查 省电过程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【记录】Ubuntu|Ubuntu 26.04 笔记本耗电过快,排查 省电过程

Ubuntu 26.04 笔记本功耗排查记录

设备:ThinkPad X1 Extreme Gen 5(i7-12700H + RTX 3060)
系统:Ubuntu 26.04
日期:2026-05-31
耗电情况:1小时电量告罄。

文章目录

  • Ubuntu 26.04 笔记本功耗排查记录
    • 一、起因
    • 二、测量过程
      • 第一步:尝试 Powertop
      • 第二步:尝试 NVIDIA 驱动
      • 第三步:尝试 RAPL(Intel 内置功耗测量)
      • 第四步:写采样脚本
    • 三、关闭 NVIDIA 独显(关键步骤)
      • 问题:独显一直在耗电
      • 解决方法一:切换到纯集显模式(推荐)
      • 解决方法二:Runtime PM 自动休眠(不重启)
      • 实际效果
    • 四、测量结果
      • 重启前(系统运行一段时间,空闲状态)
      • 重启后(刚开机,系统服务启动中)
      • 为什么重启后反而更高?
    • 五、结论
      • 34W 正常吗?
      • Powertop 的占比有什么用?
    • 六、以后怎么快速查看功耗
    • 七、过程中遇到的问题
      • 问题 1:Powertop 只给占比不给瓦数
      • 问题 2:重启后 NVIDIA 驱动没加载
      • 问题 3:RAPL 能量值溢出

一、起因

想看看系统里什么东西在耗电,方便优化。

之前跑了 Powertop,它给了一个报告,里面有占比(%),比如:

进程占比
intel_atomic_commit_work40.2%
Firefox10.0%
i915_gem_free_work8.0%

但问题是:占比不等于功耗。40% 是什么意思?是 4W 还是 40W?看不出来。

所以决定用其他方法获取真实瓦数。


二、测量过程

第一步:尝试 Powertop

sudopowertop--time=5

结果:只给占比,不给瓦数。放弃。

第二步:尝试 NVIDIA 驱动

nvidia-smi --query-gpu=power.draw--format=csv

结果:9.43 W,独显基本空闲。这个能用。

第三步:尝试 RAPL(Intel 内置功耗测量)

sudocat/sys/class/powercap/intel-rapl:0/energy_uj# CPU 整包

结果:只能读到累计能量(微焦耳),不是直接的瓦数。

需要自己算:两次读数相减 ÷ 时间间隔 = 功耗(W)

第四步:写采样脚本

#!/bin/bashE0=$(sudocat/sys/class/powercap/intel-rapl:0/energy_uj)E0c=$(sudocat/sys/class/powercap/intel-rapl:0:0/energy_uj)E0u=$(sudocat/sys/class/powercap/intel-rapl:0:1/energy_uj)E0g=$(sudocat/sys/class/powercap/intel-rapl:1/energy_uj)T0=$(date+%s%N)sleep3E1=$(sudocat/sys/class/powercap/intel-rapl:0/energy_uj)E1c=$(sudocat/sys/class/powercap/intel-rapl:0:0/energy_uj)E1u=$(sudocat/sys/class/powercap/intel-rapl:0:1/energy_uj)E1g=$(sudocat/sys/class/powercap/intel-rapl:1/energy_uj)T1=$(date+%s%N)DT=$(((T1-T0)/1000000))calc(){locald=$(($2-$1))[$d-lt0]&&d=$((d+268435456000))echo"scale=1;$d/$DT/ 1000"|bc}echo"CPU 总包:$(calc $E0 $E1)W"echo"CPU 核心:$(calc $E0c $E1c)W"echo"CPU 集显:$(calc $E0u $E1u)W"echo"独显/其他:$(calc $E0g $E1g)W"

三、关闭 NVIDIA 独显(关键步骤)

问题:独显一直在耗电

重启前测量发现,即使没有运行 3D 程序,NVIDIA RTX 3060 也在耗电(~9W)。

解决方法一:切换到纯集显模式(推荐)

第一步:切换到 Intel 集显

sudoprime-select intel

第二步:停止并禁用 nvidia 持久化守护进程

sudosystemctl stop nvidia-persistencedsudosystemctl disable nvidia-persistenced

第三步:重启生效

sudoreboot

验证:

prime-select query# 应该输出: intelnvidia-smi# 应该报错:找不到 GPU = 关成功了

解决方法二:Runtime PM 自动休眠(不重启)

如果不想重启,可以让系统自动管理独显电源:

查看独显状态:

cat/sys/bus/pci/devices/0000:01:00.0/power/runtime_status# suspended = 已休眠 ✓# active = 没休眠,要处理cat/sys/bus/pci/devices/0000:01:00.0/power/control# auto = 自动管理 ✓# on = 一直开着,要改成 auto

手动切换为 auto 模式:

echo"auto"|sudotee/sys/bus/pci/devices/0000:01:00.0/power/control

TLP 已配置自动管理:

grepRUNTIME_PM /etc/tlp.conf# RUNTIME_PM_ON_AC=auto# RUNTIME_PM_ON_BAT=auto

实际效果

  • 方法一(prime-select):重启后独显完全关闭,节省约 9W 功耗
  • 方法二(Runtime PM):独显空闲时自动休眠,节省约 9W 功耗

四、测量结果

重启前(系统运行一段时间,空闲状态)

组件功耗
CPU 整包~10 W
NVIDIA RTX 3060~9 W
合计~20 W

重启后(刚开机,系统服务启动中)

组件功耗
CPU 核心8.7 W
Intel 集显25.4 W
NVIDIA RTX 3060已休眠(不耗电)
合计~34 W

为什么重启后反而更高?

刚重启时,系统服务还在启动(load average: 1.63),CPU 和集显都在干活。等几分钟系统稳定后,功耗会降下来。


五、结论

34W 正常吗?

正常。对比一下:

设备CPU+GPU 功耗
MacBook Air M2 待机2-3W
Intel N100 小主机5-8W
你的 i7-12700H~34W
游戏本满载80-150W

i7-12700H 有 14 核 20 线程,光集显驱动屏幕就要 ~25W。这个配置天生比低功耗设备高,不是坏了。

Powertop 的占比有什么用?

占比能告诉你哪个组件相对最耗电,但不能告诉你绝对功耗是多少

比如 Powertop 说 GPU 占 40%,你不知道是 4W 还是 40W。用 RAPL 才能知道真实数字。


六、以后怎么快速查看功耗

# 方法一:看累计能量(微焦耳),自己算sudocat/sys/class/powercap/intel-rapl:0/energy_uj# 方法二:看温度(间接判断)sensors# 方法三:看 NVIDIA 独显功耗(如果有)nvidia-smi --query-gpu=power.draw--format=csv# 方法四:看系统负载(判断是否在忙)uptime

如果想知道具体瓦数,用上面的 RAPL 脚本跑一下就行。


七、过程中遇到的问题

问题 1:Powertop 只给占比不给瓦数

解决:用 RAPL 接口读取累计能量,自己算功耗。

问题 2:重启后 NVIDIA 驱动没加载

nvidia-smi# 报错:couldn't communicate with the NVIDIA driver

原因:刚重启时驱动还没加载完,或者系统用了 nouveau 驱动。

解决:等一会儿,或者检查驱动:

lsmod|grepnvidiacat/proc/driver/nvidia/version

问题 3:RAPL 能量值溢出

energy_uj 最大约 268435456000(268kJ),超过会归零。

解决:脚本里加了溢出处理:

locald=$(($2-$1))[$d-lt0]&&d=$((d+268435456000))

本账号所有文章均为原创,欢迎转载,请注明文章出处:https://shandianchengzi.blog.csdn.net/article/details/161573293。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/2 1:13:42

抖音批量下载终极指南:从单视频到主页批量采集的完整方案

抖音批量下载终极指南:从单视频到主页批量采集的完整方案 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback su…

作者头像 李华
网站建设 2026/6/2 1:09:30

Python 面向对象编程核心:对象、实例化、封装与变量作用域

目录 1. 对象与类:蓝图与实例 1.1 什么是类?什么是对象? 1.2 Python 中的类定义与对象创建 2. 实例化:从类到对象的过程 3. 面向对象编程(OOP)四大特性概述 4. 封装 —— 数据隐藏与接口 4.1 Python…

作者头像 李华
网站建设 2026/6/2 1:08:04

告别复制粘贴!用Postman Tests脚本实现API自动化测试的5个实战场景

告别复制粘贴!用Postman Tests脚本实现API自动化测试的5个实战场景在API开发和测试领域,手动验证每个接口的返回结果不仅耗时耗力,还容易出错。Postman作为一款强大的API测试工具,其Tests脚本功能能够将我们从重复劳动中解放出来&…

作者头像 李华
网站建设 2026/6/2 1:03:07

新手避坑指南:用Python模拟SAR信号混叠,5分钟搞懂采样定理

新手避坑指南:用Python模拟SAR信号混叠,5分钟搞懂采样定理第一次接触雷达信号处理时,看到"奈奎斯特频率"、"频谱混叠"这些术语总让人头疼。教科书上的公式推导虽然严谨,但缺乏直观感受。直到我在实验室用Pyth…

作者头像 李华