Re: Performance of packet writing: Blocksize matters

Johannes Niess <[email protected]> Wed, 13 Dec 2006 21:38:16 +0100
Newsgroups gmane.linux.suse.packet-writing
Message-ID <[email protected]>
--nextPart2471280.2udM5l20yA
Content-Type: text/plain;
  charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Am Mittwoch 13 Dezember 2006 16:42 schrieb Phillip Susi:
> Johannes Niess wrote:
> > stingray ~ # dd if=3D/dev/zero of=3D/dev/pktcdvd/dvdrw bs=3D32768 count=
=3D25000
> > 25000+0 records in
> > 25000+0 records out
> > 819200000 bytes (819 MB) copied, 86.3305 seconds, 9.5 MB/s
> >
> > stingray ~ # dd if=3D/dev/zero of=3D/dev/pktcdvd/dvdrw bs=3D32769 count=
=3D25000
> > 25000+0 records in
> > 25000+0 records out
> > 819225000 bytes (819 MB) copied, 1312.45 seconds, 624 kB/s
>
> These two commands appear to be exactly the same, yet have different
> results.  Can you explain this?

I went for a minimal difference. The second experiment is with block size=20
increased by 1 byte (32k + 1) =3D 32769. Sorry for not making that obvious.=
 The=20
change was intended to force reblocking. I agree that it is not a real worl=
d=20
test.

> Also make sure /dev/hdc is using the noop io scheduler.
My data was generated with cfq, settings as below (execpt changing io=20
scheduler), but no other process was accessing the DVD drive.

Will this work?

 echo noop > /sys/block/hdc/queue/scheduler

stingray ~ # ls /sys/block/hdc/queue/*
/sys/block/hdc/queue/max_hw_sectors_kb  /sys/block/hdc/queue/nr_requests   =
 /sys/block/hdc/queue/scheduler
/sys/block/hdc/queue/max_sectors_kb     /sys/block/hdc/queue/read_ahead_kb

/sys/block/hdc/queue/iosched:

stingray ~ # cat /sys/block/hdc/queue/*
cat: /sys/block/hdc/queue/iosched: Is a directory
128
128
128
128
[noop] cfq


Is there anything else I should log besides the write speeds? Would outputs=
=20
from /proc/diskstats help? I could do the differences before and after each=
=20
experiment or even log it every couple of seconds. I'm also willing to try=
=20
experimental module patches based on 2.6.19 vanilla or mm.

I'd like to provide a maximum of required debugging data from the next=20
experiments. Thank you for trying to understand my problem.

Johannes Nie=DF

--nextPart2471280.2udM5l20yA
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)

iD8DBQBFgGTBZ86b9aw2E+0RAvxFAKCAbABj9vucBO0bK0tJDKkOVkEvCgCgxbf3
2ibF6NndUadGKU81faBygfM=
=7bzJ
-----END PGP SIGNATURE-----

--nextPart2471280.2udM5l20yA--