在 Ubuntu(以及一般的 Linux)里,“定时器延迟”通常不是单一原因,而是和你用的是哪种定时器、系统状态、电源管理有关。下面按常见情况给你梳理一下。
[Timer]
OnCalendar=*-*-* *:*:00
常见延迟原因:
✅ 解决:
AccuracySec=1s
* * * * * /script.sh
延迟原因:
下一分钟开始时(不保证整点)
✅ cron 本身就只能到分钟级精度
while true; do
do_something
sleep 1
done
延迟原因:
如果你是写 C / Go / Python 程序:
cpufreq-info
低负载时:
✅ 可临时测试:
sudo cpufreq-set -g performance
powertopauto suspendNO_HZ / tickless kerneltimedatectl status
时间被校正时:
journalctl -u your.timer
date
| 需求 | 建议 |
|---|---|
| 秒级精度 | systemd timer + AccuracySec=1s |
| 毫秒级 | 程序内 timerfd / 实时调度 |
| 硬实时 | RT 内核(PREEMPT_RT) |
| 不要休眠 | 禁用 suspend |
请告诉我:
我可以直接帮你改配置。