0

0

timekeeping watchdog expired 时间跳跃的 chrony makestep 与 hwclock 修复

冷漠man

冷漠man

发布时间:2026-02-06 11:09:20

|

991人浏览过

|

来源于php中文网

原创

chrony的makestep未生效是因为默认禁用跳变,需显式配置且满足偏差超限、已完成初始同步两个条件;常见原因包括未重启服务、启动时网络不可达导致卡在initializing状态。

timekeeping watchdog expired 时间跳跃的 chrony makestep 与 hwclock 修复

chrony 的 makestep 为什么没生效?

默认情况下 chrony 不会主动跳变系统时间,即使偏差远超阈值——这是设计使然,防止意外跳变破坏日志、数据库事务等依赖单调时间的场景。只有显式启用 makestep 才可能触发跳变,且需满足两个条件:偏差超过设定阈值,且 chronyd 已完成初始同步(即进入“synchronized”状态)。

常见错误是只在 /etc/chrony.conf 中写了 makestep 1.0 -1,但没重启服务,或 chronyd 启动时网络未就绪、NTP 源不可达,导致始终卡在“initializing”状态,makestep 根本不触发。

  • makestep 的第二参数为负数(如 -1)表示“对所有启动阶段生效”,但仅对首次同步有效;后续运行中若时间偏差再次超限,仍需手动干预或配合 chronyc makestep
  • 检查状态用 chronyc tracking,确认输出中 Leap statusNormalSystem time 行有数值,才说明已同步
  • 若 chronyd 启动时网络未通,可加 makestep 1.0 0(0 表示仅对启动后首次同步生效),再配合 network-managersystemd-networkd 的启动顺序控制

timekeeping watchdog expired 错误的真实含义

这不是 chrony 报的错,而是内核在检测到长时间未更新 clock_gettime(CLOCK_MONOTONIC)CLOCK_REALTIME 时触发的 panic 或 warning,常见于虚拟机暂停后恢复、CPU 长时间离线、或系统时间被暴力修改(如直接写 /dev/rtc)导致内核 timekeeper 逻辑失步。此时 chrony 可能还在跑,但内核已拒绝更新时间。

该错误出现后,chronyc tracking 常显示 Leap status: Not synchronised,且 chronyc sources -v 中延迟异常高,因为 chronyd 尝试校正时被内核拦截。

稿定AI
稿定AI

拥有线稿上色优化、图片重绘、人物姿势检测、涂鸦完善等功能

下载
  • 不要立刻执行 hwclock --hctosys,这会加剧失步;先用 cat /proc/sys/kernel/watchdog_thresh 查看当前看门狗阈值(默认 60 秒),再确认是否真有 CPU hang 或 VM pause
  • 在 KVM/qemu 虚拟机中,需确保启用了 kvm-clock(检查 dmesg | grep kvm-clock),并关闭 host-passthrough 模式下不兼容的 TSC 特性
  • 物理机上若频繁触发,检查是否有 BIOS 时间同步功能(如 Intel RAS “Time Sync”)与 chrony 冲突

hwclock 修复的边界在哪?

hwclock 只操作硬件时钟(RTC),它不能替代 chrony 的时间同步逻辑,也不能修复内核 timekeeper 失步。它的作用非常有限:仅在系统启动早期、chronyd 尚未启动前,把 RTC 时间载入系统时钟;或在关机前把系统时间写回 RTC。一旦 chronyd 运行起来,它默认忽略 RTC,完全依赖 NTP 源。

典型误用是发现时间错乱后执行 hwclock --hctosys && systemctl restart chronyd——这可能导致系统时间瞬间倒退或跳跃,触发应用报错,且 chronyd 启动后仍会按自己的逻辑覆盖。

  • 若 RTC 本身不准(如电池老化),hwclock --show 显示时间与网络时间差几百秒,应先用 hwclock --set --date="2024-06-01 12:00:00" 手动校准 RTC,再重启 chronyd
  • chrony 配置中 rtcsync 选项会让 chronyd 定期(默认 11 分钟)把系统时间写回 RTC,比 hwclock --systohc 更可靠,但前提是系统时间本身已正确
  • 某些嵌入式设备无 RTC,/dev/rtc 不存在,此时 hwclock 直接失败,必须依赖 chrony + makestep 或外部授时源

