ureadahead 似乎在启动时阻止了系统

ureadahead 似乎在启动时阻止了系统

我查看了我的bootcharts,发现它们似乎出了问题。该ureadahead进程执行了它应该执行的操作(磁盘利用率大部分时间都是 100%),但它也阻止了任何其他操作。

由于我的笔记本电脑硬盘速度很慢,ureadahead它本身需要大约 50 秒的启动时间。然后,其余可见的启动序列又需要 100 秒才能完成,占用大量 CPU,但不会达到最大值,并且需要大量 IO(同样,几乎一直处于 100% 的状态)。

我觉得这很奇怪。我的配置是否ureadahead错误?为什么它会阻止启动网络等似乎占用大量 CPU 的任务?它通常应该占用 bootchart 时间的约 50% 吗?

编辑:这是示例启动图:http://img191.imageshack.us/img191/1049/localhostkarmic20100815.png(如果直接方法不起作用,则使用以下方法:http://yfrog.com/f/5blocalhostkarmic20100815p/

答案1

阻止启动是设计使然。ureadahead 的目的是提前预加载启动所需的所有数据。这样做的原因是磁盘速度慢的主要原因是寻道时间 - 即使是慢速硬盘也应该能够提供 >50 MB/秒的读取速度,但如果您需要四处寻道 - 数十毫秒每次寻道 - 大幅减少。通过提前运行,ureadahead 应该能够最大限度地减少寻道,从而最大限度地减少读取启动所需的所有数据所需的时间。

所以理想的bootchart 看起来像是 ureadahead,I/O 利用率为 100%,然后其他所有程序都启动,不使用 (磁盘) I/O。这种启动实际上无法实现,尤其是因为我们启动的许多服务都会写入磁盘,但这就是我们的想法。

查看您的启动图,似乎 ureadahead 很难从磁盘中提取数据 - 很多时候它的吞吐量非常低。即便如此,它似乎还是在做一些工作 - ureadahead 启动后,您的启动主要受 CPU 限制,而不是 I/O 限制,并且看起来 I/O 限制启动的大量补丁与preload启动有关。

您可能需要尝试删除preload,或者重新配置您的启动¹,或者可能是您的某些文件非常零散,或者可能是 ureadahead 中存在错误。

1:pack从 /var/lib/ureadahead 中删除文件将导致 ureadahead 在下次启动时重新配置。

答案2

启动图看起来一切正常,它确实显示 CPU 正在等待输入/输出,硬盘几乎总是 100%,所以如果你想要更快的启动,你应该尝试安装启动管理器 (bum) 并禁用不必要的服务,还要删除预加载,正如 RAOF 所说,因为它会减慢启动速度,并且只适用于像 Open Office 这样需要很长时间才能加载的东西。如果你仍然希望有更快的启动速度,那么请全新安装 Ubuntu 10.04,甚至可以在单独的分区上安装,以防你不确定它会如何工作。祝你好运

相关内容