Re: [Scst-devel] [Iscsitarget-devel] ISCSI-SCST performance (withalso IET and STGT data)

From: Vladislav Bolkhovitin
Date: Thu Apr 02 2009 - 05:02:50 EST


Vladislav Bolkhovitin, on 04/02/2009 11:38 AM wrote:
James Bottomley, on 04/02/2009 12:23 AM wrote:
On Wed, 2009-04-01 at 08:20 -0400, Ross Walker wrote:
On Apr 1, 2009, at 2:29 AM, Bart Van Assche <bart.vanassche@xxxxxxxxx> wrote:

On Tue, Mar 31, 2009 at 8:43 PM, Ross S. W. Walker
<RWalker@xxxxxxxxxxxxx> wrote:
IET just needs to fix how it does it workload with CFQ which
somehow SCST has overcome. Of course SCST tweaks the Linux kernel to
gain some extra speed.
I'm not familiar with the implementation details of CFQ, but I know
that one of the changes between SCST 1.0.0 and SCST 1.0.1 is that the
default number of kernel threads of the scst_vdisk kernel module has
been increased to 5. Could this explain the performance difference
between SCST and IET for FILEIO and BLOCKIO ?
Thank for the update. IET has used 8 threads per target for ages now, I don't think it is that.

It may be how the I/O threads are forked in SCST that causes them to be in the same I/O context with each other.

I'm pretty sure implementing a version of the patch that was used for the dump command (found on the LKML) will fix this.

But thanks goes to Vlad for pointing this dificiency out so we can fix it to help make IET even better.
SCST explicitly fiddles with the io context to get this to happen. It
has a hack to block to export alloc_io_context:

http://marc.info/?t=122893564800003

Correct, although I wouldn't call it "fiddle", rather "grouping" ;)

But that's not the only reason for good performance. Particularly, it can't explain Bart's tmpfs results from the previous message, where the majority of I/O done to/from RAM without any I/O scheduler involved. (Or does I/O scheduler also involved with tmpfs?) Bart has 4GB RAM, if I remember correctly, i.e. the test data set was 25% of RAM.

To remove any suspicions that I'm playing dirty games here I should note that in many cases I can't say what exactly is responsible for good SCST performance. I can say only something like "good design and implementation", but, I guess, it wouldn't be counted too much. SCST/iSCSI-SCST from the very beginning were designed and made with the best performance in mind and that has brought the result. Sorry, but at the moment I can't afford doing any "why it's so good?" kinds of investigations, because I have a lot more important things to do, like SCST procfs -> sysfs interface conversion.

Thanks,
Vlad
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/