Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 6 Sep 1997 21:09:41 +0200
From:      Mats Lofkvist <mal@algonet.se>
To:        current@FreeBSD.ORG
Subject:   lousy disk perf. under cpu load (was IDE vs SCSI)
Message-ID:  <199709061909.VAA25891@kairos>

next in thread | raw e-mail | index | archive | help
For fun I tested the dd benchmark on my new machine (intel providence
board with pp200, 64M, quantum viking 4.5G uw connected to the aic7880).

As long as I run the dd with the machine idle, I get over 10MB/s.
But with a single cpu-bound process running, the throughput drops
to less than 1.5MB/s with 64k blocks (and it gets even worse with 
smaller blocks).

I tested with a few different block sizes, and it seems like dd
never reads more than 20 records per second. Isn't the scheduler
run when an io request returns? If not, shouldn't it ?-)

This behaviour kills any advantage with scsi over eide since as
soon as you start using all the cpu cycles not needed to talk to
the disk, disk performance goes down the drain :-(

I'm running 2.2.2 so I know this is the wrong list, but is current
any different?

      _
Mats Lofkvist
mal@algonet.se


Details
-------

  Idle machine:

bash# dd if=/dev/rsd0 of=/dev/null count=800 bs=128k
800+0 records in
800+0 records out
104857600 bytes transferred in 9.752697 secs (10751652 bytes/sec)

bash# dd if=/dev/rsd0 of=/dev/null count=800 bs=64k
800+0 records in
800+0 records out
52428800 bytes transferred in 4.878517 secs (10746873 bytes/sec)

bash# dd if=/dev/rsd0 of=/dev/null count=800 bs=32k
800+0 records in
800+0 records out
26214400 bytes transferred in 2.442630 secs (10732039 bytes/sec)

bash# dd if=/dev/rsd0 of=/dev/null count=800 bs=16k
800+0 records in
800+0 records out
13107200 bytes transferred in 1.223625 secs (10711778 bytes/sec)

bash# dd if=/dev/rsd0 of=/dev/null count=1600 bs=8k
1600+0 records in
1600+0 records out
13107200 bytes transferred in 1.414880 secs (9263824 bytes/sec)

bash# dd if=/dev/rsd0 of=/dev/null count=1600 bs=4k
1600+0 records in
1600+0 records out
6553600 bytes transferred in 0.617373 secs (10615301 bytes/sec)


  With a single "nice -19 loop" running in the background:

bash# dd if=/dev/rsd0 of=/dev/null count=200 bs=128k
200+0 records in
200+0 records out
26214400 bytes transferred in 19.079705 secs (1373942 bytes/sec)

bash# dd if=/dev/rsd0 of=/dev/null count=200 bs=64k
200+0 records in
200+0 records out
13107200 bytes transferred in 9.549171 secs (1372601 bytes/sec)

bash# dd if=/dev/rsd0 of=/dev/null count=200 bs=32k
200+0 records in
200+0 records out
6553600 bytes transferred in 9.599674 secs (682690 bytes/sec)

bash# dd if=/dev/rsd0 of=/dev/null count=200 bs=16k
200+0 records in
200+0 records out
3276800 bytes transferred in 9.499696 secs (344937 bytes/sec)

bash# dd if=/dev/rsd0 of=/dev/null count=200 bs=8k
200+0 records in
200+0 records out
1638400 bytes transferred in 9.519665 secs (172107 bytes/sec)

bash# dd if=/dev/rsd0 of=/dev/null count=200 bs=4k
200+0 records in
200+0 records out
819200 bytes transferred in 9.419678 secs (86967 bytes/sec)



The only things running on the machine not in the default configuration
are mfs, named, sshd, cfsd, ppp and the xig X server. None of them used
any noticeable amount of cpu.



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