Linux命令dmesg详解和实例: 显示或控制内核环形缓冲区的内容,查看或操作内核消息

目录

一、命令介绍

二、 基本用法

1、语法结构

2、选项

3、支持的日志设施:

4、支持的日志级别(优先级):

四、基本用法

1. 查看内核消息:

2. 实时查看内核消息:

3. 清空内核消息:

五、 高级用法

1. 过滤消息:

2. 查看消息级别:

4、特别提醒

六、dmesg主要的应用场景

1. 系统启动和初始化阶段的问题诊断:

2. 硬件相关问题的调试:

3. 内核错误和警告的查看:

4. 动态观察系统事件:

5. 清除内核消息缓冲区:

6. 系统性能分析和调优:

七、系统运维中的应用和实例

1. 查看系统启动时的内核信息,包括诊断硬件和驱动相关信息

2. 实时监控系统事件:

3. 过滤特定消息:

4. 设置日志级别:

5. 清除内核消息缓冲区:


一、命令介绍

        dmesg命令 在Linux系统中用于显示或控制内核环形缓冲区的内容。`dmesg`命令允许用户查看或操作内核消息,这些消息通常记录了系统启动过程、硬件检测、驱动加载、系统错误等关键信息。

       在linux系统的命令行中输入:man dmesg,可以看到dmesg的详细解释,如下图示:

二、 基本用法

1、语法结构

        语法结构:

                dmesg [选项]

2、选项

选项如下:

 -C, --clear                 清除内核环形缓冲区(ring butter)

 -c, --read-clear            读取并清除所有消息

 -D, --console-off           禁止向终端打印消息

 -d, --show-delta            显示打印消息之间的时间差

 -e, --reltime               以易读格式显示本地时间和时间差

 -E, --console-on            启用向终端打印消息

 -F, --file <文件>           用 文件 代替内核日志缓冲区

 -f, --facility <列表>       将输出限制为定义的设施

 -H, --human                 易读格式输出

 -k, --kernel                显示内核消息

 -L, --color                 显示彩色消息

 -l, --level <列表>          限制输出级别

 -n, --console-level <级别>  设置打印到终端的消息级别

 -P, --nopager               不将输出通过管道传递给分页程序

 -r, --raw                   打印原生消息缓冲区

 -S, --syslog                强制使用 syslog(2) 而非 /dev/kmsg

 -s, --buffer-size <大小>    查询内核环形缓冲区所用的缓冲区大小

 -T, --ctime                 显示易读的时间戳(如果您使用了

                                SUSPEND/RESUME 则可能不准)

 -t, --notime                不打印消息时间戳

 -u, --userspace             显示用户空间消息

 -w, --follow                等待新消息

 -x, --decode                将设施和级别解码为可读的字符串

 -h, --help     显示此帮助并退出

 -V, --version  输出版本信息并退出

3、支持的日志设施:

    kern     -  内核消息

    user     -  随机的用户级消息

    mail     -  邮件系统

  daemon -  系统守护进程

    auth     -  安全/认证消息

  syslog    -  syslogd 内部生成的消息

     lpr       -  行打印机子系统

    news    -  网络新闻子系统

4、支持的日志级别(优先级):

   emerg -  系统无法使用

   alert    -  操作必须立即执行

    crit     -  紧急条件

     err    -  错误条件

    warn  -  警告条件

  notice  -  正常但重要的条件

    info    -  信息

   debug -  调试级别的消息

四、基本用法

1. 查看内核消息:

        dmesg

        这个命令将显示内核环形缓冲区中的所有消息。

2. 实时查看内核消息:

        dmesg -w

        使用`-w`选项,你可以实时查看新的内核消息。这对于观察系统动态或调试问题非常有用。

3. 清空内核消息:

        dmesg --clear

        或者简写为:

        dmesg -c

        这将清空内核环形缓冲区,删除所有当前的消息。

五、 高级用法

        `dmesg`是Linux系统管理员和开发者在诊断系统问题、调试硬件或驱动程序时经常使用的工具。它提供了对系统内部状态的直接访问,特别是一些高级用法,有助于快速识别和解决问题。

1. 过滤消息:

        使用`grep`命令结合`dmesg`可以过滤出特定的消息。例如,如果你想查找与某个驱动相关的消息,可以这样做:      dmesg | grep "driver_name"

       输入命令:

