Subject: bufq: readprio vs priocscan dbench results
To: None <tech-kern@netbsd.org>
From: Juan RP <juan@xtrarom.org>
List: tech-kern
Date: 10/10/2005 13:15:08
Hi,

I've been running dbench to benchmark our current bufq
strategies and here are the results:

Hardware used:

cpu0: AMD Athlon (686-class), 1500.15 MHz, id 0x681
total memory = 510 MB

wd0 at atabus2 drive 0: <Maxtor 6Y080P0>
wd0: drive supports 16-sector PIO transfers, LBA addressing
wd0: 78167 MB, 158816 cyl, 16 head, 63 sec, 512 bytes/sect x 160086528
sectors wd0: 32-bit data port
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
wd0(viaide1:0:0): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using
DMA)

dbench tests
------------

Command args: -t 120 20

priocscan: Throughput 35.6146 MB/sec 20 procs
readprio: Throughput 31.6769 MB/sec 20 procs
disksort: Throughput 33.1262 MB/sec 20 procs
fcfs: Throughput 30.3667 MB/sec 20 procs

Command args: -t 120 45

priocscan: Throughput 17.6074 MB/sec 45 procs
readprio: Throughput 12.6694 MB/sec 45 procs
disksort: Throughput 10.6391 MB/sec 45 procs
fcfs: Throughput 9.65181 MB/sec 45 procs

Same tests modifying number of requests and number of queues
for readprio and priocscan strategies.

priocscan:

#define PRIOCSCAN_NQUEUE        6

const int priocscan_burst[] = {
        1024, 512, 256, 128, 64, 4
};

Throughput 24.1751 MB/sec 45 procs

#define PRIOCSCAN_NQUEUE        9

const int priocscan_burst[] = { 
        8192, 4096, 2048, 1024, 512, 256, 128, 64, 4
};

Throughput 21.8407 MB/sec 45 procs

const int priocscan_burst[] = {
        1024, 128, 4
};

Throughput 21.5945 MB/sec 45 procs

readprio:

PRIO_READ_BURST 128
PRIO_WRITE_REQ  32

Throughput 15.9354 MB/sec 45 procs

PRIO_READ_BURST 512
PRIO_WRITE_REQ  64

Throughput 14.6596 MB/sec 45 procs

PRIO_READ_BURST 256
PRIO_WRITE_REQ  64

Throughput 15.2081 MB/sec 45 procs

PRIO_READ_BURST 512
PRIO_WRITE_REQ  32

Throughput 15.6419 MB/sec 45 procs

Note: I was not using softdep and the partition is UFS2 with
16384/2048 bsize/fsize.

And the winner is... priocscan.