By eschrock on Jan 06, 2005
I've been on a vacation for a while, but last time I mentioned that Dan and myself had been working on a Solaris port of the open source bootchart program. After about a week of late night hacking, we had a new version (we kept only the image renderer). You can see the results (running on my 2x2 GHz opteron desktop) by clicking on the thumbnail below:
In the next few posts, I'll go over some of the implementation details. We are working on open sourcing the code, but in the meantime I can talk about the instrumentation methodology and some of the hurdles that had to be overcome. A few comparisons with the existing open source implementation:
Our graphs show every process used during boot. Unlike the open implementation, which relies on top, we can leverage DTrace to catch every process.
We don't have any I/O statistics. Part of this is due to our instrumentation methodology, and part of it is because the system-wide I/O wait statistic has been eliminated from S10 (it was never very useful or accurate). Since we can do basically anything with DTrace, we hope to include per-process I/O statistics at a future date, as well as duplicating the iostat graph with a DTrace equivalent.
We include absolute boot time, and show the beginning of init(1M) and those processes that run before our instrumentation can start. So if you wish to compare the above chart with the open implementation, you will have to subtract approximately 9 seconds to get a comparable time.
We chose an "up" system as being one where all SMF services were running. It's quite possible to log into a system well before this point, however. In the above graph, for example, one could log in locally on the console after about 20 seconds, and log in graphically after about 30 seconds.
We cleaned up the graph a little, altering colors and removing horizontal guidelines. We think it's more readable (given the large number of processes), but your opinion may differ.
Stay tuned for more details.