我知道时间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
如果时间是在完成该过程后计算的,则应该以第三行中的过程负责缓慢启动。
但是,如果从流程开始就计算了时间,则应由第二行负责。
但是当我们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
这个2466s的间隙应该没有任何有用的意义。
我看到很多时候对于哪条线dmesg
应该引导缓慢启动感到困惑。
我们如何在dmesg中理解时间?
dmesg
这不是启动过程需要花费多长时间或瓶颈所在的可靠测试。根据Wikipedia page
:
最初启动时,计算机系统将其内核加载到内存中。在这一阶段,设置内核中存在的设备驱动程序以驱动相关的硬件。这样的驱动程序以及内核中的其他元素可能会产生输出(“消息”),报告模块的存在以及所采用的任何参数的值
换句话说,dmesg
它本身仅收集信息,是驱动程序和其他系统进程输出这些消息,并且它们可以在任何时间点输出它们。在这些消息之间,可能有也可能没有其他进程产生,因此它不能指示系统启动的时间。
dmesg
它还会从环形缓冲区连续收集消息,因此您2466s的延迟并不表示某个挂起的进程,只是2466s之后发生了一个事件,并且当时处于活动状态的任何进程仅输出内核消息。
但是,您想要的是bootchart,它专门用于在引导过程中查找瓶颈。我只看到它被多个论坛和本网站引用,但从未使用过,因此无法提供更多信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句