I had a look at my bootcharts and something seems to be wrong with them. The ureadahead process does what it's supposed to do (disk utilisation is 100% most of the time), but it also blocks any other action.

Since I've got a slow, laptop harddrive, ureadahead itself takes ~50s of the boot time. Then, the rest of the visible boot sequence takes another 100s to complete, using a lot of CPU, but not maxing it out and lots of IO (again, 100% almost all the time).

This seems just strange to me. Is my ureadahead misconfigured? Why does it block tasks like bringing up the network which seems to be taking lots of cpu? Should it take ~50% of the bootchart time in general?

Edit: here is the example bootchart: http://img191.imageshack.us/img191/1049/localhostkarmic20100815.png (or this if the direct one didn't work: http://yfrog.com/f/5blocalhostkarmic20100815p/ )

  • Would you be able to upload your bootchart here?
    – 8128
    Aug 15, 2010 at 18:23
  • @fluteflute: I added the link to my current bootchart.
    – viraptor
    Aug 15, 2010 at 21:31

2 Answers 2


Blocking the boot is by design. The point of ureadahead is to preload all the data your boot will require ahead of time. The reason to do this is that the primary reason for disc slowness is seek times - even slow hard drives should be able to push out >50 MB/sec reads, but if you need to seek around - at tens of milliseconds per seek - that decreases dramatically. By running ahead of time, ureadahead should be able to minimise the seeks and hence minimise the time needed to read all the data your boot will need.

So, the ideal bootchart looks like ureadahead at 100% I/O utilisation, followed by everything else starting up and using no (disc) I/O. This boot isn't practically achievable, not least because many of the services we're starting up write to the disc, but that's the idea.

Looking at your bootchart it seems that ureadahead is having a hard time actually pulling data off your disc - there's lots of time where it's at a very low throughput. Even so, it looks like it's doing some of its job - after ureadahead starts your boot is mostly CPU bound, rather than I/O bound, and it looks like the large patches of I/O-bound boot are associated with preload firing up.

You might want to try removing preload, or to reprofile your boot¹, or it might be that some of your files are very fragmented, or it might be a bug in ureadahead.

1: Removing the pack files from /var/lib/ureadahead will cause ureadahead to reprofile on your next boot.


Everything looks okay with the bootchart, it does show that the cpu is waiting on input/output and the hard drive is almost always 100% so if you wanted a faster boot you should try installing boot up manager (bum) and disable unnecessary services, also remove preload as RAOF said because it slows down boot and only really works with things like open office which take forever to load. If you still wish to have a faster boot then do a fresh install of Ubuntu 10.04, maybe even on a separate partition incase your not sure of how it would work out. Good luck

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .