Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 30 Jul 2005 20:37:17 +0200
From:      "Poul-Henning Kamp" <phk@phk.freebsd.dk>
To:        Brian Candler <B.Candler@pobox.com>
Cc:        FreeBSD Current <freebsd-current@freebsd.org>, Julian Elischer <julian@elischer.org>
Subject:   Re: Apparent strange disk behaviour in 6.0 
Message-ID:  <4559.1122748637@phk.freebsd.dk>
In-Reply-To: Your message of "Sat, 30 Jul 2005 18:15:36 BST." <20050730171536.GA740@uk.tiscali.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
In message <20050730171536.GA740@uk.tiscali.com>, Brian Candler writes:
>On Sat, Jul 30, 2005 at 03:29:27AM -0700, Julian Elischer wrote:
>> 
>> The snapshot below is typical when doing tar from one drive to another..
>> (tar c -C /disk1 f- .|tar x -C /disk2 -f - )
>> 
>> dT: 1.052  flag_I 1000000us  sizeof 240  i -1
>>  L(q)  ops/s    r/s   kBps   ms/r    w/s   kBps   ms/w    d/s   kBps   ms/d  %busy Name
>>     0    405    405   1057    0.2      0      0    0.0      0      0    0.0  9.8| ad0
>>     0    405    405   1057    0.3      0      0    0.0      0      0    0.0 11.0| ad0s2
>>     0    866      3     46    0.4    863   8459    0.7      0      0    0.0 63.8| da0
>>    25    866      3     46    0.5    863   8459    0.8      0      0    0.0 66.1| da0s1
>>     0    405    405   1057    0.3      0      0    0.0      0      0    0.0 12.1| ad0s2f
>>   195    866      3     46    0.5    863   8459    0.8      0      0    0.0 68.1| da0s1d
>> 
>> even though the process should be disk limitted neither of the disks is 
>> anywhere
>> near 100%.
>
>One IDE disk doing 405 reads per second (2.5ms per seek) is pretty good.

Sorry, but your reasoning is terminally wrong.

The 405 reads/sec takes only 0.2 msec per read, including transfer,
seek and other overhead.

You can read this number directly in the "ms/r" column.

It follows effortlessly that the reads do not result in random seeks.

>But if really is only 12.1% busy (which the 0.3 ms/r implies),

"busy %" numbers is *NOT* a valid measure of disk throughput, please do
not pay attention to such numbers!

A disk can be 100% busy and still be able to accept 128 times more
traffic:

	read sector 0
	read sector N
	read sector 1
	read sector N-1
	...

will keep the disk 100% busy without getting much done.

	read sector 0
	read sector 1
	read sector N-1
	read sector N
	read sector 2
	read sector 3
	read sector N-3
	read sector N-2
	...

Will get twice as much done and still keep the disk 100% busy.


If you want to know how busy your disk is, simply look in the ms/r
and ms/r columns and decide if you can live with that average
transaction time.  If it is too high for your liking, then your
disk is too busy.

If you want to do quantitive predictions, you need to do the
queue-theory thing on those numbers.

If you know your queue-theory, you also know why busy% is
a pointless measurement:  It represents the amount of time
where the queue is non-empty.  It doesn't say anything about
how quickly the queue drains or fills.

-- 
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk@FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4559.1122748637>