dmesg 时间误差现象
案例现象
这天收到监控平台发来的告警,说有台机器程序崩溃了
因为以前也有过相关的错误,根据经验,用 dmesg命令看下内核信息

发现有点不对劲,报错信息的时间跟告警时间不一致,正常来讲报错时间应该跟告警时间一致
使用 date 命令查看一下当前系统时间

然后我们查看一下系统日志

由上面的输出可以看到:
dmesg 显示错误信息的时间跟系统日志 /var/log/messages显示错误信息的时间不一致
定位问题
我们知道, dmesg 和 /var/log/messages 都是用来记录服务器启动、运行期间的日志的
当机器出现问题时,运维人员可以从这两个日志输出中进行初步排查
我们来看下 dmesg 输出和 /var/log/messages 的区别:
dmesg显示内核和内核模块的相关信息,/var/log/messages不但显示内核信息,还显示系统活动信息可以说
dmesg输出的信息是/var/log/messages的子集,dmesg输出的信息在 ring buffer 中维护,大小有限制/var/log/messages包含所有系统消息以及dmesg中的信息
那为什么这台机器上 dmesg 显示错误信息的时间跟系统日志 /var/log/messages显示错误信息的时间不一致呢?
由上面得知,我在查看 dmesg 信息的时候使用了 -T 参数,我们来看一下这个参数的含义

这个 -T 参数可以直接转换为人类可读时间(即年月日时分秒),但是不一定精确,如果系统挂起或者恢复之后,日志使用的时间源是不会更新的
也就是说,dmesg -T 输出的内核信息并不能保证时间的准确性
又因为 dmesg -T 中记录的时间是系统启动时间到事件发生时间的时间差,这台机器每天都会进行 NTP 时间同步以及每隔一段时间会进行重启
所以就会出现内核日志的时间与系统日志时间不一致的现象
解决方案
关于dmesg -T 时间戳不精确的情况,我查了好多资料都说没有解决方法


所以在这里我建议大家如果想要获得准确的时间信息,就去查看系统日志——/var/log/messages
如果有小伙伴知道该如何解决的,可以告诉我
最后附上相关 issue 链接:
https://serverfault.com/questions/576139/dmesg-time-vs-system-time-time-isnt-correct
https://bugzilla.redhat.com/show_bug.cgi?id=895909
https://blog.tankywoo.com/2015/02/03/about-timestamp-in-dmesg.html
感谢阅读,喜欢作者就动动小手[一键三连],关注公众号【咸鱼运维杂谈】,这是我写作最大的动力
dmesg 时间误差现象的更多相关文章
- android抓log
1.Logcat(能截取除了Kernel以外的所有Log信息),连接USB到电脑上,执行如下命令:User版本也可以使用adb logcat –v time >c:\ logcat.txtadb ...
- ECS实例中的应用偶尔出现丢包现象并且内核日志(dmesg)存在“kernel: nf_conntrack: table full, dropping packet”的报错信息
问题描述 连接ECS实例中的应用时偶尔出现丢包现象.经排查,ECS实例的外围网络正常,但内核日志(dmesg)中存在"kernel: nf_conntrack: table full, dr ...
- xamarin MasterDetailPage点击Master时卡顿现象
在很多项目中经常会使用到MasterDetailPage的布局方式,而且一般做为主页面来开发,在开发中,发现一个并不算Bug的问题,但是却发生了,以此记录下来,方便大家探讨. 现象是这样的,我开发了一 ...
- JS的Object漫想:从现象到“本质”
转自:http://zzy603.iteye.com/blog/973649 写的挺好,用于记录,把对象分成概念的Object(var f={})和 类的Object(function F(){}) ...
- STM32用JLINK 烧写程序时出现NO Cortex-m device found in JTAG chain现象和解决方案
现象 CPU: STM32107VC 用JLINK 烧写程序时出现NO Cortex-m device found in JTAG chain 如图无法查找到硬件就是CPU 提示1:NO Cortex ...
- 解决win10卡顿现象
前两天打开了windows defender,想着既然是window自带的防护工具,应该效果不错.经过测试之后 ,发现这个要占用很大内存,得不偿失.如果想要保证系统安全,甚至腾讯电脑管家做的都比这个w ...
- pthread_cond_signal惊群现象
1.如下代码所示: #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include < ...
- 你所不了解的float(滥用float的怪异现象)
float设计初衷就是为了实现文字环绕效果 原本页面流布局显示如上图所示,运用了float属性后就显示为如下图所示,这就是浮动的设计初衷 float的一些特性:包裹性.破坏性. 包裹的特性其实主要有三 ...
- push 到下一界面明显卡顿的现象
今天搭建界面,界面间的跳转使用了 push方法,结果发现界面间转换时有明显的卡顿现象,并没有做过数据请求之类的处理,所以感觉好神奇.以前好像也遇到过,当时在push 到的下级界面加个背景色.现在重新这 ...
- 移动端的传统click事件延迟和点透现象
一.场景描述: 1.A/B两个层上下z轴重叠. 2.上层的A点击后消失或移开.(这一点很重要) 3.B元素本身有默认click事件(如a标签) 或 B绑定了click事件. 在以上情况下,点击A/B重 ...
随机推荐
- 百度API学习 | day01
大作业:(2023.12.27日完成) 各位同学可根据自身情况进行选择: 选项一:根据实验一.二.三完成如下任务: 任务一:基于Jfinal构建信息管理系统,要求包含用户管理,翻译业务模块管理,图片优 ...
- 瀑布图有什么作用?除了excel如何快速制作?
瀑布图是一种特殊的数据可视化图表,具有以下作用: 1. 对比变化:瀑布图可以清晰地展示数据在不同因素作用下的变化情况.通过将数据分解成各个组成部分,并以阶梯状呈现,可以直观地对比每个因素对总体结果的影 ...
- 数据分析工具 Datainside、Power BI、帆软(FineReport)怎么选?
Datainside.Power BI和帆软(FineReport)都是数据分析领域常用的工具,它们各自有不同的特点和适用场景.下面将会详细介绍每个工具的功能和优势,以便您进行选择. Datainsi ...
- 使用 anasible 搭建一个多 master 多 worker 的 k8s 集群
使用 ansible 搭建一个多 master 多 worker 的 k8s 集群 kubernetes + istio 是目前最强大,也是最易于使用的服务网格方案.要使用kubernetes + i ...
- Azure - 机器学习企业级服务概述与介绍
Azure 机器学习 - 为端到端机器学习生命周期使用企业级 AI 服务. 关注TechLead,分享AI全维度知识.作者拥有10+年互联网服务架构.AI产品研发经验.团队管理经验,同济本复旦硕,复旦 ...
- MySQL笔记01: MySQL入门_1.2 MySQL下载安装与配置
2.2 MySQL下载安装与配置 2.2.1 MySQL下载 MySQL中文官网:https://www.mysql.com/cn/ MySQL英文官网:https://www.mysql.com/ ...
- SpringBoot整合Swagger3
1.导入相关依赖 <!--swagger--> <dependency> <groupId>io.springfox</groupId> <art ...
- 使用Redis实现一个分布式的全局ID
当然实现方式有很多中,这里主要是记录一下使用Redis的实现方式 import lombok.extern.slf4j.Slf4j; import org.springframework.beans. ...
- 安卓之各组件的LayoutParams分析
文章摘要 在Android开发中,LayoutParams是一个非常重要的概念,它用于描述View在其父容器中的布局行为.不同的ViewGroup有不同的LayoutParams子类,例如Linear ...
- Feign源码解析:初始化过程(二)
背景 上一篇介绍了Feign源码初始化的一部分,内容主要是,@EnableFeignClients.@FeignClient这些注解,都支持设置一些自定义的配置类: A custom @Configu ...