Re: [PATCH] scsi_ram: a RAM-based SCSI driver

From: Kirill A. Shutemov
Date: Fri Dec 07 2012 - 06:18:41 EST


On Thu, Dec 06, 2012 at 11:09:07AM +0100, Paolo Bonzini wrote:
> Il 05/12/2012 17:45, Kirill A. Shutemov ha scritto:
> > From: "Kirill A. Shutemov" <kirill.shutemov@xxxxxxxxxxxxxxx>
> >
> > This driver is intended to run as fast as possible, hence the options to
> > discard writes and reads. It's designed to let us find latency issues
> > elsewhere in the storage stack (eg filesystem, block layer, scsi layer).
> >
> > There are a few different options, controlled through module parameters.
> > The sector size and disc capacity are load-time parameters, but the
> > parameters affecting performance are tweakable at runtime.
> >
> > By default, it'll allocate half a gigabyte of RAM to use as a ramdisc;
> > you can change this with the `capacity' module parameter.
>
> Is this that much faster than scsi-debug? The discarding options surely
> can be added there.

scsi_ram is about 9% faster (without fake_rw/throw_away_*) on my machine:

fio job file (slightly modified ssd-test):

[global]
bs=4k
ioengine=libaio
iodepth=4
size=10g
direct=1
runtime=60
filename=/dev/sdb

[seq-read]
rw=read
stonewall

[rand-read]
rw=randread
stonewall

[seq-write]
rw=write
stonewall

[rand-write]
rw=randwrite
stonewall

----------------------

scsi_ram capacity=41943040:

Run status group 0 (all jobs):
READ: io=6975.2MB, aggrb=119040KB/s, minb=119040KB/s, maxb=119040KB/s, mint=60001msec, maxt=60001msec

Run status group 1 (all jobs):
READ: io=7006.8MB, aggrb=119579KB/s, minb=119579KB/s, maxb=119579KB/s, mint=60001msec, maxt=60001msec

Run status group 2 (all jobs):
WRITE: io=7009.9MB, aggrb=119632KB/s, minb=119632KB/s, maxb=119632KB/s, mint=60001msec, maxt=60001msec

Run status group 3 (all jobs):
WRITE: io=6919.8MB, aggrb=118094KB/s, minb=118094KB/s, maxb=118094KB/s, mint=60001msec, maxt=60001msec

Disk stats (read/write):
sdb: ios=3579612/3559798, merge=0/0, ticks=128180/125565, in_queue=240098, util=77.79%

----------------------

scsi_debug dev_size_mb=10240 delay=0:

Run status group 0 (all jobs):
READ: io=6393.2MB, aggrb=109110KB/s, minb=109110KB/s, maxb=109110KB/s, mint=60000msec, maxt=60000msec

Run status group 1 (all jobs):
READ: io=6327.6MB, aggrb=107988KB/s, minb=107988KB/s, maxb=107988KB/s, mint=60001msec, maxt=60001msec

Run status group 2 (all jobs):
WRITE: io=6473.3MB, aggrb=110474KB/s, minb=110474KB/s, maxb=110474KB/s, mint=60001msec, maxt=60001msec

Run status group 3 (all jobs):
WRITE: io=6330.5MB, aggrb=108037KB/s, minb=108037KB/s, maxb=108037KB/s, mint=60001msec, maxt=60001msec

Disk stats (read/write):
sdb: ios=3256653/3272376, merge=0/0, ticks=54502/54150, in_queue=101165, util=42.09%

--
Kirill A. Shutemov

Attachment: signature.asc
Description: Digital signature