Ubuntu 16.04 启动非常慢(带有一些“systemd-analyze”输出附件)

Ubuntu 16.04 启动非常慢(带有一些“systemd-analyze”输出附件)

我是如何陷入这个麻烦的

今天,我在 GNOME Boxes 中运行了一个 Arch Linux 32 位虚拟机在 Ubuntu 16.04 LTS 中,我的电脑突然死机了,所以我按住电源按钮强制关机。之后,每次我启动电脑(Ubuntu 16.04 LTS)时,我都要花 3 分钟才能进入登录屏幕,这是无法接受的。

我也读过这个问题并没有找到任何解决方案,但我运行了几个systemd-analyze命令并保存了输出

systemd-analyze

我执行了 3 条systemd-analyze命令,将其输出保存到 3 个文件中,然后上传这里

systemd-analyze --system blame > blame
systemd-analyze --system critical-chain > critical-chain
systemd-analyze --system plot > systemd-analyze.svg

对于blame文件,在终端中使用lesscat以颜色查看其内容

我不知道 systemd 是如何工作的,对这些输出也了解systemd-analyze甚少。我可以删除一些运行时间过长的服务,但我不知道这些服务有多重要,它们的作用是什么,而且我不想搞砸我的电脑

更新:更多信息

我安装了 2 个操作系统:Windows 10/dev/sda1和 Ubuntu 16.04 /dev/sda5,我还制作了一个 NTSF 驱动器(名为 STORAGE4,不是 Windows 10 分区,仅用于保存数据)在启动时自动挂载(使用 gnome-disks)

我的根分区(/dev/sda5):

  • 文件系统类型:ext4

  • 大小:总共 133.9 GB,已用 71.2 GB,可用 55.9 GB

我的存储4 ( /dev/sda2):

  • 文件系统类型:NTFS

  • 大小:134.2 GB,已用 123.2 GB,可用 11.0 GB

根

存储4

来自@MarkStosberg:

您还没有提到虚拟机是否设置为在启动时启动

我有 4 个虚拟机,它们都已关闭。我怎么才能将这些虚拟机设置为在启动时启动?(我的意思是,在我看到 lightdm 登录屏幕之前)

GNOME 盒子

跑步hdparm

$ sudo hdparm -Tt /dev/sda

/dev/sda:
 Timing cached reads:   9350 MB in  2.00 seconds = 4677.33 MB/sec
 Timing buffered disk reads:  20 MB in  3.58 seconds =   5.59 MB/sec

答案1

您发布的一个文档指出您的系统可能是一个华硕 X550LD笔记本电脑。所有这些都配有旋转磁盘驱动器,因此它们的速度会比 SSD 慢。

为了将您的结果与另一个系统进行比较,我为自己的系统生成了 SVG,这表明我的 SSD 上的启动时间约为 10 秒。

您提到在发生这种情况之前您正在使用 Boxes。因此尝试“撤消”您在 Boxes 中执行的任何操作可能会有所帮助。

磁盘快要满了时,速度也会变慢。如果您的硬盘快要满了,这可能是问题的一部分。

您也没有提到您使用的是哪种文件系统。文件系统的选择也可能是一个因素。

您还没有提到虚拟机是否设置为在启动时启动,这可能会有所帮助。

我查看了您发布的文件,没有发现导致速度变慢的明显原因,因此我怀疑这可能与硬件有关。

您还可以尝试使用硬盘基准测试来确认能够达到的吞吐量。为了进行比较,以下是我在笔记本电脑中测试 SSD 的结果:

$ sudo hdparm -Tt /dev/sda

/dev/sda:
 Timing cached reads:   11776 MB in  2.00 seconds = 5892.27 MB/sec
 Timing buffered disk reads: 216 MB in  3.01 seconds =  71.77 MB/sec

查看您的后续hdparm输出,您的缓冲磁盘读取的基本磁盘性能很差 - 仅为约 5 MB/秒。

这个帖子说“现代 2.5 英寸 5400 RPM 驱动器应该能够达到 100 MB/s。”

可能有多个因素在起作用,但相对较慢的 5,400 RPM HDD 肯定是造成性能缓慢问题的部分原因。

答案2

我想到了:

原因:当我强制关机时,由于某些原因,我的 MBR 表损坏,导致交换分区丢失。因此,每次我启动机器时,操作系统都会尝试找到该分区作为交换空间,从而增加启动时间。

解决方案:打开/etc/fstab(以超级用户身份),删除(或注释掉)包含旧交换分区的行,设置新的交换。

相关内容