Boot charting

Phillip Susi psusi at cfl.rr.com
Sat Dec 10 20:58:07 GMT 2005


I have been studying my boot charts and it looks like readahead-list
needs improved.  One problem I notice is that after readahead-list
completes, there is still a fair amount of IO done.  It looks like it is
being done mostly by Xorg and nmbd.  Whatever files these are accessing
should be added to the readahead-list.  Is there a way to have bootchart 
log which files are being read?

The other problem seems to be that readahead-list is only managing to
pull 25% of my disk's maximum sustained throughput.  According to the
image it peaks at 25 MB/s, but my raid array is capable of sustaining
nearly 100 MB/s.  I believe this is because the files that are being
read are scattered all around the disk, so there are a lot of seeks
involved which slow down the throughput.  This problem is probably even 
worse on lower rpm drives ( than 10,000 ) where the ratio of throughput 
to seek time is higher.

I searched and searched and it seems that the Linux community still 
feels ( wrongly imho ) that there is no need to defragment hard disks. 
Because of this, it seems there is no way to defragment the disk in such 
a way that the files that readahead-list precaches are all packed in 
order at the start of the disk, which would greatly speed up the boot 
process.

As an alternative, I thought that maybe these files could be packed into
a cramfs image that is mounted from the initramfs and overlaid on top of
the original filesystem with unionfs.  I tried messing around with this
a bit but for some reason after the run-init switches to the root
filesystem, the cramfs is no longer accssible so the kernel panics.

Maybe someone with more experience with unionfs could take a crack?

It looks like if readahead-list were improved and got rid of the iowait 
time during my boot sequence, it would shave 3-4 seconds off my boot 
time.  Backgrounding the ntp clock update could take off another 3 
seconds, which could take my boot time from 24 seconds down to 17 or 18 
seconds.  Another odd thing I notice is that hwclock is run twice during 
boot up, and the first time it seems to sit there for 3 seconds chewing 
up a lot of cpu time while the system is otherwise idle.  I wonder why 
that is.  If that were fixed as well, it could take boot time down to 14 
seconds, an improvement of over 40%!

Scott James Remnant wrote:
> One thing I'd like everyone running dapper to keep an eye on is how long
> it takes to boot, so I've put together a package you can all install to
> help.
> 
> Grab and install:
> 
> http://people.ubuntu.com/~scott/packages/bootchart_0.8-0ubuntu1_all.deb
> 
> 
> It starts in the initramfs, ie. as early as possible, and will run
> throughout the boot process and audit everything that happens.  Once
> logged in, you'll find png files in /var/log/bootchart -- feel free to
> share these with people and discuss them.
> 
> Scott
> 





More information about the ubuntu-devel mailing list