V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lcdxiangzi
V2EX  ›  程序员

VMware 虚拟机的时钟

  •  
  •   lcdxiangzi · 2018-10-25 10:11:58 +08:00 · 3473 次点击
    这是一个创建于 2213 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一个 VMware 虚拟机,主机开机一年半多,跑下来时间竟然比北京时间快了 23 分钟,感觉好夸张。
    里面的虚拟机,每天晚上都会去 ntp,但是日志显示每天的偏差都有半秒多。
    25 Oct 03:00:06 ntpdate[3179]: step time server 192.168.xxx.xxx offset -0.728874 sec
    也是感觉很夸张。
    机器硬件时钟应该是非常成熟的技术,为什么会有这么大的偏差呢。

    看网上说法,
    This problem occurs on some host computers that use Intel SpeedStep or other similar
    power-saving technologies that vary the processor speed.
    To work around this problem, you can specify the correct maximum CPU speed in your global
    configuration file.
    还是不是很理解,CPU 降频升频,会把机器的时钟也带乱?
    15 条回复    2018-10-26 16:27:56 +08:00
    wzxlovesy
        1
    wzxlovesy  
       2018-10-25 10:36:02 +08:00 via Android
    CPU 时钟不见得和计时器是同一个输入,但也有可能主板为了同步就直接把 cpu 时钟拿来计数
    alvin666
        2
    alvin666  
       2018-10-25 10:36:02 +08:00 via Android
    对啊,时钟是按 cpu 频率来的,开个 ntpserver 就行了,自动同步
    opengps
        3
    opengps  
       2018-10-25 10:37:56 +08:00
    电脑的时钟本来就不准,需要一直开着时间同步服务自动修正
    likuku
        4
    likuku  
       2018-10-25 10:42:38 +08:00   ❤️ 2
    你是用 ntpdate 的么?那个不建议用,会遇到一次跳太多,造成某些时钟敏感的软件 or 服务 故障。

    还是开个 ntpd 吧,它会持续不断检查时钟偏差,发现偏差则自动校准(保持在一个很小范围内,持续渐进不断校准)。

    “为什么不用 ntpdate,而要用 ntpd ” from:
    AsiaBSDCon 上说 OpenBSD 的 sensor framework 的时候的一个观点 - delphij's Chaos :
    https://blog.delphij.net/2007/03/asiabsdconopenb.html
    lcdxiangzi
        5
    lcdxiangzi  
    OP
       2018-10-25 10:49:23 +08:00
    @likuku
    @opengps
    @alvin666
    @wzxlovesy

    感谢各位,学习了
    opengps
        6
    opengps  
       2018-10-25 10:53:45 +08:00
    一直奇怪,Vsphere 虚拟化之后的 windows 系统有个现象:
    虚拟机里的时间很容易出现跟宿主机相差 8 小时左右的问题(至于是早还是晚我记不清了),相差不是严格的 8 小时,也确定系统里时区因素
    GeruzoniAnsasu
        7
    GeruzoniAnsasu  
       2018-10-25 11:15:38 +08:00 via Android   ❤️ 1
    @opengps 你装双系统也会有这个问题

    windows 把硬件时钟当本地时间,Linux 当做 UTC

    可以改注册表,具体百度
    sutra
        8
    sutra  
       2018-10-25 13:14:37 +08:00
    我有个古老闲置的 MacBook Air 有时候个把月不用,也不充电,再拿出来充电开机发现时钟落后了好几天。
    当然我只是碰巧遇到了一次,没有多次实验证明。
    greenskinmonster
        9
    greenskinmonster  
       2018-10-25 13:33:44 +08:00
    不是在 VM Options 设置了虚拟机跟宿主机时间同步了吧,宿主机时间偏移,导致虚拟机也偏移。
    宿主机能连 ntp 服务器的话,就宿主机同步,虚拟机跟随宿主机一致即可。
    否则就虚拟机 ntp 同步,取消跟宿主机同步。
    lcdxiangzi
        10
    lcdxiangzi  
    OP
       2018-10-25 16:25:14 +08:00
    @greenskinmonster 这确实是个坑,本来我的虚拟机都是有 ntp 的,但是前阵子因为运维需要,重启了一台虚拟机,结果不小心和主机同步了,(主机没有 ntp,已经快了 20 多分钟了),结果这台重启的虚拟机的时钟提前了 20 分钟,整整一天,直到晚上 ntp 同步。一天搞出来好多问题,也正是这个事情,我才开始关注时钟问题。

    以前都是只关注应用层面,这两年独立负责一个项目,发现环境相关问题实在是太多了,而且五花八门。每次都只能靠度娘。。。。
    Les1ie
        11
    Les1ie  
       2018-10-25 17:06:36 +08:00
    小米手环 2,几天半个月没开 APP,然后发现手环快了一分钟..
    honeycomb
        12
    honeycomb  
       2018-10-25 17:13:51 +08:00 via Android   ❤️ 1
    @lcdxiangzi

    一个是使用 ntpd,这个对使用依赖时钟生成键的数据库有好处。

    另一个相关的,如果是 VMware 里跑 Windows,VMware tools 会有一个同步主机时间到虚拟机的功能
    SpartzTao
        13
    SpartzTao  
       2018-10-25 20:42:03 +08:00 via Android
    以前看过主板更换振晶达到时间校准目的的文章😂
    lcdxiangzi
        14
    lcdxiangzi  
    OP
       2018-10-26 15:29:10 +08:00
    @SpartzTao 其实我想说,服务器好歹也是大几万的设备,时钟怎么会比几百块的手表差呢。
    SpartzTao
        15
    SpartzTao  
       2018-10-26 16:27:56 +08:00
    @lcdxiangzi 这确实是个大问题,不过主板缩水的厂家多了去了,每块板省个几毛合计也不得了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2732 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 15:19 · PVG 23:19 · LAX 07:19 · JFK 10:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.