时间跳跃后最易被忽略的三件事

哪怕 chrony 成功跳变了时间,应用层未必感知一致:日志时间戳、数据库事务 ID、TLS 证书有效期验证都可能因时间突变出问题。这些不是 chrony 能管的,得靠运维动作补救。

  • 检查 journalctl --since "1 hour ago" 是否有大量 clock skew detectedtime jumped backwards 记录,重点排查 rsyslogauditdpostgresql 等对时间敏感的服务
  • Docker 容器若使用 --privileged 或挂载了 /dev/rtc,其内部时间可能与宿主不同步,需在容器内也部署 chrony 或使用 docker run --time=...(v24.0+)
  • Kubernetes 集群中,Node 时间偏差超过 1 秒会导致 kubelet 拒绝上报心跳,Pod 状态卡在 Unknown;此时仅修 chrony 不够,还要 kubectl drain & uncordon 强制刷新节点状态

相关文章

keep
keep

Keep是一款健身安排,无论是想减肥塑形或增肌,还是寻找健身跑步瑜伽计步等训练计划,你可以随时随地选择课程进行训练!权威教练视频教学,健身干货自由分享!有需要的小伙伴快来保存下载体验吧!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

263

2023.07.24

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

503

2024.04.08

docker容器无法访问外部网络怎么办
docker容器无法访问外部网络怎么办

docker 容器无法访问外部网络的原因和解决方法:配置 nat 端口映射以将容器端口映射到主机端口。根据主机兼容性选择正确的网络驱动(如 host 或 overlay)。允许容器端口通过主机的防火墙。配置容器的正确 dns 服务器。选择正确的容器网络模式。排除主机网络问题,如防火墙或连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

406

2024.04.08

docker镜像有什么用
docker镜像有什么用

docker 镜像是预构建的软件组件,用途广泛,包括:应用程序部署:简化部署,提高移植性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

445

2024.04.08

postgresql常用命令
postgresql常用命令

postgresql常用命令psql、createdb、dropdb、createuser、dropuser、l、c、dt、d table_name、du、i file_name、e和q等。本专题为大家提供postgresql相关的文章、下载、课程内容,供大家免费下载体验。

160

2023.10.10

常用的数据库软件
常用的数据库软件

常用的数据库软件有MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、Redis、Cassandra、Hadoop、Spark和Amazon DynamoDB。更多关于数据库软件的内容详情请看本专题下面的文章。php中文网欢迎大家前来学习。

986

2023.11.02

postgresql常用命令有哪些
postgresql常用命令有哪些

postgresql常用命令psql、createdb、dropdb、createuser、dropuser、l、c、dt、d table_name、du、i file_name、e和q等。更详细的postgresql常用命令,大家可以访问下面的文章。

203

2023.11.16

postgresql常用命令介绍
postgresql常用命令介绍

postgresql常用命令有l、d、d5、di、ds、dv、df、dn、db、dg、dp、c、pset、show search_path、ALTER TABLE、INSERT INTO、UPDATE、DELETE FROM、SELECT等。想了解更多postgresql的相关内容,可以阅读本专题下面的文章。

273

2023.11.20

1688阿里巴巴货源平台入口与批发采购指南
1688阿里巴巴货源平台入口与批发采购指南

本专题整理了1688阿里巴巴批发进货平台的最新入口地址与在线采购指南,帮助用户快速找到官方网站入口,了解如何进行批发采购、货源选择以及厂家直销等功能,提升采购效率与平台使用体验。

60

2026.02.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
HTML5/CSS3/JavaScript/ES6入门课程
HTML5/CSS3/JavaScript/ES6入门课程

共102课时 | 6.9万人学习

前端基础到实战(HTML5+CSS3+ES6+NPM)
前端基础到实战(HTML5+CSS3+ES6+NPM)

共162课时 | 19.4万人学习

第二十二期_前端开发
第二十二期_前端开发

共119课时 | 12.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号