我看了看我bootchart
的 s,他们似乎有问题。该ureadahead
进程完成了它应该做的事情(磁盘利用率大部分时间是 100%),但它也会阻止任何其他操作。
由于我有一个缓慢的笔记本电脑硬盘驱动器,ureadahead
它本身需要大约 50 秒的启动时间。然后,其余的可见引导序列需要另外 100 秒才能完成,使用大量 CPU,但没有将其最大化和大量 IO(同样,几乎一直是 100%)。
这对我来说似乎很奇怪。我的ureadahead
配置错误吗?为什么它会阻止诸如启动似乎占用大量 CPU 的网络之类的任务?一般来说,它应该花费大约 50% 的引导图时间吗?
编辑:这里是示例引导图:http://img191.imageshack.us/img191/1049/localhostkarmic20100815.png (或者如果直接没有工作的话:http: //yfrog.com/f/5blocalhostkarmic20100815p/)
阻止引导是设计使然。ureadahead 的重点是提前预加载启动所需的所有数据。这样做的原因是磁盘速度慢的主要原因是寻道时间——即使是慢速硬盘驱动器也应该能够推出 >50 MB/秒的读取,但如果你需要四处寻道——每次寻道数十毫秒——那急剧下降。通过提前运行,ureadahead 应该能够最大限度地减少寻道,从而最大限度地减少读取启动所需的所有数据所需的时间。
因此,理想的引导图看起来像 ureadahead 在 100% 的 I/O 利用率下,然后是其他一切都在启动并且不使用(磁盘)I/O。这种引导实际上是无法实现的,尤其是因为我们启动的许多服务都会写入磁盘,但这就是我们的想法。
查看您的引导图,似乎 ureadahead 实际上很难从您的磁盘中提取数据 - 有很多时间它的吞吐量非常低。即便如此,它看起来还是在做它的一些工作——在 ureadahead 启动后,您的引导主要是 CPU 绑定,而不是 I/O 绑定,并且看起来 I/O 绑定引导的大补丁与启动相关联
preload
。您可能想尝试删除
preload
,或重新配置您的引导¹,或者可能是您的某些文件非常分散,或者可能是 ureadahead 中的错误。1:
pack
从 /var/lib/ureadahead 中删除文件将导致 ureadahead 在您下次启动时重新配置文件。启动图看起来一切正常,它确实表明 cpu 正在等待输入/输出,而硬盘几乎总是 100%,所以如果你想要更快的启动,你应该尝试安装启动管理器 (bum) 并禁用不必要的服务,正如RAOF所说,还删除了预加载,因为它会减慢启动速度,并且仅适用于需要永远加载的开放式办公室之类的东西。如果您仍然希望更快地启动,那么重新安装 Ubuntu 10.04,甚至可以在单独的分区上安装,以防您不确定它会如何工作。祝你好运