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