dmesg | grep "/dev/mapper/cl-root"

        在centos中,实际效果如下所示:

[root@localhost ~]#
[root@localhost ~]# dmesg | grep "/dev/mapper/cl-root"
[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-3.10.0-1160.102.1.el7.x86_64 root=/dev/mapper/cl-root ro crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet LANG=zh_CN.UTF-8
[    0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-3.10.0-1160.102.1.el7.x86_64 root=/dev/mapper/cl-root ro crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet LANG=zh_CN.UTF-8
[root@localhost ~]#

2. 查看消息级别:

        内核消息有不同的级别,如`alert`、`crit`、`err`、`warning`、`notice`、`info`、`debug`等。你可以使用`dmesg`的`--level`选项来查看特定级别的消息。例如:

        dmesg --level=notice

        这将只显示“notice”级别的消息。

        在centos中,实际效果如下所示:

[root@localhost ~]# dmesg --level=notice
[    0.000000] Linux version 3.10.0-1160.102.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Tue Oct 17 15:42:21 UTC 2023
[    0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-3.10.0-1160.102.1.el7.x86_64 root=/dev/mapper/cl-root ro crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet LANG=zh_CN.UTF-8
[    0.319427] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
[    0.700735] SCSI subsystem initialized
[    0.727864] amd_nb: Cannot enumerate AMD northbridges
[    1.065534] Initialise system trusted keyring
[    1.066207] type=2000 audit(1708495201.842:1): initialized
[    1.090506] VFS: Disk quotas dquot_6.5.2
[    1.091355] Key type big_key registered
[    1.093256] Key type asymmetric registered
[    1.093258] Asymmetric key parser 'x509' registered
[    1.130925] Loading compiled-in X.509 certificates
[    1.130969] Loaded X.509 cert 'CentOS Linux kpatch signing key: ea0413152cde1d98ebdca3fe6f0230904c9ef717'
[    1.130985] Loaded X.509 cert 'CentOS Linux Driver update signing key: 7f421ee0ab69461574bb358861dbe77762a4201b'
[    1.131824] Loaded X.509 cert 'CentOS Linux kernel signing key: 567c0a8506c7c300f066035cea63e5bafde23fda'
[    1.134608] Key type trusted registered
[    1.136921] Key type encrypted registered
[    1.165486] random: systemd: uninitialized urandom read (16 bytes read)
[    1.165979] random: systemd: uninitialized urandom read (16 bytes read)
[    1.165993] random: systemd: uninitialized urandom read (16 bytes read)
[    1.212392] random: systemd: uninitialized urandom read (16 bytes read)
[    1.212438] random: systemd: uninitialized urandom read (16 bytes read)
[    1.212523] random: systemd: uninitialized urandom read (16 bytes read)
[    1.212637] random: systemd: uninitialized urandom read (16 bytes read)
[    1.213821] random: systemd: uninitialized urandom read (16 bytes read)
[    1.214074] random: systemd: uninitialized urandom read (16 bytes read)
[    1.214787] random: systemd: uninitialized urandom read (16 bytes read)
[    1.568170] scsi 0:0:0:0: Direct-Access     VMware   Virtual disk     2.0  PQ: 0 ANSI: 6
[    1.612281] sd 0:0:0:0: [sda] 125829120 512-byte logical blocks: (64.4 GB/60.0 GiB)
[    1.612461] sd 0:0:0:0: [sda] Write Protect is off
[    1.612491] sd 0:0:0:0: [sda] Cache data unavailable
[    1.622367] sd 0:0:0:0: [sda] Attached SCSI disk
[    2.248727] scsi 4:0:0:0: CD-ROM            NECVMWar VMware SATA CD01 1.00 PQ: 0 ANSI: 5
[    2.285142] random: fast init done
[    3.132740] random: crng init done
[    3.619827] XFS (dm-0): Mounting V5 Filesystem
[    3.970774] XFS (dm-0): Starting recovery (logdev: internal)
[    4.072068] XFS (dm-0): Ending recovery (logdev: internal)
[    5.625963] type=1404 audit(1708495206.966:2): selinux=0 auid=4294967295 ses=4294967295
[   11.447088] sd 0:0:0:0: Attached scsi generic sg0 type 0
[   11.447168] sr 4:0:0:0: Attached scsi generic sg1 type 5
[   12.284860] XFS (sda1): Mounting V5 Filesystem
[   13.099012] XFS (sda1): Starting recovery (logdev: internal)
[   13.216610] XFS (sda1): Ending recovery (logdev: internal)
[   13.666750] XFS (dm-2): Mounting V5 Filesystem
[   14.178238] XFS (dm-2): Starting recovery (logdev: internal)
[   14.268067] XFS (dm-2): Ending recovery (logdev: internal)
[   14.905263] type=1305 audit(1708495216.245:3): audit_pid=771 old=0 auid=4294967295 ses=4294967295 res=1
[root@localhost ~]#

4、特别提醒

(1) `dmesg`命令显示的消息通常是内核产生的,因此它们通常与底层硬件和系统状态有关。

(2) 由于内核消息是循环存储的,所以旧的消息可能会被新的消息覆盖。因此,如果你正在调查某个问题,最好尽快使用`dmesg`捕获相关信息。

(3) 实时查看内核消息(使用`-w`选项)可能会产生大量的输出,特别是在系统繁忙时。确保你有足够的信息来过滤或处理这些消息。

六、dmesg主要的应用场景

        `dmesg`是一个强大的工具,具有广泛的应用,可以帮助Linux管理员和开发者深入了解系统的内部状态和事件,从而更有效地诊断和解决问题。`dmesg`命令通常在以下几种情况下被使用:

1. 系统启动和初始化阶段的问题诊断:

        在Linux系统启动过程中,内核会输出大量的信息到内核环形缓冲区,这些信息包括硬件检测、驱动加载、文件系统挂载等。如果系统启动失败或某些功能无法正常工作,管理员通常会使用`dmesg`来查看这些启动信息,以便诊断问题所在。

2. 硬件相关问题的调试:

        当硬件出现问题,如设备无法识别、驱动不兼容或硬件故障时,`dmesg`可以提供关于硬件与内核交互的详细信息。这些信息对于确定硬件问题的原因以及如何解决它们非常有帮助。

3. 内核错误和警告的查看:

        如果系统出现内核错误或警告,这些消息通常会被写入内核环形缓冲区。使用`dmesg`可以迅速查看这些错误或警告,以便管理员或开发者了解问题的性质和可能的解决方案。

4. 动态观察系统事件:

        使用`dmesg -w`选项可以实时查看内核产生的新消息。这对于观察系统动态、监控硬件状态或调试正在运行的系统问题非常有用。

5. 清除内核消息缓冲区:

        在某些情况下,管理员可能需要清除内核消息缓冲区,以便只查看最新的系统事件。这可以通过`dmesg --clear`或`dmesg -c`命令实现。

6. 系统性能分析和调优:

        虽然`dmesg`主要用于错误和警告信息的查看,但有时它也可以提供有关系统性能的信息。例如,如果某个设备或驱动导致系统性能下降,`dmesg`的输出可能包含相关的提示或警告。

七、系统运维中的应用和实例

        在Linux系统运维中,`dmesg`命令是一个非常重要的工具,主要用于问题诊断和系统调试。可以帮助运维人员深入了解系统的内部状态和事件,从而更有效地诊断和解决问题。通过结合其他命令和选项,运维人员可以更加灵活地利用`dmesg`进行系统监控和故障排查。以下是一些`dmesg`在Linux系统运维中的具体用法:

1. 查看系统启动时的内核信息,包括诊断硬件和驱动相关信息

        在系统启动过程中,内核会输出大量关于硬件检测、驱动加载、文件系统挂载等的信息,以及硬件与内核交互的详细信息。使用`dmesg`可以查看这些启动信息,帮助运维人员了解系统启动过程中的状态和可能存在的问题。

        当系统出现硬件故障或驱动不兼容等问题时,通过查看`dmesg`输出,运维人员可以了解硬件设备的状态、驱动程序的加载情况以及可能的错误或警告信息,从而进行针对性的排查和修复。

        输入命令:

dmesg

        在centos中,实际效果如下所示:

[root@localhost ~]# dmesg
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.10.0-1160.102.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Tue Oct 17 15:42:21 UTC 2023
[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-3.10.0-1160.102.1.el7.x86_64 root=/dev/mapper/cl-root ro crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet LANG=zh_CN.UTF-8
[    0.000000] Disabled fast string operations
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009e7ff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009e800-0x000000000009ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000000ce000-0x00000000000cffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000000dc000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000bfecffff] usable
[    0.000000] BIOS-e820: [mem 0x00000000bfed0000-0x00000000bfefefff] ACPI data
[    0.000000] BIOS-e820: [mem 0x00000000bfeff000-0x00000000bfefffff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000bff00000-0x00000000bfffffff] usable
[    0.000000] BIOS-e820: [mem 0x00000000f0000000-0x00000000f7ffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec0ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fffe0000-0x00000000ffffffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000100000000-0x00000001bfffffff] usable
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] SMBIOS 2.7 present.
[    0.000000] DMI: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 12/12/2018
[    0.000000] Hypervisor detected: VMware
[    0.000000] vmware: TSC freq read from hypervisor : 2194.843 MHz
[    0.000000] vmware: Host bus clock speed read from hypervisor : 66000000 Hz
[    0.000000] vmware: using sched offset of 8031519022 ns
[    0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[    0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[    0.000000] e820: last_pfn = 0x1c0000 max_arch_pfn = 0x400000000
[    0.000000] MTRR default type: uncachable
[    0.000000] MTRR fixed ranges enabled:
[    0.000000]   00000-9FFFF write-back
[    0.000000]   A0000-BFFFF uncachable
[    0.000000]   C0000-CFFFF write-protect
[    0.000000]   D0000-EFFFF uncachable
[    0.000000]   F0000-FFFFF write-protect
[    0.000000] MTRR variable ranges enabled:
[    0.000000]   0 base 00000000000 mask 7E000000000 write-back
[    0.000000]   1 base 000C0000000 mask 7FFC0000000 uncachable
[    0.000000]   2 disabled
[    0.000000]   3 disabled
[    0.000000]   4 disabled
[    0.000000]   5 disabled
[    0.000000]   6 disabled
[    0.000000]   7 disabled
[    0.000000] PAT configuration [0-7]: WB  WC  UC- UC  WB  WP  UC- UC
[    0.000000] original variable MTRRs
[    0.000000] reg 0, base: 0GB, range: 128GB, type WB
[    0.000000] reg 1, base: 3GB, range: 1GB, type UC
[    0.000000] total RAM covered: 130048M
[    0.000000] Found optimal setting for mtrr clean up
[    0.000000]  gran_size: 64K  chunk_size: 128G        num_reg: 2      lose cover RAM: 0G
[    0.000000] New variable MTRRs

........................................
........................................

[    2.249297] ata24: SATA link down (SStatus 0 SControl 300)
[    2.249329] ata28: SATA link down (SStatus 0 SControl 300)
[    2.249360] ata22: SATA link down (SStatus 0 SControl 300)
[    2.271328] sr 4:0:0:0: [sr0] scsi3-mmc drive: 1x/1x writer dvd-ram cd/rw xa/form2 cdda tray
[    2.271331] cdrom: Uniform CD-ROM driver Revision: 3.20
[    2.271480] sr 4:0:0:0: Attached scsi CD-ROM sr0
[    2.285142] random: fast init done
[    3.132740] random: crng init done
[    3.609799] SGI XFS with ACLs, security attributes, no debug enabled
[    3.619827] XFS (dm-0): Mounting V5 Filesystem
[    3.970774] XFS (dm-0): Starting recovery (logdev: internal)
[    4.072068] XFS (dm-0): Ending recovery (logdev: internal)
[    4.579192] systemd-journald[108]: Received SIGTERM from PID 1 (systemd).
[    5.582715] SELinux:  Disabled at runtime.
[    5.582756] SELinux:  Unregistering netfilter hooks
[    5.625963] type=1404 audit(1708495206.966:2): selinux=0 auid=4294967295 ses=4294967295
[    6.119180] ip_tables: (C) 2000-2006 Netfilter Core Team
[    6.120044] systemd[1]: Inserted module 'ip_tables'
[    9.516362] systemd-journald[599]: Received request to flush runtime journal from PID 1
[   10.282285] vmw_vmci 0000:00:07.7: Found VMCI PCI device at 0x11080, irq 16
[   10.282389] vmw_vmci 0000:00:07.7: Using capabilities 0xc
[   10.282723] vmw_vmci 0000:00:07.7: irq 58 for MSI/MSI-X
[   10.282829] vmw_vmci 0000:00:07.7: irq 59 for MSI/MSI-X
[   10.283381] Guest personality initialized and is active
[   10.283461] VMCI host device registered (name=vmci, major=10, minor=58)
[   10.283463] Initialized host personality
[   10.381766] piix4_smbus 0000:00:07.3: SMBus Host Controller not enabled!
[   11.166605] input: PC Speaker as /devices/platform/pcspkr/input/input4
[   11.317414] ppdev: user-space parallel port driver
[   11.333985] cryptd: max_cpu_qlen set to 1000
[   11.447088] sd 0:0:0:0: Attached scsi generic sg0 type 0
[   11.447168] sr 4:0:0:0: Attached scsi generic sg1 type 5
[   11.488376] AVX2 version of gcm_enc/dec engaged.
[   11.488380] AES CTR mode by8 optimization enabled
[   11.493348] alg: No test for __gcm-aes-aesni (__driver-gcm-aes-aesni)
[   11.493427] alg: No test for __generic-gcm-aes-aesni (__driver-generic-gcm-aes-aesni)
[   11.717389] Adding 2097148k swap on /dev/mapper/cl-swap.  Priority:-2 extents:1 across:2097148k FS
[   12.284860] XFS (sda1): Mounting V5 Filesystem
[   13.099012] XFS (sda1): Starting recovery (logdev: internal)
[   13.216610] XFS (sda1): Ending recovery (logdev: internal)
[   13.666750] XFS (dm-2): Mounting V5 Filesystem
[   13.983044] floppy0: no floppy controllers found
[   14.178238] XFS (dm-2): Starting recovery (logdev: internal)
[   14.268067] XFS (dm-2): Ending recovery (logdev: internal)
[   14.905263] type=1305 audit(1708495216.245:3): audit_pid=771 old=0 auid=4294967295 ses=4294967295 res=1
[   17.128959] NET: Registered protocol family 40
[   18.272848] IPv6: ADDRCONF(NETDEV_UP): ens32: link is not ready
[   18.279243] e1000: ens32 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
[   18.283627] IPv6: ADDRCONF(NETDEV_UP): ens32: link is not ready
[   18.283638] IPv6: ADDRCONF(NETDEV_CHANGE): ens32: link becomes ready
[  628.365501] hrtimer: interrupt took 14359 ns
[11864.730612] Bluetooth: Core ver 2.22
[11864.730633] NET: Registered protocol family 31
[11864.730634] Bluetooth: HCI device and connection manager initialized
[11864.730638] Bluetooth: HCI socket layer initialized
[11864.730641] Bluetooth: L2CAP socket layer initialized
[11864.730645] Bluetooth: SCO socket layer initialized
[12066.424084] device ens32 entered promiscuous mode
[12085.092027] device ens32 left promiscuous mode
[960976.742959] UDP: bad checksum. From 183.129.159.243:62483 to 192.168.1.191:20547 ulen 49
[1392605.276386] device ens32 entered promiscuous mode
[1392779.506753] device ens32 left promiscuous mode
[1394128.434830] device ens32 entered promiscuous mode
[1394261.088835] device ens32 left promiscuous mode
[1394500.689646] device ens32 entered promiscuous mode
[1394661.986082] device ens32 left promiscuous mode
[1394988.372472] device ens32 entered promiscuous mode
[1395421.611522] device ens32 left promiscuous mode
[1396211.134762] device ens32 entered promiscuous mode
[1396544.704015] device ens32 left promiscuous mode
[1400069.526901] device ens32 entered promiscuous mode
[1400354.953733] device ens32 left promiscuous mode
[1403420.170669] device ens32 entered promiscuous mode
[1403710.594769] device ens32 left promiscuous mode
[1404618.793475] device ens32 entered promiscuous mode
[1404620.724127] device ens32 left promiscuous mode
[1728675.824848] sched: RT throttling activated
[root@localhost ~]#

数量太多,用了“......................”省略了中间的部分。

2. 实时监控系统事件:

        使用`dmesg -w`选项可以实时查看内核产生的新消息。这对于运维人员观察系统动态、监控硬件状态或调试正在运行的系统问题非常有用。通过实时查看`dmesg`输出,运维人员可以及时发现并解决潜在的系统问题。

       输入命令:

dmesg -w

        在centos中,实际效果如下所示:

可以看出,输出没有停下来,继续实时输出信息。

3. 过滤特定消息:

        由于`dmesg`输出的消息量可能很大,运维人员可以使用管道和`grep`命令来过滤特定的消息。例如,可以使用`dmesg | grep "interrupt"`来只显示包含“interrupt”关键字的消息,从而快速定位错误或警告信息。

       输入命令:

dmesg | grep "interrupt"

        在centos中,实际效果如下所示:

[root@localhost ~]#
[root@localhost ~]# dmesg | grep "interrupt"
[    0.344431] ACPI: Using IOAPIC for interrupt routing
[    1.109523] pcieport 0000:00:15.0: Signaling PME through PCIe PME interrupt
[    1.109525] pci 0000:03:00.0: Signaling PME through PCIe PME interrupt
[    1.109630] pcieport 0000:00:15.1: Signaling PME through PCIe PME interrupt
[    1.109736] pcieport 0000:00:15.2: Signaling PME through PCIe PME interrupt
[    1.109843] pcieport 0000:00:15.3: Signaling PME through PCIe PME interrupt
[    1.109955] pcieport 0000:00:15.4: Signaling PME through PCIe PME interrupt
[    1.110059] pcieport 0000:00:15.5: Signaling PME through PCIe PME interrupt
[    1.110164] pcieport 0000:00:15.6: Signaling PME through PCIe PME interrupt
[    1.110268] pcieport 0000:00:15.7: Signaling PME through PCIe PME interrupt
[    1.110372] pcieport 0000:00:16.0: Signaling PME through PCIe PME interrupt
[    1.110482] pcieport 0000:00:16.1: Signaling PME through PCIe PME interrupt
[    1.110587] pcieport 0000:00:16.2: Signaling PME through PCIe PME interrupt
[    1.110692] pcieport 0000:00:16.3: Signaling PME through PCIe PME interrupt
[    1.110796] pcieport 0000:00:16.4: Signaling PME through PCIe PME interrupt
[    1.110901] pcieport 0000:00:16.5: Signaling PME through PCIe PME interrupt
[    1.111012] pcieport 0000:00:16.6: Signaling PME through PCIe PME interrupt
[    1.111117] pcieport 0000:00:16.7: Signaling PME through PCIe PME interrupt
[    1.111221] pcieport 0000:00:17.0: Signaling PME through PCIe PME interrupt
[    1.111325] pcieport 0000:00:17.1: Signaling PME through PCIe PME interrupt
[    1.111430] pcieport 0000:00:17.2: Signaling PME through PCIe PME interrupt
[    1.111535] pcieport 0000:00:17.3: Signaling PME through PCIe PME interrupt
[    1.111639] pcieport 0000:00:17.4: Signaling PME through PCIe PME interrupt
[    1.111745] pcieport 0000:00:17.5: Signaling PME through PCIe PME interrupt
[    1.111849] pcieport 0000:00:17.6: Signaling PME through PCIe PME interrupt
[    1.111959] pcieport 0000:00:17.7: Signaling PME through PCIe PME interrupt
[    1.112065] pcieport 0000:00:18.0: Signaling PME through PCIe PME interrupt
[    1.112170] pcieport 0000:00:18.1: Signaling PME through PCIe PME interrupt
[    1.112275] pcieport 0000:00:18.2: Signaling PME through PCIe PME interrupt
[    1.112382] pcieport 0000:00:18.3: Signaling PME through PCIe PME interrupt
[    1.112488] pcieport 0000:00:18.4: Signaling PME through PCIe PME interrupt
[    1.112593] pcieport 0000:00:18.5: Signaling PME through PCIe PME interrupt
[    1.112698] pcieport 0000:00:18.6: Signaling PME through PCIe PME interrupt
[    1.112805] pcieport 0000:00:18.7: Signaling PME through PCIe PME interrupt
[  628.365501] hrtimer: interrupt took 14359 ns
[root@localhost ~]# dmesg | grep "error"
[root@localhost ~]#
[root@localhost ~]#

4. 设置日志级别:

        通过指定日志级别,运维人员可以控制`dmesg`输出的信息范围。例如,使用`dmesg --level=err`将只显示错误级别的消息,这有助于聚焦关键问题并减少干扰信息。

       输入命令:

dmesg --level=err

        在centos中,实际效果如下所示:

[root@localhost ~]#
[root@localhost ~]# dmesg --level=err
[    1.612493] sd 0:0:0:0: [sda] Assuming drive cache: write through
[   10.381766] piix4_smbus 0000:00:07.3: SMBus Host Controller not enabled!
[root@localhost ~]#
[root@localhost ~]#

5. 清除内核消息缓冲区:

        在某些情况下,运维人员可能需要清除内核消息缓冲区以释放空间或仅关注最新的系统事件。可以使用`dmesg --clear`或`dmesg -C`命令来清空内核环形缓冲区。

      输入命令:

dmesg --clear

        centos中,实际效果如下所示:

[root@localhost ~]# dmesg --clear
[root@localhost ~]# dmesg --level=err
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# dmesg
[root@localhost ~]#
[root@localhost ~]#

        可以看出,清楚以后,暂时没有任何信息了。


篇幅有限,文章正下方可以看到我的联系方式。

鼠标“点击” 下面的 “威迪斯特-就是video system 微信名片”字样,就会出现我的二维码,欢迎沟通。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/485788.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

005、Dynamo与Revit API之间的转换

今天来聊聊 Dynamo 与 Revit 之间图元转换的基础知识&#xff0c;这些需要你牢牢记住哦&#xff0c;不然在 Python script 中写代码&#xff0c;经常会报错的~ 通常来讲&#xff0c;所有来自 Dynamo 节点的几何图形都不是 Revit 的几何对象&#xff0c;所以它们需要与 Revit AP…

网盘——数据库操作

关于网盘的数据库模块&#xff0c;主要有以下几个内容&#xff1a;定义数据库操作类、将数据库操作类定义成单例模式、数据库操作 数据库是在Qt里面&#xff0c;定义成操作类&#xff0c;专门用这个类产生对象&#xff0c;对数据库实现操作&#xff0c;那么我们在产生对象的时…

2016年认证杯SPSSPRO杯数学建模D题(第二阶段)NBA是否有必要设立四分线全过程文档及程序

2016年认证杯SPSSPRO杯数学建模 D题 NBA是否有必要设立四分线 原题再现&#xff1a; NBA 联盟从 1946 年成立到今天&#xff0c;一路上经历过无数次规则上的变迁。有顺应民意、皆大欢喜的&#xff0c;比如 1973 年在技术统计中增加了抢断和盖帽数据&#xff1b;有应运而生、力…

linux 通过nvm安装node.js

我的博客原文&#xff1a;linux 通过nvm安装node 前言 nvm是一个node版本控制的工具&#xff0c;他可以查看可以安装的node版本&#xff0c;安装node&#xff0c;以及切换node版本&#xff0c;传统的node安装&#xff0c;我们是下载压缩包&#xff0c;然后指定环境变量&…

蓝桥杯算法赛(二进制王国)

问题描述 二进制王国是一个非常特殊的国家&#xff0c;因为该国家的居民仅由 0 和 1 组成。 在这个国家中&#xff0c;每个家庭都可以用一个由 0 和 1 组成的字符串 S 来表示&#xff0c;例如 101、 000、 111 等。 现在&#xff0c;国王选了出 N 户家庭参加邻国的庆典…

吴恩达深度学习笔记:神经网络的编程基础2.15-2.17

目录 第一门课&#xff1a;神经网络和深度学习 (Neural Networks and Deep Learning)第二周&#xff1a;神经网络的编程基础 (Basics of Neural Network programming)2.15 Python 中的广播&#xff08;Broadcasting in Python&#xff09;2.16 关于 python _ numpy 向量的说明&…

SpringCloud - 架构体系详解

Spring Cloud简介 Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。 Spring并没有重复制造…

我在京东做数据分析,一位京东数据分析师的工作日常

有人说&#xff1a;“种下一棵树最好的时间是十年前&#xff0c;其次是现在”。任何时候&#xff0c;我们都应该抓住机遇&#xff0c;说不定就是改变你现状的一个机会。 2020年&#xff0c;我在疫情得到控制后&#xff0c;面试入职京东大数据组&#xff0c;截止目前&#xff0…

【项目设计】基于MVC的负载均衡式的在线OJ

项目代码&#xff08;可直接下载运行&#xff09; 一、项目的相关背景 学习编程的小伙伴&#xff0c;大家对力扣、牛客或其他在线编程的网站一定都不陌生&#xff0c;这些编程网站除了提供了在线编程&#xff0c;还有其他的一些功能。我们这个项目只是做出能够在线编程的功能。…

浏览器工作原理与实践--渲染流程(上):HTML、CSS和JavaScript,是如何变成页面的

在上一篇文章中我们介绍了导航相关的流程&#xff0c;那导航被提交后又会怎么样呢&#xff1f;就进入了渲染阶段。这个阶段很重要&#xff0c;了解其相关流程能让你“看透”页面是如何工作的&#xff0c;有了这些知识&#xff0c;你可以解决一系列相关的问题&#xff0c;比如能…

机器人自动驾驶时间同步进阶

0. 简介 之前时间同步也写过一篇文章介绍机器人&自动驾驶中的时间同步。在最近的学习中发现一些额外需要阐述学习的内容&#xff0c;这里就再次写一些之前没写到的内容。 1. NTP NTP 是网络时间协议&#xff0c;用来同步网络中各计算机时间的协议&#xff0c;把计算机的…

京东商品详情API接口:一键获取商品信息的智能助手

京东商品详情API接口&#xff1a;一键获取商品信息的智能助手 请求示例&#xff0c;API接口接入Anzexi58 在数字化浪潮席卷而来的今天&#xff0c;数据已经渗透到各行各业&#xff0c;成为驱动商业发展的重要引擎。对于电商行业而言&#xff0c;快速、准确地获取商品信息对于…

【Hadoop大数据技术】——Hadoop高可用集群(学习笔记)

&#x1f4d6; 前言&#xff1a;Hadoop设计之初&#xff0c;在架构设计和应用性能方面存在很多不如人意的地方&#xff0c;如HDFS和YARN集群的主节点只能有一个&#xff0c;如果主节点宕机无法使用&#xff0c;那么将导致HDFS或YARN集群无法使用&#xff0c;针对上述问题&#…

无人驾驶中的坐标转换

无人驾驶中的坐标转换 无人车上拥有各种各样的传感器&#xff0c;每个传感器的安装位置和角度又不尽相同。对于传感器的提供商&#xff0c;开始并不知道传感器会以什么角度&#xff0c;安装在什么位置&#xff0c;因此只能根据传感器自身建立坐标系。无人驾驶系统是一个多传感器…

知识图谱-图数据库-neo4j (1)踩坑记录

1、neo4j 安装 由于目前还是用的 jdk8;所以需要安装jdk8支持的neo4j 乌班图系统 # 安装指定社区版本 sudo apt-get install neo4j #不指定&#xff0c;安装最新版本 sudo apt-get install neo4j1:3.5.35 # 指定版本 jdk1.8的原因# 企业版本 sudo apt-get install neo4j-ent…

贝尔曼最优方程【BOE】

强化学习笔记 主要基于b站西湖大学赵世钰老师的【强化学习的数学原理】课程&#xff0c;个人觉得赵老师的课件深入浅出&#xff0c;很适合入门. 第一章 强化学习基本概念 第二章 贝尔曼方程 第三章 贝尔曼最优方程 文章目录 强化学习笔记一、最优策略二、贝尔曼最优方程(BOE)三…

【C++ 函数参数】指针类型和指针引用类型的区别

目录 0 引言1 参数是指针类型2 参数是指针的引用3 总结 &#x1f64b;‍♂️ 作者&#xff1a;海码007&#x1f4dc; 专栏&#xff1a;C专栏&#x1f4a5; 标题&#xff1a;【C 函数参数】指针类型和指针引用类型的区别❣️ 寄语&#xff1a;人生的意义或许可以发挥自己全部的潜…

对外开放接口的Appkey和Secret应该如何设置?

文章目录 appkey和Secret 分别是什么&#xff1f;App keyapp secret Appkey和Secret 因遵循什么原则&#xff1f;代码示例随机生成有效的appkey校验Appkey调用效果 小结 appkey和Secret 分别是什么&#xff1f; App key App key简称API接口验证序号&#xff0c;是用于验证API…

C++ - 类和对象(上)

目录 一、类的定义 二、访问限定符 public&#xff08;公有&#xff09; protected&#xff08;保护&#xff09; private&#xff08;私有&#xff09; 三、类声明和定义分离 四、外部变量和成员变量的区别与注意 五、类的实例化 六、类对象的模型 七、类的this指针…

linux系统编程 socket part2

报式套接字 1.动态报式套接字2.报式套接字的广播3.报式套接字的多播4.UDP协议分析4.1.丢包原因4.2.停等式流量控制 接linux系统编程 socket part1 1.动态报式套接字 在之前的例子上&#xff0c;发送的结构体中的名字由定长改变长。可以用变长结构体。 变长结构体是由gcc扩展的…