讲师中心 微信公众号
AI工具推荐 视频效率加速

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

轻涛大大_3889

轻涛大大_3889

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

|

1071人浏览过

|

来源于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 status 是 Normal 且 System time 行有数值,才说明已同步
  • 若 chronyd 启动时网络未通,可加 makestep 1.0 0(0 表示仅对启动后首次同步生效),再配合 network-manager 或 systemd-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 尝试校正时被内核拦截。

docker-container-rerun-all
docker-container-rerun-all

顺序检查并可选更新所有已在长期记忆中记录了固定重建命令的 docker run 容器。使用场景:用户...

下载
  • 不要立刻执行 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 detected 或 time jumped backwards 记录,重点排查 rsyslog、auditd、postgresql 等对时间敏感的服务
  • 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工具

更多
豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

相关专题

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

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

745

2023.07.24

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

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

5799

2024.04.08

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

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

6857

2024.04.08

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

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

2673

2024.04.08

Docker容器化部署与DevOps实践
Docker容器化部署与DevOps实践

本专题面向后端与运维开发者,系统讲解 Docker 容器化技术在实际项目中的应用。内容涵盖 Docker 镜像构建、容器运行机制、Docker Compose 多服务编排,以及在 DevOps 流程中的持续集成与持续部署实践。通过真实场景演示,帮助开发者实现应用的快速部署、环境一致性与运维自动化。

299

2026.02.11

Docker 容器部署
Docker 容器部署

本专题整合了Docker容器部署相关内容,阅读专题下面的文章了解更多详细操作教程。

451

2026.03.31

Java容器化部署与Docker实践教程合集
Java容器化部署与Docker实践教程合集

聚焦 Java 应用的容器化与云原生部署,讲解 Dockerfile 编写规范与 Java 应用镜像构建、多阶段构建(Multi-stage Build)减小镜像体积、Jib / Buildpacks 免 Dockerfile 镜像构建方案、JVM 容器感知参数(-XX:MaxRAMPercentage)配置、Docker Compose 编排多服务(应用 + MySQL + Redis)、容器健康检查与资源限制、Kubernetes

420

2026.05.11

Go Docker与容器化部署教程合集
Go Docker与容器化部署教程合集

聚焦 Go 应用的容器化部署优势与实践,讲解 Go 静态编译特性(CGO_ENABLED=0)与 scratch / distroless 极小基础镜像构建、多阶段 Dockerfile 编写规范、交叉编译生成目标平台二进制、镜像安全扫描(Trivy)与漏洞修复、Docker Compose 本地编排开发环境、Kubernetes Deployment / Service / ConfigMap 部署 Go 服务、健康检查(Livene

305

2026.05.15

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

0

2026.10.22

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WebSocket手册
WebSocket手册

共0课时 | 0人学习

HTML5/CSS3/JavaScript/ES6入门课程
HTML5/CSS3/JavaScript/ES6入门课程

共102课时 | 10.9万人学习

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

共162课时 | 28.7万人学习

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

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn