0

0

"kernel: timekeeping watchdog expired" 导致时间跳跃的硬件/虚拟化排查

冷炫風刃

冷炫風刃

发布时间:2026-01-25 16:47:04

|

887人浏览过

|

来源于php中文网

原创

timekeeping watchdog expired 表明内核检测到单调时钟停滞或倒退超阈值(约1秒),强制校正导致 CLOCK_REALTIME 跳变;主因是硬件计时器异常或虚拟化时间同步失控。

\

为什么 timekeeping watchdog expired 会引发时间跳跃

这个内核日志不是警告,而是故障已发生的信号:内核时间子系统检测到单调时钟(如 TSCHPET)在两次更新之间停滞或倒退超阈值(默认约 1 秒),于是强制触发时间校正——表现为系统时间突然跳变(clock_gettime(CLOCK_MONOTONIC) 不跳,但 CLOCK_REALTIME 可能跳)。根本原因几乎总是硬件计时器异常或虚拟化层时间同步失控。

物理机上重点检查 TSC 稳定性与 BIOS 设置

现代 x86 物理服务器默认依赖 TSC(时间戳计数器)作为主时钟源,但它必须满足 invariant TSC(频率恒定、跨核同步)才能安全使用。若 BIOS 关闭了 Invariant TSCIntel SpeedStep(或 AMD Cool'n'Quiet)动态调频未禁用,或 CPU 进入深度 C-state 后 TSC 暂停,就可能触发 watchdog。

  • 确认当前时钟源:cat /sys/devices/system/clocksource/clocksource0/current_clocksource,若为 tsc,继续排查
  • 检查 TSC 是否 invariant:dmesg | grep -i "tsc.*invariant",应有类似 TSC now invariant 的输出
  • BIOS 中关闭所有 CPU 节能特性(C-states > C1、SpeedStep、Turbo Boost),并启用 Invariant TSC(名称因厂商而异,如 Intel 的 Enhanced Intel SpeedStep Technology 需禁用)
  • 启动参数强制降级时钟源测试:clocksource=acpi_pmclocksource=hpet,观察是否消失(性能会下降,仅用于验证)

KVM/QEMU 虚拟机需禁用 host-passthrough 的 TSC 并校准 guest 时间

当 KVM 使用 host-passthrough 暴露宿主机 CPU 特性给 guest 时,guest 的 TSC 直接映射宿主机 TSC。一旦宿主机因节能、迁移或负载导致 TSC 异常,guest 就会立即中招。这不是 guest 自身问题,而是虚拟化层透传了不稳定的硬件行为。

adobe.podcast
adobe.podcast

Adobe旗下的AI音频录制和编辑工具,一个为有故事的人提供的音频工具

下载
  • 修改 VM XML,将 改为 ,避免透传 TSC 相关标志
  • 确保宿主机已启用 kvm-clock:检查 dmesg | grep kvm-clock,应有 Using kvm clock
  • guest 内安装 chrony 并配置为只用 kvm-clock 校准:makestep 1 -1 + rtcsync,禁用 NTP 硬件时钟同步(hwtimestamp
  • 宿主机上禁用 qemu-ga 的时间同步功能(org.qemu.guest_agent.0.command_time_sync 设为 false),避免干扰内核 timekeeping

容器与云环境要警惕 hypervisor 时间漂移传递

在 AWS EC2(尤其是 t3/t4g burstable 实例)、Azure 的 B-series 或 GCP 的 E2 实例上,底层 hypervisor 为控制 CPU 积分会主动暂停 vCPU,导致 guest TSC 停滞。这种暂停对 guest 内核不可见,但 timekeeping watchdog 能感知到“时间没走”,从而跳变。

  • 查看实例类型文档,确认是否属于 burstable 类型;如果是,升级到固定性能实例(如 EC2 m5、GCP e2-standard)是根治方案
  • 临时缓解:在 guest 中设置 kernel.tsc=reliable(仅限已知稳定 TSC 的场景),或加启动参数 clocksource=tsc tsc=reliable
  • 云平台监控中重点关注 CPUCreditBalance(AWS)或 cpu-usage-rate(GCP),持续低于阈值说明 CPU 被节流,时间异常大概率伴随发生

真正棘手的不是日志本身,而是它往往只在时间跳变后才出现——等你看到 timekeeping watchdog expired,服务可能已经因时间回跳丢弃了 TLS 证书、拒绝了 NTP 请求、或让分布式锁失效。务必在部署前就锁定时钟源和虚拟化配置,而不是等告警再查。

相关文章

keep
keep

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

下载

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

相关专题

更多
什么是分布式
什么是分布式

分布式是一种计算和数据处理的方式,将计算任务或数据分散到多个计算机或节点中进行处理。本专题为大家提供分布式相关的文章、下载、课程内容,供大家免费下载体验。

327

2023.08.11

分布式和微服务的区别
分布式和微服务的区别

分布式和微服务的区别在定义和概念、设计思想、粒度和复杂性、服务边界和自治性、技术栈和部署方式等。本专题为大家提供分布式和微服务相关的文章、下载、课程内容,供大家免费下载体验。

234

2023.10.07

pdf怎么转换成xml格式
pdf怎么转换成xml格式

将 pdf 转换为 xml 的方法:1. 使用在线转换器;2. 使用桌面软件(如 adobe acrobat、itext);3. 使用命令行工具(如 pdftoxml)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1897

2024.04.01

xml怎么变成word
xml怎么变成word

步骤:1. 导入 xml 文件;2. 选择 xml 结构;3. 映射 xml 元素到 word 元素;4. 生成 word 文档。提示:确保 xml 文件结构良好,并预览 word 文档以验证转换是否成功。想了解更多xml的相关内容,可以阅读本专题下面的文章。

2089

2024.08.01

xml是什么格式的文件
xml是什么格式的文件

xml是一种纯文本格式的文件。xml指的是可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。想了解更多相关的内容,可阅读本专题下面的相关文章。

1043

2024.11.28

cdn加速软件有哪些
cdn加速软件有哪些

CDN加速软件可以帮助网站提高内容访问速度和用户体验,降低服务器负载。在选择CDN加速软件时,需要根据实际需求和预算进行权衡,选择合适的软件和服务商。cdn加速软件有AWS CloudFront、Azure Content Delivery Network、Google Cloud CDN、Fastly、Cloudflare和Incapsula。

319

2023.10.19

虚拟化软件介绍
虚拟化软件介绍

虚拟化软件有VMware、VirtualBox、Hyper-V、Parallels Desktop、Oracle VirtualBox等。想了解更多虚拟化的相关内容,可以阅读本专题下面的文章。

370

2023.12.20

c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

42

2026.01.23

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

46

2026.01.23

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
c语言项目php解释器源码分析探索
c语言项目php解释器源码分析探索

共7课时 | 0.4万人学习

光速学会docker容器
光速学会docker容器

共33课时 | 1.9万人学习

PHP WEB 项目实战
PHP WEB 项目实战

共16课时 | 1.2万人学习

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

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