前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Chrony:理解和利用chronyc命令检查时间同步状态

Chrony:理解和利用chronyc命令检查时间同步状态

作者头像
运维开发王义杰
发布2023-08-10 17:09:19
10K0
发布2023-08-10 17:09:19
举报

作为一名系统管理员或 DevOps 工程师,了解和使用时间同步工具,如 chrony,是日常工作的重要组成部分。时间同步在分布式系统中起着至关重要的作用,因为它能确保所有的服务都使用相同的时间,从而避免因为时间偏差引发的各种问题。虽然我作为一名经验丰富的linux系统运维人员已经熟悉了很多 chrony 的使用技巧,但我仍然发现 chronyc 命令中的一些特性令人眼前一亮。让我们一起深入探索一下 chronyc,学习如何使用这个强大的工具检查 chrony 的时间同步状态。

使用 chronyc 进行时间同步状态检查

chronycchrony 套件的命令行接口,允许用户与运行中的 chronyd 服务进行交互,例如进行配置更改、获取状态报告等。其中一些重要的 chronyc 命令能让我们更深入地了解系统的时间同步状态。

chronyc tracking

代码语言:javascript
复制
Reference ID    : CB6B0658 (203.107.6.88)
Stratum         : 3
Ref time (UTC)  : Wed Jul 05 12:07:08 2023
System time     : 0.000000000 seconds slow of NTP time
Last offset     : -0.000198210 seconds
RMS offset      : 0.000316661 seconds
Frequency       : 7.495 ppm slow
Residual freq   : -0.002 ppm
Skew            : 0.060 ppm
Root delay      : 0.069401726 seconds
Root dispersion : 0.001769533 seconds
Update interval : 1034.8 seconds
Leap status     : Normal

chronyc tracking 显示的信息是 chronyd 服务当前同步状态的快照。主要包括正在同步的远程服务器的 ID、系统在 NTP 层次中的位置(stratum)、系统时间与 NTP 时间的差异,以及其他一些信息。如果系统时间与 NTP 时间的差异接近于 0,并且显示 "Leap status : Normal",那么同步状态可以认为是正常的。

以下是 chronyc tracking 命令输出的各个字段的含义:

  • Reference ID:你的系统正在与之同步的远程 NTP 服务器的地址或者 IP。
  • Stratum:表示你的系统在 NTP 层次中的级别。Stratum 1 服务器直接与原子钟或 GPS 时钟等准确的时间源同步。Stratum 2 服务器与 Stratum 1 服务器同步,以此类推。这个字段表示你的系统是与哪个 stratum 的服务器同步。
  • Ref time (UTC):上一次从远程服务器接收到时间更新的时间(以 UTC 表示)。
  • System time:你的系统时间相对于 NTP 服务器时间的差异。如果显示 "fast",表示你的系统时间比 NTP 时钟快;如果显示 "slow",表示你的系统时间比 NTP 时钟慢。
  • Last offset:上一次时间同步时,系统时间与 NTP 服务器时间的偏移量。
  • RMS offset:时间偏移量的均方根,是一个衡量时间同步精度的指标。
  • Frequency:本地系统时钟的速度,相对于完美的时间源,以每百万部分(ppm)表示。如果显示 "fast",表示你的系统时钟运行得比完美的时钟快;如果显示 "slow",表示你的系统时钟运行得比完美的时钟慢。
  • Residual freq:在最后一次同步之后,已经观察到的本地时钟频率的改变。
  • Skew:本地时钟频率估计的不确定性。
  • Root delay:到同步源的往返时间。
  • Root dispersion:同步源的最大可能误差。
  • Update interval:两次连续更新之间的间隔时间(以秒为单位)。
  • Leap status:闰秒状态。可以是 "Normal"、"Insert second" 或 "Delete second"。

chronyc sources -v

代码语言:javascript
复制
210 Number of sources = 4

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^? 2001:da8:9000::130            0   9     0     -     +0ns[   +0ns] +/-    0ns
^+ 120.25.115.20                 2  10   327   210  -3170us[-3182us] +/-   38ms
^* 203.107.6.88                  2  10   377   140  +3447us[+3435us] +/-   37ms
^+ 119.29.26.206                 3  10   377   277  -1150us[-1162us] +/-   77ms

chronyc sources -v 命令能显示 chronyd 服务正在使用的 NTP 源服务器的详细状态。这个命令会列出每个源服务器的 IP 地址,以及每个源服务器的状态和时间偏移量。通过这个命令,你可以看到你的系统是从哪些 NTP 服务器获取时间的,以及每个服务器的状态和时间偏移量。

chronyc sourcestats -v

代码语言:javascript
复制
210 Number of sources = 4
                             .- Number of sample points in measurement set.
                            /    .- Number of residual runs with same sign.
                           |    /    .- Length of measurement set (time).
                           |   |    /      .- Est. clock freq error (ppm).
                           |   |   |      /           .- Est. error in freq.
                           |   |   |     |           /         .- Est. offset.
                           |   |   |     |          |          |   On the -.
                           |   |   |     |          |          |   samples. \
                           |   |   |     |          |          |             |
Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev
==============================================================================
2001:da8:9000::130          0   0     0     +0.000   2000.000     +0ns  4000ms
120.25.115.20              20  11  431m     -0.014      0.076  -3544us   681us
203.107.6.88               21  10  345m     -0.014      0.165  +4312us  1360us
119.29.26.206              27  16  483m     +0.021      0.090  -2094us  1091us

chronyc sourcestats -v 提供的是关于每个 NTP 源服务器的统计信息,包括每个源服务器的 IP 地址,以及每个源服务器的样本数量、样本的均值和标准偏差等。这个命令可以帮助我们更好地了解时间源的稳定性和可靠性。

chronyc makestep

代码语言:javascript
复制
200 OK

有时,我们可能需要立即同步时间,而不是等待 chronyd 的渐进式调整。这时,可以使用 chronyc makestep 命令,它会立即将系统时间调整到它当前所知的 NTP 时间。如果系统时间与 NTP 时间有大的偏差,这条命令可能会导致系统时间的突然跳跃。但是,如果需要立即同步时间,这可能就是所需要的。

结语

作为系统管理员,我们需要持续监控和调整系统的时间同步状态。chrony 是一个强大的工具,chronyc 则提供了一种快速、直接的方式,让我们能够深入理解系统的时间同步状态。尽管我作为一个linux系统运维已经深入熟悉了很多 chrony 的使用技巧,但 chronyc 中的一些细节仍然让我感到惊讶。掌握 chronyc 的使用,能帮助我们更好地理解、监控和维护我们的系统时间,从而确保我们的服务稳定、可靠、高效。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-07-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维开发王义杰 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用 chronyc 进行时间同步状态检查
    • chronyc tracking
      • chronyc sources -v
        • chronyc sourcestats -v
          • chronyc makestep
          • 结语
          相关产品与服务
          CODING DevOps
          CODING DevOps 一站式研发管理平台,包括代码托管、项目管理、测试管理、持续集成、制品库等多款产品和服务,涵盖软件开发从构想到交付的一切所需,使研发团队在云端高效协同,实践敏捷开发与 DevOps,提升软件交付质量与速度。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档