MacBook Pro 2021夜间运行Python脚本变慢呈突发模式的原因及解决问询
问题分析与解决办法
可能原因
- 系统夜间性能调度限制:macOS 13升级后,新增了夜间自动切换低功耗模式的逻辑——即便你开启了「防止自动睡眠」,系统仍可能在长时间关闭显示器后,主动限制CPU/GPU的性能输出。而你的特征值计算对算力依赖极强,直接导致运行卡顿。
- 磁盘休眠唤醒延迟:系统防睡眠不等于磁盘不休眠。如果脚本读取/写入的磁盘(包括内置SSD)开启了磁盘休眠,长时间无操作后磁盘进入休眠状态,再次读写时需要10-20分钟的唤醒时间(部分外接硬盘或旧SSD唤醒耗时更长),表现为脚本「暂停」。
- 夜间系统后台任务抢占资源:macOS夜间会自动触发Time Machine备份、Spotlight索引更新、系统诊断报告生成等后台任务,这些进程会占用大量CPU、内存或磁盘IO,导致Python脚本被抢占资源,运行速度骤降。
解决步骤
1. 强制锁定高性能模式
- 图形界面操作:打开「系统设置>电池」,在「接通电源」选项下,关闭「低功耗模式」;同时确保「优化电池充电」不会在夜间触发性能限制。
- 终端命令加固:运行
sudo pmset -c noidle,这条命令会强制系统在接通电源时保持全性能状态,不会进入任何空闲节能模式(需要输入管理员密码)。
2. 禁用磁盘休眠
- 先查看当前磁盘休眠设置:终端运行
pmset -g,找到disksleep字段,如果数值大于0,说明磁盘会自动休眠。 - 修改设置:运行
sudo pmset -c disksleep 0,将接通电源时的磁盘休眠时间设为0(永不休眠)。
3. 临时关闭夜间后台干扰任务
- 关闭Time Machine自动备份:打开「系统设置>通用>Time Machine」,取消勾选「自动备份」,或者将脚本处理的文件夹添加到「排除项」中。
- 暂停Spotlight索引:终端运行
sudo mdutil -i off /(针对根目录磁盘),待脚本运行完成后,再用sudo mdutil -i on /恢复索引。 - 关闭不必要的后台刷新:打开「系统设置>通用>后台刷新」,关闭非必要应用的后台刷新权限。
4. 验证问题根源
运行脚本时打开「活动监视器」,切换到「CPU」「磁盘」标签页:
- 如果暂停时CPU频率骤降,说明是性能调度问题;
- 如果磁盘使用率突然降到0后又飙升,说明是磁盘休眠问题;
- 如果有其他进程(比如
backupd、mdworker)占用大量资源,说明是后台任务干扰。
内容的提问来源于stack exchange,提问作者jms547
相关产品推荐
相关产品推荐

