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

Vladislav Bolkhovitin
2009-04-02T07:39:21Z

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@gmail.com>
>> wrote:
>>
>>> On Tue, Mar 31, 2009 at 8:43 PM, Ross S. W. Walker
>>> <RWalker@medallion.com> 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.

Thanks,
Vlad