YugabyteDB YSQL报Too big clock skew错误及参数来源咨询
YugabyteDB时钟偏移崩溃问题排查
报错现象
集群运行过程中TServer进程退出,日志中打印如下致命错误:
F0531 17:26:15.079571 129854 hybrid_clock.cc:177] Too big clock skew is detected: 0.920s, while max allowed is: 0.900s; clock_skew_force_crash_bound_usec=60000000
clock_skew_force_crash_bound_usec参数说明
该参数不支持用户通过启动参数配置,是YugabyteDB源码中硬编码的固定阈值,固定值为60000000微秒(即60秒),是集群时钟异常的最后一层强制保护:
- 当时钟偏移小于用户配置的
--max_clock_skew_usec时,集群正常运行 - 当时钟偏移大于
--max_clock_skew_usec但小于60秒时,节点会拒绝读写请求、打印时钟偏移告警,不会直接崩溃 - 当时钟偏移大于等于60秒的硬编码阈值时,无论用户将
--max_clock_skew_usec设置为多大,节点都会直接打印Fatal日志退出进程,避免时钟偏移过大破坏混合时钟(Hybrid Clock)的时序正确性,导致分布式事务数据一致性损坏。
本次报错根因
从日志可以看出,你当前已经将--max_clock_skew_usec调整为900000微秒(即0.9秒),但节点实际检测到的时钟偏移已经达到0.92秒,超过了你手动设置的最大允许阈值,因此触发进程崩溃。
处理建议
- 不要通过无限制调大
--max_clock_skew_usec规避问题:该参数默认值为500000微秒(0.5秒),生产环境不建议修改该默认值,测试环境调整最高也不要超过1秒,否则会失去时钟偏移的前置保护作用 - 优先解决节点时间同步问题:所有集群节点必须部署chrony或NTP时间同步服务,将节点间持续时钟偏移控制在250ms以内,禁止出现秒级的时钟跳变,这是YugabyteDB正常运行的基础前置要求
- 定期巡检节点时间同步状态,避免NTP服务异常停摆导致时钟偏移持续扩大
内容的提问来源于stack exchange,提问作者dh YB
相关产品推荐
相关产品推荐

