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

使用 dmesg 工具诊断Linux系统问题基本用法案例

dmesgDiagnosticMessage)是 Linux 中显示内核环形缓冲区(ring buffer)内容的强大工具。以下是详细解析:

一、dmesg 基础

作用

  • 显示内核启动信息
  • 查看硬件设备检测和驱动加载信息
  • 追踪内核级错误和警告
  • 诊断系统问题和性能事件

基本用法

# 查看所有内核消息dmesg# 显示人性化时间戳(需要 sudo 权限查看正确时间)dmesg-T# 或 dmesg --ctime# 按时间格式显示dmesg-t# 只显示消息,无时间戳dmesg--time-format ctime# 人类可读时间dmesg--time-format delta# 相对时间差dmesg--time-format iso# ISO 8601 格式

二、关键信息分类解析

1. 系统启动信息

dmesg|grep-i"boot\|initial"

典型信息:

  • Linux version ...- 内核版本
  • Command line: ...- 内核启动参数
  • Boot ...- 引导信息
  • Memory: ...- 内存检测

2. 硬件检测信息

# CPU 信息dmesg|grep-i"cpu\|processor"# 内存信息dmesg|grep-i"memory\|mem"# 存储设备dmesg|grep-i"disk\|sda\|nvme\|usb"# PCI 设备dmesg|grep-i"pci"# USB 设备dmesg|grep-i"usb"

3. 驱动加载信息

# 网络驱动dmesg|grep-i"eth\|network\|driver.*loaded"# 显卡驱动dmesg|grep-i"drm\|gpu\|radeon\|nvidia\|intel"# 文件系统dmesg|grep-i"filesystem\|ext4\|xfs\|btrfs"

4. 错误和警告信息

# 错误级别筛选dmesg--level=err,warn# 查看所有错误dmesg|grep-E"error|fail|invalid|unsupported"# 查看警告dmesg|grep-E"warning|deprecated"

dmesg 日志级别:

  • emerg(0) - 系统不可用
  • alert(1) - 必须立即处理
  • crit(2) - 严重情况
  • err(3) - 错误条件
  • warn(4) - 警告条件
  • notice(5) - 正常但重要
  • info(6) - 信息性消息
  • debug(7) - 调试级消息

三、实用命令组合

实时监控

# 实时查看新内核消息watch-n1"dmesg | tail -20"# 监控特定设备dmesg-w|grep-i"usb\|sda"

时间范围查询

# 查看最近5分钟的消息dmesg--since"5 minutes ago"# 查看特定时间段dmesg--since"2024-01-15 10:00:00"--until"2024-01-15 11:00:00"# 查看从上次重启以来的消息dmesg-T --since=$(uptime-s)

过滤和格式化

# 按设备/驱动过滤dmesg|grep-E"\[sd[a-z]\]|\[nvme\]"# 查看最近100条消息dmesg|tail-100# 查看并分页显示dmesg|less# 彩色输出(需要ccze)dmesg|ccze -A

四、dmesg 高级应用

1. OOM(内存不足)分析

# 查看所有OOM事件dmesg|grep-i"oom\|out.of.memory"# 查看被kill的进程dmesg|grep-i"killed.process"# 查看详细内存信息dmesg|grep-A5 -B5"Out of memory"

2. 硬件故障诊断

# 硬盘错误dmesg|grep-i"disk\|sector\|io.error\|smart"# 内存错误dmesg|grep-i"mem.*error\|ecc\|mce"# CPU 错误dmesg|grep-i"cpu.*error\|mce\|thermal"# 网络问题dmesg|grep-i"network\|link\|eth.*down"

3. 性能问题排查

# IRQ 冲突dmesg|grep-i"irq.*conflict"# DMA 问题dmesg|grep-i"dma"# 时钟同步dmesg|grep-i"clock\|tsc"

五、dmesg 配置和管理

缓冲区设置

# 查看缓冲区大小cat/proc/sys/kernel/dmesg_restrictcat/proc/sys/kernel/printk# 调整缓冲区(临时)sudosysctl -w kernel.dmesg_restrict=0sudosysctl -w kernel.printk="4 4 1 7"# 清除缓冲区(谨慎使用)sudodmesg-C

永久日志保存

