Vitavonni

Sat, 11 Dec 2004

Readahead, again.

I played around some more. Now I'm back down to 45 seconds by reducing the amount of files I try to read. The libraries needed by mysql, postfix, apache are no longer included, I only try to read ahead the files for gdm. Not for X though - stracing X with the radeon driver made me stare at a black screen...

New Chart.

Generating proper readahead list files is apparently a difficult job. You need to optimize this for the critical path. I believe that manual optimization is the best here, unless you have a cheap way of logging such things.

[category: /en/linux | Permalink]

Readahead - first results

Here is a Chart with the results of using readahead on my system (47k image)

I also increased the detail level of the chart.

The bad news: Using readahead actually made my bootup slower.

And not just a little bit slower, but a lot. gdm login used to be started after around 30 seconds before, now it is at 57 seconds. That is factor 2!

I'm not sure why, I need to investigate what actually got into my readahead file lists... My whole MySQL databases? All my fonts? ;-)

[category: /en/linux | Permalink]

Readahead improved

I tried for a while to find "readahead" listings for Debian or Ubuntu. If you have some, please send me an email where to get them.

I've also written a small app to do better readahead. Current readahead scripts I've seen (from gentoo) use cat to read a file and feed the information into readahead via command line.

I have modified the original "readahead" (apparently from kernel sources) to be able of reading file listings: readahead-list.c.

The file is mmapped, then scanned for newlines. Lines with more than 1024 chars are ignored, but I don't need an alloc this way, which I like.

I'd like to build this with diet libc, but it's lacking the "readahead" function. Maybe the next version will use ioctl or whatever to do this...

Oh, and I have not yet tested it... ;-)

[category: /en/linux | Permalink]

Bootchart madness

The boot-chart madess is going around. Be warned, this is almost as bad as the "somethingfunny test" madnesses reaching blogs from time to time.

Well, I was infected, too. I ran boot-chart to see how well my hacked together "minit"-based system does.

Be warned, boot-chart is an ugly hack. Don't look to closely at what its boot script does. It basically runs "top -b > logfile". This sucks. Because top is quite different from distribution to distribution. On my system, it doesn't include the PPID information that bootchart uses. Why didn't they do things just right and get exactly the information they want from /proc themselves? Parsing top output is not that much easier (especially since it varies...)

That is the reason why processes, for example the apache stuff, are not grouped in this chart - my top output doesn't include the needed info.

Here are my resuls. Full chart also available. This is a Thinkpad A31p with a P4M 1.8 GHz (no Centrino).

30 seconds till gdm is ready, that is okay. Sure, things could be faster.

Note that my system is not tuned at all. In fact I'm even running hotplug twice: once it is run by rcS (where I use the unmodified Debian rcS) and once by my init system (because I want it included in my normal process so it's run without special handling on hibernate resume)

Using a preloader would probably help a lot, but I'm really eager to get the xserver, cupsd and gdm tuning results from Ubuntu... ;-)

Please don't flood me with questions about "enit" and "enitdir". The first is just a slight - experimental - modification of "minit", and "enitdir" is a tool I once posted to the minit list. It basically monitors a directory and starts all services there with minit. When a service disappears it is stopped again. I use this to switch to a "suspend" runlevel: I shut down mysql, apache etc. before going into hibernate to conserve memory (and thus my suspend is faster) "enitdir" doesn't appear in the primary chart - it is considered idle, since it uses almost no CPU (only writing a couple of chars to a socket and scanning one dir, then using the kernel dnotify interface and going to sleep) A tiny app - less than 6k, statically linked, 28k resident size in memory 0:00.00 CPU time according to top. ;-)

[category: /en/linux | Permalink]
Menu
[planet.debian]
[planet.xmlhack]
[planet SELinux]
[munichblogs]
[email]
[RSS 2 feed]
[English RSS 2]
Categories
< December 2004 >
SuMoTuWeThFrSa
    1 2 3 4
5 6 7 8 91011
12131415161718
19202122232425
262728293031 
Archives
2010-Mar
2010-Feb
2010-Jan
2009-Dec
2009-Nov
2009-Oct
2009-Sep
2009-Aug
2009-Jul
2009-Jun
2009-May
2009-Apr
2009-Mar
2009-Feb
2009-Jan
2008-Dec
2008-Nov
2008-Oct
2008-Sep
2008-Aug
2008-Jul
2008-May
2008-Apr
2008-Mar
2008-Feb
2008-Jan
2007-Dec
2007-Nov
2007-Oct
2007-Sep
2007-Aug
2007-Jul
2007-Jun
2007-May
2007-Apr
2007-Mar
2007-Feb
2007-Jan
2006-Dec
2006-Nov
2006-Oct
2006-Sep
2006-Aug
2006-Jul
2006-Jun
2006-May
2006-Apr
2006-Mar
2006-Feb
2006-Jan
2005-Dec
2005-Nov
2005-Oct
2005-Sep
2005-Aug
2005-Jul
2005-Jun
2005-May
2005-Apr
2005-Mar
2005-Feb
2005-Jan
2004-Dec
2004-Nov
2004-Oct
2004-Sep
2004-Aug
2004-Jul
Other links:
Swing and the City - Lindy Hop in Munich