我知道时间dmesg
是自启动以来的时间。但我的具体问题是这个时间是在该行提到的过程的开始或结束时计算的?
为什么这很重要?
举个例子:
[ 4.352025] floppy0: no floppy controllers found
[ 5.718270] random: nonblocking pool is initialized
[ 94.134265] Adding 2094076k swap on /dev/sda5. Priority:-1 extents:1 across:2094076k FS**
[ 96.988453] init: bootchart main process (274) terminated with status 127
如果时间是在完成该过程后计算的,则应由第3行中的过程负责启动缓慢。
但如果时间是从进程开始计算的,则应由第二行负责。
dmesg
但当我们在启动后很长时间进行检查时,情况会变得更加复杂。
以此为例:
[28047.749604] wlp3s0: associated
[28941.112855] [drm:intel_pipe_update_end [i915]] *ERROR* Atomic update failure on pipe A (start=757985 end=757986)
[31407.938694] cfg80211: World regulatory domain updated:
[31407.938699] cfg80211: DFS Master region: unset
这个2466的差距应该没有什么用处。
我多次看到人们对哪一行dmesg
应该负责导致缓慢的启动感到困惑。
我们如何理解 dmesg 中的时间?
答案1
dmesg 不是分析或调查引导过程性能的合适方法。您应该使用bootchart
或在较新的发行版中使用 systemd 集成版本的 bootchart systemd-analyse
。
因为这些都是复杂的过程,我不会将教程复制到这个答案。
答案2
每个日志条目显示打印该日志条目的时间。不多也不少。如果日志条目描述的过程不是瞬时的,则没有规则规定日志条目必须在该过程执行之前或之后出现,这取决于开发人员选择做什么。语法是一条线索:“did this”表示动作已完成,“will do this”表示尚未完成;但“这样做”是模棱两可的。
作为cmks 解释,dmesg
仅显示内核日志,它不会描绘 initramfs 或 init 程序启动后系统上发生的情况的有用图片。您显示的所有行都没有描述花费超过一秒的事件,因此它们都不会导致较长的启动时间。这是内核中没有发生的其他事情。