Apparent strange disk behaviour in 6.0
Poul-Henning Kamp
phk at phk.freebsd.dk
Sat Jul 30 18:37:24 GMT 2005
In message <20050730171536.GA740 at 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 at 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.
More information about the freebsd-current
mailing list