试图拯救 Pixel 的夜间待机耗电,最后发现问题居然是 IPv6
其实本来是没有注意到这个问题的,毕竟这台 Pixel 8 Pro 也用了一年半,过去一直以来它的夜间待机耗电都是差不多是一晚 15%(BetterBatteryStats 测算约 670 mAh,Deep Sleep 时间占比 30%,SuspendControl.TotalSuspendDelay 有五小时)。因为一向如此,所以从来不认为这有什么问题,也已经认定这就是它的正常情况了。毕竟 Reddit 上哀嚎 Battery Drain 那可是一晚能跑 30%,相比之下这可是温柔多了。
但是月初出门游玩、晚上连着酒店的 Wi-Fi 待机时,第二天早上醒来发现夜间待机只耗电了 4%!当然,仔细查看了 BBS 测算的电量后发现其实也只是 416 mAh,差距没有那么大。可是关键在 SuspendControl.TotalSuspendDelay 只有 17 分钟。
| 当时留下的唯一一张截图,也成为了日后对比电量消耗的基准。 |
于是之后几天一直在折腾家里的 Wi-Fi 网络和代理软件等,但是无论如何调整参数都无果,唯一能让 Deep Sleep 正常上去的方式要么是开飞行模式、要么是断开 Wi-Fi(不过 Pixel 的 5G 待机更耗电,一晚能走 28% - 1262 mAh)。
| 红色箭头处关闭了飞行模式,黄色箭头处打开了 Surfboard。所以排除了耗电和 Surfboard 的关联。 |
前前后后折腾了半个月,排除了 Surfboard / FlClash / sing-box 的软件差异,关于耗电的问题一直摸不着头脑。直到其中一晚不知道什么时候为什么 Wi-Fi 突然 IP 配置失败了导致自动断开连接,在 5G 待机下耗电非常可怕但 Deep Sleep 非常健康。
到此时才明确是 Pixel 和家里的 Wi-Fi 网络相性很差。至少排查的方向终于能固定下来了。到了这一步,我开始思考,酒店的 Wi-Fi 和家里的 Wi-Fi 会有什么区别。首先想到的是前者通常会开启网络隔离,于是安装这个思路修改了家庭 Wi-Fi 的配置。第一晚看起来有效果,但第二晚起又在反复。似乎说明问题源头不是它。
之后又尝试了 UPnP 等多个开关,效果似乎都不明显。直到最后,突然想到酒店的 Wi-Fi 会不会没有 IPv6?于是关闭了路由器的 IPv6 桥模式。
上图是关闭路由器的 IPv6 桥模式后的第一晚,夜间待机耗电的改善立竿见影。事实上,后续稳定下来后,一晚上耗电至多 8%。
前后拢共折腾了一个月,最终总算是把问题解决了呢……
评论
发表评论