在问题分析或者日常操作期间,有时很难确定究竟是什么导致系统变慢,尤其是在启动过程中。
造成这种困难的一个原因是以下命令的输出:
# dmesg NET: Registered protocol family 10 ip6_tables: (C) 2000-2006 Netfilter Core Team nf_conntrack version 0.5.0 (16384 buckets, 65536 max) ip_tables: (C) 2000-2006 Netfilter Core Team type=1305 audit(1445931490.439:4): audit_pid=1333 old=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:auditd_t:s0 res=1 SELinux: initialized (dev autofs, type autofs), uses genfs_contexts SELinux: initialized (dev autofs, type autofs), uses genfs_contexts
显示内核环形缓冲区,但没有时间戳。
不输出关于每个条目的相对时间的信息。
每个条目的相对时间实际上是可用的,但默认情况下不显示。
编辑 /boot/grub/grub.conf 并将子句 printk.time 添加到内核命令行:
[...] root (hd0,0) kernel /vmlinuz-3.8.13-68.3.4.el6uek.x86_64 ro root=/dev/mapper/vg_ol67-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_ol67/lv_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg_ol67/lv_root KEYBOARDTYPE=pc KEYTABLE=be-latin1 rd_NO_DM rhgb quiet printk.time [...]
此内核选项将启用内核 printk 模块的时间功能,然后提取消息环形缓冲区条目以及该消息的时间戳。
重复我们之前的启动示例,显示了以相对时间戳开头的日志条目。
[...] [ 12.376443] NET: Registered protocol family 10 [ 12.381220] ip6_tables: (C) 2000-2006 Netfilter Core Team [ 12.476857] nf_conntrack version 0.5.0 (16384 buckets, 65536 max) [ 12.574589] ip_tables: (C) 2000-2006 Netfilter Core Team [ 16.414883] type=1305 audit(1445931490.439:4): audit_pid=1333 old=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:auditd_t:s0 res=1 [ 20.797095] SELinux: initialized (dev autofs, type autofs), uses genfs_contexts [ 20.950517] SELinux: initialized (dev autofs, type autofs), uses genfs_contexts [...]
时间戳表示为自系统启动以来的秒数。
两个计算日志条目之间经过的时间,只需从较小的时间戳中减去较大的时间戳即可。
其他时间戳形式(例如一天中的时间)不可用,因为复杂的日期操作(例如 NTP)尚未在启动序列的早期初始化。
日期:2020-09-17 00:12:25 来源:oir作者:oir