Subject: nore on disk stats
To: None <tech-kern@NetBSD.ORG>
From: Jason Thorpe <thorpej@nas.nasa.gov>
List: tech-kern
Date: 11/09/1995 16:56:30
Ok, so I have the kernel portions about 80% done. It all compiles,
and seems to run fine. So far, about 50 files have changed.
With a suggestion from cgd, I have a mechanism that should pretty
accurately calculate the amount of time a disk is busy, using
timestamps. My design has changed a little to adapt to implementation
details, but is more-or-less the same. In particular, functions were added:
struct disk *disk_getfirst __P((void));
Returns first disk in disklist.
struct disk *disk_getnext __P((struct disk *));
Returns next disk in disklist.
struct disk *disk_find __P((char *));
Returns the disk strucure corresponding to the
provided name (e.g. "sd0" or "ccd3"), or NULL if no
match is found.
void disk_busy __P((struct disk *));
Increments the busy count, sets starting timestamp if
count moves from 0 to 1.
void disk_unbusy __P((struct disk *));
Decrements busy count, and sets ending timestamp and
increments total busy time if count drops to 0.
Now, the question I have is, what units should data transfer rates be
in? As Mike Hibler pointed out to me, counting bytes/words/longs or even
blocks could potentially wrap the counter very quickly on a busy
fileserver, so it seems as if attempting to do so over the long-haul is
dubious. However, having information on the amount of data that's
traveled in/out of a particular disk might be quite useful.
My idea is to add another argument to disk_unbusy(), that being the
number of bytes that was use transfered. When the busy count drops to
zero, the average transfer rate can be calculated and merged with the
running-average.
Anyhow, I'd like to hear any comments or suggestions, particularly, what
the most useful "size unit per time unit" combination would be. Bytes
per second pops into my head immediately, but seconds might be to grainy.
Ciao.
--------------------------------------------------------------------------
Jason R. Thorpe thorpej@nas.nasa.gov
NASA Ames Research Center Home: 408.866.1912
NAS: M/S 258-6 Work: 415.604.0935
Moffett Field, CA 94035 Pager: 415.428.6939