Re: Performance issue with SATA port multiplier

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello

2011/2/24 Tejun Heo <tj@xxxxxxxxxx>:
>
> (cc'ing Justin)
>
> Hello,
>
> On Thu, Feb 24, 2011 at 03:32:50PM +0100, Sylvain LEVEQUE wrote:
>> I own a Venus T5C mini box based on a JMicron JM393 controller, used
>> in pure port multiplier mode (no JBOD, no RAID). It is plugged in
>> eSATA to a QNAP TS-119 NAS which runs a 2.6.37 kernel on a Marvell
>> Kirkwood 88F6281.
>>
>> When I first started copying data on any disk of the external box, I
>> realized the write speed was low (read speed is OK). Testing with dd
>> and various block sizes shows that the larger the block size, the
>> higher the throughput is. On my NAS, I determined the work buffer size
>> of the cp command to be approximately 8KB.
>>
>> With a 8KB blocksize, when writing a 16MB file with dd on one of the
>> disks, I average at 6,5 MB/s write speed. It is already a great
>> improvement compared to the 393 KB/s write speed I obtained on a
>> 2.6.36 kernel, but it is low compared to results I obtain with higher
>> blocksizes (52,4 MB/s with 4MB blocksize) or using other hardware
>> (laptop with Intel ICH9M-E/M controller reaches 286 MB/s with 8KB
>> blocksize using a 2.6.31 kernel).
>>
>> When I take one of the disks out and connect it in eSATA with a basic
>> external case, I reach 37,6 MB/s with 8KB blocksize. This result is
>> pretty constant whatever the blocksize value I tested (from 1KB to
>> 16MB, doubling each time).
>
> Sounds like a latency related issue. ÂIs NCQ being used?

I actually already tried disabling it but I didn't see much change so
moved on to other tests.

This is what I get for the three drives:
$ cat /sys/block/sd[c-e]/device/queue_depth
1
31
31

$ ls -l /dev/disk/by-label/
lrwxrwxrwx 1 root root 10 2011-02-21 20:36 NASBACKUP -> ../../sdc1
lrwxrwxrwx 1 root root 10 2011-02-21 20:36 HDD2_SAMSUNG640 -> ../../sdd1
lrwxrwxrwx 1 root root 10 2011-02-21 20:36 HDD4_SAMSUNG640 -> ../../sde1

$ dd if=testfile of=/media/NASBACKUP/testfile bs=8K
2048+0 records in
2048+0 records out
16777216 bytes (17 MB) copied, 7,34586 s, 2,3 MB/s

$ dd if=testfile of=/media/HDD2_SAMSUNG640/testfile bs=8K
2048+0 records in
2048+0 records out
16777216 bytes (17 MB) copied, 2,77398 s, 6,0 MB/s

$ dd if=testfile of=/media/HDD4_SAMSUNG640/testfile bs=8K
2048+0 records in
2048+0 records out
16777216 bytes (17 MB) copied, 2,62296 s, 6,4 MB/s

Read throughput is ca 30MB/s for all disks.

Now, without NCQ:

# echo 1 > /sys/block/sdd/device/queue_depth
# echo 1 > /sys/block/sde/device/queue_depth
$ cat /sys/block/sd[c-e]/device/queue_depth
1
1
1

$ dd if=testfile of=/media/HDD2_SAMSUNG640/testfile bs=8K
2048+0 records in
2048+0 records out
16777216 bytes (17 MB) copied, 2,31012 s, 7,3 MB/s

I confirm the observed improvement on the second disk as well.

Thanks
-- 
Sylvain
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux