当前位置: 首页 > article >正文

Linux dmesg实战指南:从内核消息解析到故障排查(附实用技巧与常见问题)

1. 初识dmesg你的Linux系统健康检查仪刚接触Linux系统管理时我总把dmesg当成高级版系统日志。直到有次服务器突然宕机才发现这个命令简直就是系统故障的黑匣子。想象一下当你的电脑突然蓝屏dmesg就是那个能告诉你刚才CPU对我说它快热炸了的贴心助手。简单来说dmesg是Linux内核的专属记事本记录着从开机那一刻起所有的内心戏。不同于普通的系统日志它专门记载内核与硬件对话的原始记录——比如硬盘悄悄报告坏道、内存条突然失忆这些敏感话题普通日志可听不到。我在排查一块反复掉盘的SSD时就是通过dmesg发现它每隔15分钟就会发出我撑不住了的SOS信号而常规监控系统完全没察觉。最神奇的是它的环形缓冲区设计。就像机场的行李转盘新消息不断涌入时旧消息不会立即消失而是循环覆盖。这意味着即使系统已经运行了30天你仍可能找到昨天某个硬件异常的蛛丝马迹。不过要注意这个缓冲区大小有限通常128KB-256KB重要消息记得及时保存。2. 玩转dmesg的十八般武艺2.1 基础招式从看懂时间戳开始第一次用dmesg直接输出时我对着密密麻麻的日志差点崩溃。后来发现加上-T参数瞬间友好多了$ dmesg -T [2023-08-15 14:23:45] usb 2-1: new high-speed USB device using ehci-pci and address 2这个时间戳和系统时钟同步排查故障时能精准定位问题发生时刻。有次凌晨3点的服务中断就是靠这个锁定是UPS的定时自检触发了异常断电。更人性化的-H参数会把时间换算成几分钟前$ dmesg -H [ 5.312499] pcieport 0000:00:1c.5: AER: Corrected error received: 0000:00:1c.5这个特别适合实时监控看到5秒前的报错就能立即反应。不过要注意这个相对时间是从命令执行时刻计算的。2.2 高阶技巧像侦探一样过滤信息当服务器日志多到爆炸时grep就是你的放大镜。我常用的几个过滤组合# 抓取所有错误和警告 $ dmesg -l err,warn # 专查硬盘相关消息包括sd、SATA、NVMe等关键词 $ dmesg | grep -E sd|SATA|NVMe # 实时监控新错误CtrlC退出 $ watch -n 1 dmesg -T | tail -n 20有次RAID卡故障就是用dmesg -l err发现大量buffer I/O error而普通日志里只有模糊的disk performance degraded。彩色输出(-L)也是个神器错误消息自动标红警告显示为黄色就像交通信号灯一样直观$ dmesg -L2.3 实战案例内存泄漏追凶记上个月我们有个Java服务频繁崩溃常规监控显示内存使用正常。最终通过dmesg发现了关键线索$ dmesg | grep -i oom [ 0.000005] Out of memory: Kill process 21531 (java) score 889 or sacrifice child原来内核早就发出了OOM内存不足警告但应用层监控没捕获到。进一步用dmesg -T --time-format iso精确到微秒的时间戳发现每次崩溃前都有规律的内存申请失败记录。3. 故障排查实战手册3.1 硬件问题排查三板斧第一板斧USB设备识别问题当U盘插入没反应时先别急着重启$ dmesg | tail -20 [ 3.221487] usb 3-2: new high-speed USB device number 4 using xhci_hcd [ 0.142857] usb 3-2: device descriptor read/64, error -110这个-110错误码明确告诉我们设备描述符读取超时。可能是接触不良或供电不足换接口或USB集线器往往能解决。第二板斧神秘重启元凶服务器突然重启别被系统异常关机的笼统日志骗了$ dmesg -T | grep -A 5 -B 5 reset有次就靠这个发现是主板传感器误报温度过高触发了强制重启实际机房温度完全正常。第三板斧硬盘临终关怀SMART检测太慢dmesg能实时捕捉硬盘的遗言$ dmesg | grep -i error\|fail\|retry [ 1.332541] sd 0:0:0:0: [sda] tag#0 FAILED Result: hostbyteDID_OK driverbyteDRIVER_SENSE [ 0.000007] sd 0:0:0:0: [sda] tag#0 Sense Key : Medium Error [current]这种介质错误往往是物理损坏的前兆看到就该立即备份数据了。3.2 网络疑难杂症速查网卡时不时抽风试试这个组合拳# 查看网卡初始化日志 $ dmesg | grep -i eth\|network # 过滤丢包和重传记录 $ dmesg | grep -i drop\|reset\|retransmit曾经有台服务器网速奇慢就是靠这个发现是驱动bug导致的大量TCP窗口缩放错误[ 0.444321] TCP: Peer 192.168.1.100:52880/80 advertises improbable window scaling value: 1203.3 内核恐慌(Kernel Panic)现场还原遇到著名的Oops错误时第一时间保存dmesg输出$ dmesg /var/kernel_panic.log重点查看panic前后的调用栈比如这种空指针异常[ 0.000001] BUG: unable to handle kernel NULL pointer dereference at 0000000000000058 [ 0.000002] IP: [ffffffff812a3b27] kmem_cache_alloc0x37/0x240有次就是靠这个发现是某个内核模块版本不兼容导致的崩溃。4. 高手都在用的进阶技巧4.1 让dmesg变身实时监控器--follow参数虽然好用但结合journalctl更强大# 实时监控内核错误需要systemd $ journalctl -kf --priorityerr我习惯用tmux开个常驻窗口运行这个命令重要错误即时弹出。4.2 日志时间同步秘籍服务器时间不准会导致日志混乱推荐两种方案# 方案1使用UTC时间戳 $ dmesg -T --time-format iso # 方案2同步硬件时钟 $ hwclock --hctosys $ dmesg -T特别是分布式系统统一使用UTC能避免时区导致的排查噩梦。4.3 敏感信息过滤技巧有些内核消息可能含敏感信息分享日志前记得清理# 过滤MAC地址和IP $ dmesg | sed -r s/([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}/XX:XX:XX:XX:XX:XX/g4.4 持久化保存关键日志默认dmesg缓冲区重启就清空重要日志记得保存# 保存当前日志 $ dmesg /var/log/dmesg_$(date %Y%m%d).log # 开机自动保存添加到/etc/rc.local $ echo dmesg /var/log/dmesg_$(date %Y%m%d).log /etc/rc.local5. 避坑指南那些年我踩过的雷坑1权限不足看不到日志新版本Linux默认限制普通用户查看dmesg两种解决方案# 临时方案 $ sudo dmesg # 永久方案需谨慎 $ sudo sysctl kernel.dmesg_restrict0坑2日志被刷屏淹没遇到疯狂刷日志的故障时先用level过滤$ dmesg -l crit,alert,emerg坑3中文编码乱码某些硬件日志含中文时显示异常试试$ LANGC dmesg坑4虚拟机环境差异在VMware/KVM里看到的硬件消息和物理机不同比如# 物理机显示真实硬件信息 [ 0.123456] DMI: Dell Inc. PowerEdge R740/0ABCDEF, BIOS 2.5.4 08/12/2020 # 虚拟机显示虚拟硬件 [ 0.654321] DMI: VMware Virtual Platform/440BX Desktop Reference Platform最后分享个真实案例有台服务器每隔72小时必宕机最终通过dmesg -T | sort -k2M -k3n按时间排序发现是某个内核线程内存泄漏。排查过程中最大的教训就是——遇到玄学问题先看dmesg准没错。

相关文章:

Linux dmesg实战指南:从内核消息解析到故障排查(附实用技巧与常见问题)

1. 初识dmesg:你的Linux系统健康检查仪 刚接触Linux系统管理时,我总把dmesg当成"高级版系统日志"。直到有次服务器突然宕机,才发现这个命令简直就是系统故障的"黑匣子"。想象一下,当你的电脑突然蓝屏&#xf…...

2024年技术趋势:AI、云计算与区块链的颠覆性变革

技术趋势预测文章大纲引言简要介绍技术趋势预测的重要性,提及CSDN作为技术社区的影响力,说明本文将基于当前技术发展分析未来趋势。人工智能与机器学习讨论生成式AI(如GPT-4、Stable Diffusion)的演进方向,包括多模态模…...

Pencil原型工具全攻略:从环境搭建到高级配置

Pencil原型工具全攻略:从环境搭建到高级配置 【免费下载链接】pencil DEPRECATED: Multiplatform GUI Prototyping/Wireframing 项目地址: https://gitcode.com/gh_mirrors/pen/pencil Pencil原型工具:开源价值定位与核心特性解析 核心价值&…...

如何将 iPhone 实况照片传输到电脑:四种最佳方法

实况照片是一种有趣的拍摄形式,它不仅能捕捉静态画面,还能记录下带有动态和声音的短暂瞬间。轻按一张实况照片,它就会 “动起来”,还原拍摄时几秒的动态画面和现场声音。 如果你已经掌握了普通照片从 iPhone 传输到电脑的方法&…...

开源剧本AI落地实操:像素剧本圣殿+Dual-GPU并行推理完整教程

开源剧本AI落地实操:像素剧本圣殿Dual-GPU并行推理完整教程 1. 项目概览 像素剧本圣殿(Pixel Script Temple)是一款基于Qwen2.5-14B-Instruct深度微调的专业剧本创作工具。这个开源项目将先进的AI推理能力与独特的8-Bit复古美学相结合&…...

深度解析:Element Plus架构设计与实现原理

深度解析:Element Plus架构设计与实现原理 【免费下载链接】element-plus 🎉 A Vue.js 3 UI Library made by Element team 项目地址: https://gitcode.com/GitHub_Trending/el/element-plus Element Plus作为Vue.js 3生态中最具影响力的企业级UI…...

别再单独部署Mosquitto了!用Docker一步搞定带MQTT插件的RabbitMQ 3.13

告别繁琐部署:用Docker Compose快速搭建支持MQTT的RabbitMQ集群 在物联网和微服务混合架构中,消息中间件选型常常让开发者陷入两难——选择轻量级的Mosquitto MQTT broker虽然能满足设备通信需求,却无法处理服务间的AMQP消息;部署…...

App 测试用例覆盖率提升检查清单

App 测试用例覆盖率提升检查清单 核心用途:核对现有测试用例,快速找出「需求、功能、非功能、移动端特有场景」的覆盖遗漏点,适配 App UI 自动化手动测试,兼顾 PO 模型、数据驱动、各类用例设计方法(等价类/边界值等&a…...

舰艇推进电机供电流程优化方案

舰艇推进电机供电流程优化方案 第一章 绪论 1.1 背景与意义 现代舰艇(如驱逐舰、潜艇、全电推进船舶)广泛采用综合电力系统。传统的供电流程中,推进电机作为最大的非线性负载,其负载突变(如急加速、倒车、波浪冲击导致的螺旋桨甩尾)会通过直流母线回馈至发电机组,导致…...

App UI自动化项目模板

完整的App UI自动化项目模板 以下是一套工程化、可复用、易维护的App UI自动化项目模板,基于PythonAppium2pytest实现,包含BasePage封装、PO页面类、数据驱动、日志/报告/配置分离等核心工程化配置,你只需替换业务相关的元素定位、操作逻辑、…...

阿里内部强推性能优化全栈小册,Java程序员必备!

性能优化可以说是我们程序员的必修课,如果你想要跳出CRUD的苦海,成为一个更“高级”的程序员的话,性能优化这一关你是无论无何都要去面对的。为了提升系统性能,开发人员可以从系统的各个角度和层次对系统进行优化。除了最常见的代…...

新手福音:用快马AI理解ER图,从零开始设计图书馆数据模型

作为一个刚接触数据库设计的小白,我最近被ER图的各种符号和逻辑关系搞得晕头转向。直到发现了InsCode(快马)平台,用它的AI辅助功能尝试做了一个图书馆管理系统的ER图,整个过程简直像开了挂。下面分享我的学习笔记,希望能帮到同样入…...

Python爬虫实战:Playwright 穿透阿里云市场,自动化抓取镜像情报!

㊗️本期内容已收录至专栏《Python爬虫实战》,持续完善知识体系与项目实战,建议先订阅收藏,后续查阅更方便~ ㊙️本期爬虫难度指数:⭐⭐ 🉐福利: 一次订阅后,专栏内的所有文章可永久免费看,持续更新中,保底1000+(篇)硬核实战内容。 全文目录: 🌟 开篇语 0️⃣ 前…...

从Hive表平滑迁移到实时湖仓?试试用Apache Paimon的Format Table零成本接入

从Hive表平滑迁移到实时湖仓?Apache Paimon的Format Table零成本接入实战 1. 实时湖仓转型的痛点与破局之道 在传统大数据架构中,Hive作为批处理的核心组件已经服务了无数企业十数年。但随着实时分析需求的爆发式增长,单纯依靠Hive的T1模式越…...

五款颠覆传统的嵌入式电路仿真工具:从移动端到PC端的创新体验

1. 移动端电路仿真工具的崛起与创新 十年前我第一次接触电路仿真时,还需要背着厚重的笔记本电脑到处跑。现在掏出手机就能完成80%的基础仿真需求,这种变化简直像从DOS时代直接跳到了智能手机时代。移动端仿真工具最大的优势就是随时随地验证灵感——等公…...

实战避坑:用Playwright+Selenium绕过电商网站验证码的3种方法(附Python代码)

实战避坑:用PlaywrightSelenium绕过电商网站验证码的3种方法(附Python代码) 电商平台的反爬虫机制日益复杂,验证码作为核心防线之一,已经从简单的图文识别升级到行为验证、智能风控等多维度拦截。本文将聚焦淘宝、京东…...

游戏多开防封号?聊聊用天翼云低成本搭建SK5代理池的真实体验与避坑心得

游戏多开防封号实战:天翼云SK5代理池搭建全记录与深度优化指南 作为一名资深游戏多开玩家,我曾在《魔兽世界》怀旧服同时运营8个采集账号,结果三天内全军覆没——官方封号邮件里赫然写着"同一IP下异常多账号操作"。这次惨痛经历让…...

rk3576 点亮 LCD(mipi)

rk3576 适配 mipi 屏 瑞芯微 RK3576 是一款面向中高端 AIoT 市场的 SoC,其 MIPI DSI (Display Serial Interface) 接口在性能和灵活性上相比前代(如 RK3399/RK3568)有显著提升,特别是在物理层协议的支持上更加现代化。相比RK3399 RK3568的mipi 接口少了 8lane,但是RK3576…...

别等电脑挂了后悔,教你现在就查看Bitlocker密钥

网管小贾 / sysadm.cc陈主任晃了晃脑袋,皱着眉冲着刘晓白说道:“简历我看过了,就算请我吃饭,恐怕也很难办啊!” 刘晓白则一呲牙:“我说老舅,要进你们公司,还不是您一句话的事儿嘛&am…...

别再手动改Hosts了!用K8S Gateway API轻松搞定基于请求头的AB测试(OpenResty实战)

告别手动配置:基于K8S Gateway API的智能AB测试实战指南 每次功能迭代时,你是否还在反复修改本地Hosts文件来切换测试环境?或是为了验证某个接口在不同版本间的表现差异,不得不频繁重启服务或调整代理配置?这种低效的手…...

Mid-70激光雷达与相机无目标标定:从环境搭建到实战避坑

1. 为什么选择Ubuntu 16.04进行Mid-70标定 最近在给Livox Mid-70激光雷达做相机标定时,我踩了个大坑——在Ubuntu 22.04上折腾了整整两天都没搞定环境配置。后来才发现问题出在版本兼容性上:ROS Kinetic、Ceres 1.14.x和Eigen 3.2.92这几个关键组件在新系…...

3大突破:让网课学习效率提升300%的智能方案

3大突破:让网课学习效率提升300%的智能方案 【免费下载链接】auto-play-course 简单好用的刷课脚本[支持平台:职教云,智慧职教,资源库] 项目地址: https://gitcode.com/gh_mirrors/hc/auto-play-course 在数字化学习普及的今天,职业教育学生平均每…...

Zotero Citation插件进阶使用指南:从安装到定制的全流程解决方案

Zotero Citation插件进阶使用指南:从安装到定制的全流程解决方案 【免费下载链接】zotero-citation Make Zoteros citation in Word easier and clearer. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-citation [痛点分析]:文献管理中的隐…...

【DexGraspNet与多指手抓取算法详解】第六章 运动规划与轨迹优化

目录 第六章 运动规划与轨迹优化 6.1 从静态姿态到动态轨迹 6.1.1 抓取前运动规划 6.1.1.1 快速扩展随机树 (RRT) 6.1.1.1.1 状态空间采样 6.1.1.1.2 碰撞检测机制 6.1.1.2 轨迹平滑处理 6.1.1.2.1 B样条插值 6.1.1.2.2 速度与加速度约束 6.2 基于优化的轨迹生成 6.…...

【优选算法篇】拓扑排序——逻辑先后与任务依赖的终极拆解

文章目录逻辑的枷锁:在依赖网中寻找出路零、 拓扑排序:打破逻辑混乱的“秩序之光”一、 课程表 I & II:经典拓扑排序 (Medium)1.1 题目描述1.2 算法思路:依赖关系的剥离1.3 C 代码实战 (以课程表 II 为例)二、 火星词典&#…...

8人SolidWorks研发共享一台服务器——性能算力共享智能按需分配

8人SolidWorks研发团队可借助云飞云智能共享云桌面,通过以下方式实现一台服务器的性能算力共享与智能按需分配。一、核心硬件配置CPU:选择多核高主频处理器,如Intel Core i9 14900K(24核32线程)或AMD锐龙9 9950X&#…...

ssm+java2026年毕设蔬果批发网络平台【源码+论文】

本系统(程序源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、选题背景关于农产品电商交易模式的研究,现有研究主要以综合电商平台(如淘宝、京东)的农产品销售模式…...

Asp.Net MVC杂谈之:—步步打造表单验证框架[重排版](1)

在实际使用中,我们可以考虑多种形式来进行这一验证(注:本文目前只研究服务器端验证的情况),最直接的方式莫过于对每个表单值手动用C#代码进行验证了,比如: if(!Int32.TryParse(Request.Form[“age”], out age)){ xxxx… } If(age < xxx || age > xxx){ xxxx… }…...

新国标GB 44263实战:如何用一颗传感器搞定交/直/脉动全波形漏电检测?

第一名背后鲜为人知的“现实”我国已经建成全球规模最大的电动汽车充电网络&#xff0c;国家能源局数据显示&#xff0c;截至2026年1月底&#xff0c;我国电动汽车充电基础设施&#xff08;枪&#xff09;总数达到2069.8万个&#xff0c;公共充电设施&#xff08;枪&#xff09…...

终极小说下载器:一键保存全网小说,打造你的私人数字图书馆

终极小说下载器&#xff1a;一键保存全网小说&#xff0c;打造你的私人数字图书馆 【免费下载链接】novel-downloader 一个可扩展的通用型小说下载器。 项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader 你是否遇到过这样的情况&#xff1a;追更的小说突然…...