时区不准确

时区不准确

我们在 Litespeed 网络集群中同步时间时遇到了问题,即系统时间(我们使用的是 CentOS)似乎认为 EST(“美国/纽约”)时区的当前时间比当前时间早 3 小时。

佛罗里达州的当前时间为晚上 10:53,服务器报告:将使用 TZ='America/New_York'。当地时间现在是:2013 年 6 月 4 日星期二 01:51:43 EDT。世界标准时间现在是:2013 年 6 月 4 日星期二 05:51:43 UTC。

什么原因会导致这样的情况? 同样的情况也发生在我们集群的 PHP.ini 配置中。

这是来自配置完全相同的完好网络服务器的响应:将使用 TZ='America/New_York'。当地时间现在是:2013 年 6 月 3 日星期一 22:53:15 EDT。

--更新 1-- 工作服务器上的 ntp 对等体:

krillin.ecansol 184.164.149.162  2 u   52   64    1   35.631  110337. 7937.50
 ntp.sunflower.c 184.164.149.162 16 u    -   64    0    0.000    0.000 15937.5
 triangle.kansas 184.164.149.162  2 u   50   64    1   55.125  110331. 7937.50

损坏的服务器上的 ntp 对等体:

 fairy.mattnordh 164.244.221.197  2 u   59   64    7   49.397  -108052   1.171
 ec2-50-16-231-1 209.51.161.238   2 u   60   64    7   59.565  -108052   0.016
 colossus915.ser 200.23.51.102    2 u   59   64    7   46.693  -108052   0.051

答案1

除非你专门配置了操作系统,否则服务器的系统时钟必须反映 UTC,而不是本地时区。时区偏移量是事后应用的,因为单个服务器上可以同时使用多个时区。您的时区文件会告诉服务器在假设系统时钟设置为 UTC 的情况下返回什么时间。

如果系统时钟与目标时钟相差太大,NTPd 将拒绝同步。您必须手动将其设置为与目标时间 (UTC) 相差一分钟左右的时间;或者使用它ntpdate从 NTP 服务器获取时间并立即设置相应的时钟。然后您可以运行 ntpd 来微调您的时钟以获得所需的毫秒精度。

预热一段时间后,应该会在左侧ntpq -pn显示一个标有 的远程服务器,以表明该服务器已被声明为主要同步对等体,而其他服务器则有望标有,以表明它们是合格的对等备份候选者。*+

如果不是,则您的时钟未同步。

请注意,在对等点列表中,在正常运行条件下偏移量应小于 1ms [绝对值],在时钟微调后可能为几百毫秒。您的列表显示偏移量远远超出范围,因此无法使用时钟摆动进行同步。相反,您需要将时钟“跳转”到正确的时间,而 ntpd 按照策略永远不会自行执行此操作。这就是该ntpdate工具的用途。

答案2

您是否ntpd使用该-g选项运行?应在 中指定/etc/sysconfig/ntpd。如果没有-g,则ntpd如果时钟偏差超过 1000 秒,将拒绝设置时钟。

相关内容