FlashMLA 加速推理技术
2026/1/14 18:29:47
dmesg(DiagnosticMessage)是 Linux 中显示内核环形缓冲区(ring buffer)内容的强大工具。以下是详细解析:
# 查看所有内核消息dmesg# 显示人性化时间戳(需要 sudo 权限查看正确时间)dmesg-T# 或 dmesg --ctime# 按时间格式显示dmesg-t# 只显示消息,无时间戳dmesg--time-format ctime# 人类可读时间dmesg--time-format delta# 相对时间差dmesg--time-format iso# ISO 8601 格式dmesg|grep-i"boot\|initial"典型信息:
Linux version ...- 内核版本Command line: ...- 内核启动参数Boot ...- 引导信息Memory: ...- 内存检测# 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"# 网络驱动dmesg|grep-i"eth\|network\|driver.*loaded"# 显卡驱动dmesg|grep-i"drm\|gpu\|radeon\|nvidia\|intel"# 文件系统dmesg|grep-i"filesystem\|ext4\|xfs\|btrfs"# 错误级别筛选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# 查看所有OOM事件dmesg|grep-i"oom\|out.of.memory"# 查看被kill的进程dmesg|grep-i"killed.process"# 查看详细内存信息dmesg|grep-A5 -B5"Out of memory"# 硬盘错误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"# IRQ 冲突dmesg|grep-i"irq.*conflict"# DMA 问题dmesg|grep-i"dma"# 时钟同步dmesg|grep-i"clock\|tsc"# 查看缓冲区大小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*systemd 系统可以使用journalctl查看内核日志:
# 查看内核日志journalctl -k# 实时查看journalctl -k -f# 按时间过滤journalctl -k --since"1 hour ago"# 按优先级journalctl -k -p err# 插入USB设备后查看日志dmesg|tail-20# 查看USB设备详细信息dmesg|grep-A10 -B5"usb.*new"# 查看网络驱动加载和中断dmesg|grep-i"eth0\|interrupt\|link"# 查看启动时间线dmesg|grep-E"\[.*s\]"|head-30-T选项转换为本地时间dmesg是系统管理员和开发者诊断 Linux 系统问题的必备工具,熟练掌握可以帮助快速定位硬件、驱动和内核级别的问题。