# 保存当前dmesg到文件dmesg>/var/log/dmesg.log# 保存带时间戳的版本dmesg-T>/var/log/dmesg_timestamped.log# 系统启动时自动保存# 查看服务:systemctl status dmesg.servicels-la /var/log/dmesg*

六、journalctl 替代方案

systemd 系统可以使用journalctl查看内核日志:

# 查看内核日志journalctl -k# 实时查看journalctl -k -f# 按时间过滤journalctl -k --since"1 hour ago"# 按优先级journalctl -k -p err

七、实用示例

案例1:诊断USB设备问题

# 插入USB设备后查看日志dmesg|tail-20# 查看USB设备详细信息dmesg|grep-A10 -B5"usb.*new"

案例2:诊断网络中断

# 查看网络驱动加载和中断dmesg|grep-i"eth0\|interrupt\|link"

案例3:系统启动缓慢分析

# 查看启动时间线dmesg|grep-E"\[.*s\]"|head-30

八、注意事项

  1. 权限要求:某些选项需要 root 权限
  2. 环形缓冲区:旧消息会被新消息覆盖
  3. 时间戳:默认显示相对时间,-T选项转换为本地时间
  4. 非持久化:重启后缓冲区会被清空(除非配置保存)

dmesg是系统管理员和开发者诊断 Linux 系统问题的必备工具,熟练掌握可以帮助快速定位硬件、驱动和内核级别的问题。

http://www.jsqmd.com/news/244520/

相关文章:

  • 【课程设计/毕业设计】基于深度学习python-CNN的鞋面缺陷识别基于深度学习python-CNN深度学习的鞋面缺陷识别
  • 给水干管工程量-连续测量高效计算
  • UE5 C++(27-2):
  • 深度学习计算机毕设之基于卷神经网络python-CNN的鞋面缺陷识别基于深度学习python-CNN的鞋面缺陷识别
  • Jira vs bugzilla vs mantis vs Kanass,项目管理工具深度纵评
  • UE5 C++(28):
  • confluence vs 语雀 vs notion vs sward,知识管理工具深度纵评
  • python基于vue的商城购物平台设计与实现 优惠卷django flask pycharm
  • Zynq上UART/IIC/SPI的27个实验-第3课:PS GPIO 模拟 UART 发送
  • 深度学习毕设项目:基于机器学习python-CNN的鞋面缺陷识别基于深度学习python-CNN的鞋面缺陷识别
  • Zynq上UART/IIC/SPI的27个实验-第4课:PS GPIO 模拟 UART 接收
  • Zynq上UART/IIC/SPI的27个实验-第5课:PL 逻辑 UART 发送
  • 基于 YOLOv8 的智能摊位识别与视频监控系统 [目标检测完整源码]
  • Zynq上UART/IIC/SPI的27个实验-第6课:PL 逻辑 UART 接收
  • 鸿蒙 APP 还是卡顿?API 21 性能优化这 3 招,立竿见影!
  • AI论文写作从零到一操作指南:6款工具手把手教你1小时搞定全文
  • 基于 YOLOv8 的无人机航拍树木智能识别实战项目分享
  • List 组件渲染慢?鸿蒙API 21 复用机制深度剖析,一行代码提速 200%!
  • 深度学习毕设项目推荐-基于python-CNN卷积神经网络的胡萝卜是否变质识别
  • Matlab —— 语音信号处理及频谱分析.wav文件(附:matlab代码)
  • 深度学习毕设项目推荐-基于python-CNN深度学习对棉花叶病识别
  • 智算中心与大模型协同:AI时代的算力基础设施与产业赋能指南
  • 国巨君耀 4532 系列 SMD 气体放电管:电路过压防护的可靠之选
  • 亲测好用!10个AI论文平台测评:本科生毕业论文必备
  • LangGraph多Agent架构实战:Open Deep Research三级分层嵌套结构深度解析
  • 算力成本估算:基于Token吞吐量的资源需求模型
  • 别让“小眼镜”挡路!儿童近视防控,从读懂“调节力”开始
  • 35 岁危机绕道走!480 万缺口的网络安全,金饭碗稳到退休
  • 模型上下文协议(MCP):大模型与外部世界沟通的“普通话“,程序员必藏技术
  • Java工程师转型大模型实战:3个月从失业到高薪入职,附104G资源包,我的转型之路与副业机遇