硬件 – Linux内核检测错误的处理器频率
在6.0.8 Debian服务器(HP ProLiant)冷启动后,ntpd对系统时间造成了严重破坏:相对于通常可靠的参考时间服务器的偏移和抖动不受限制地增长. (请注意,一个双相同的服务器完全没有问题.)在ntpd端修复问题的许多尝试失败之后,我决定尝试重启,一切顺利.
为了调查这个问题,我发现了这种差异,这可以解释我的时钟问题: root@n1:~# zgrep Detected /var/log/dmesg* /var/log/dmesg:[ 0.004000] Detected 2400.110 MHz processor. /var/log/dmesg.0:[ 0.004000] Detected 2383.579 MHz processor. /var/log/dmesg.1.gz:[ 0.004000] Detected 2400.036 MHz processor. /var/log/dmesg.2.gz:[ 0.004000] Detected 2400.298 MHz processor. /var/log/dmesg.3.gz:[ 0.004000] Detected 2400.165 MHz processor. /var/log/dmesg.4.gz:[ 0.004000] Detected 2400.410 MHz processor. 请注意,在最后一次引导(有问题的引导)中,检测到的CPU频率是一个明确的异常值.在没有异常值的情况下,检测到的频率相对于标称频率的误差和标准偏差是0.15MHz±0.25MHz.对于有问题的启动,我的误差为-16.4 Mhz,大约是预期的100倍. 我的问题: >这种类型的错误会导致ntp时间规则不稳定/无法使用吗?这是我时钟问题的原因吗? 更新 一些有用的数据: >内核是2.6.32-5-amd64(Debian 2.6.32-48squeeze4) 上面grep的一些上下文行 [ 0.000000] hpet clockevent registered [ 0.000000] Fast TSC calibration using PIT [ 0.004000] Detected 2400.110 MHz processor. [ 0.000008] Calibrating delay loop (skipped),value calculated using timer frequency.. 4800.22 BogoMIPS (lpj=9600440) 解决方法
我确信自己的问题是错误识别的
time stamp counter(TSC)频率.
显然内核正在针对programmable interval timer(PIT)校准TSC.通常,识别的CPU频率为2400.204±0.134MHz,这相当于约56ppm的精度.在有问题的启动之后,CPU频率估计为2383.579 MHz,这相当于约6900 ppm的误差,ntpd无法补偿.事实上,在功能的第一个10h30m期间,系统时钟增加了大约4m30s,大约是7000ppm. 由于TSC频率中的误差对应于系统时钟的漂移,因此我得出结论,异常时钟行为是由错误的TSC校准引起的. 但是我从未见过这么大的问题:我仍然想知道这个错误校准的可能原因(hw,sw?). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- linux – 证书通用名称`* .c.ssl.fastly.net’与请求的主机
- 如何使用sed / awk / perl从数字中删除前导零和尾随零?
- How to use BMW 35080 adapter with Yanhua Mini ACDP
- linux – 根据另一列对列进行求和
- 如何在Linux(RHEL)中使用静态地址启用IPv6自动配置
- linux – 共享内存中的Shared_dirty vs Private_dirty
- linux – 在MACOS的VM中安装Debian中的Gnome
- 如何在Linux Ubuntu中创建.sh扩展文件?
- 使用Ansible获取Linux网络接口名称?
- linux – 防止暴露于物理访问的远程部署服务器上的数据被盗