更新到 Ubuntu 16.04 后。启动时间有点长(超过 10-15 秒)。我查看了“dmesg”输出,发现了这个:
[ 23.882674] audit: type=1400 audit(1461650474.108:10): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/bin/evince" pid=644 comm="apparmor_parser"
**[ 23.882682]** audit: type=1400 audit(1461650474.108:11): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/bin/evince//sanitized_helper" pid=644 comm="apparmor_parser"
**[ 32.162714]** cgroup: new mount options do not match the existing superblock, will be ignored
[ 32.777477] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 32.777480] Bluetooth: BNEP filters: protocol multicast
Run Code Online (Sandbox Code Playgroud)
我假设“dmesg”输出左侧的数字是时间。如果我在这一步失去了 9 秒,我可以做些什么来改善启动时间?
Edi*_*diD 28
Systemd负责启动过程。您可以通过禁用某些服务或尝试修复您的配置来改进它。要检查服务在启动过程中花费的时间,您可以运行:
systemd-analyze blame
Run Code Online (Sandbox Code Playgroud)
对于引导程序的图形详细视图,您可以生成绘图图像:
systemd-analyze plot > bootimage
Run Code Online (Sandbox Code Playgroud)
现在您可以使用例如打开bootimage。eog或不同的图像查看器并检查服务花费了多少时间(例如系统在启动时停止的位置)。它看起来像这样:
正如我们所看到的,例如virtualbox.service需要62 毫秒,这非常好,但安装我的 F3 磁盘并没有那么快。我可以考虑禁用自动挂载(这是一个不好的例子,因为 systemd 以并行模式启动服务并且该服务不会减慢启动时间,没有任何依赖,但这就是它的工作原理)。(在您的dmesg输出中,挂载选项有问题。您可以签入/etc/fstab)
如果您想禁用任何服务,最好知道是否有其他服务未将此服务用作依赖项。您可以在例如 virtualbox.service 示例上检查它:
systemctl list-dependencies virtualbox.service --reverse
Run Code Online (Sandbox Code Playgroud)
输出显示没有任何相关的服务文件。因此,如果我不需要它,我可以停止并禁用它而不会出现任何并发症:
sudo systemctl disable virtualbox.service --now
Run Code Online (Sandbox Code Playgroud)
如果您发现系统中的某些服务需要很长时间才能加载,请首先阅读它到底在做什么,然后尝试修复相关的配置文件,或者如果您不需要它,请将其禁用。
| 归档时间: |
|
| 查看次数: |
30628 次 |
| 最近记录: |