Re: device mapper increased latency on RAID array

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

 



What am I saying, it's not the same sector at all, I need to double check...

On 18 January 2016 at 10:52, Thanos Makatos <thanos.makatos@xxxxxxxxx> wrote:
> I used fio and got the exact same results, so it doesn't seem to be
> tool-related. Indeed the RAID controller (PERC H730P Mini) and SSDs
> (INTEL SSDSC1BG200G4R) are quite fast. I cannot reproduce this on any
> other configuration either (e.g. another disk, ramdisk, etc.) so it
> definitely has something to do with the controller.
>
> I used blktrace and here's the output, on the SSD passed through by
> the RAID controller:
>
> ioping-8868  [002]  5666.780726:   8,32   Q   R 232955928 + 8 [ioping]
> ioping-8868  [002]  5666.780731:   8,32   G   R 232955928 + 8 [ioping]
> ioping-8868  [002]  5666.780732:   8,32   P   N [ioping]
> ioping-8868  [002]  5666.780733:   8,32   I   R 232955928 + 8 [ioping]
> ioping-8868  [002]  5666.780734:   8,32   U   N [ioping] 1
> ioping-8868  [002]  5666.780735:   8,32   D   R 232955928 + 8 [ioping]
> <idle>-0     [014]  5666.780803:   8,32   C   R 232955928 + 8 [0]
>
> And on the RAID array:
>
> ioping-8869  [003]  5673.729427:   8,32   A   R 1696736 + 8 <- (253,1) 1696736
> ioping-8869  [003]  5673.729429:   8,32   Q   R 1696736 + 8 [ioping]
> ioping-8869  [003]  5673.729431:   8,32   G   R 1696736 + 8 [ioping]
> ioping-8869  [003]  5673.729432:   8,32   P   N [ioping]
> ioping-8869  [003]  5673.729433:   8,32   I   R 1696736 + 8 [ioping]
> ioping-8869  [003]  5673.729434:   8,32   U   N [ioping] 1
> ioping-8869  [003]  5673.729435:   8,32   D   R 1696736 + 8 [ioping]
> <idle>-0     [001]  5673.729615:   8,32   C   R 1696736 + 8 [0]
>
> In both cases the vast majority of time is spent doing I/O (77 us vs.
> 188 us), as expected. Also, DM's remap overhead is negligible. The
> exact same sectors are
> accessed so it doesn't seem related to alignment etc.
>
> On 15 January 2016 at 22:04, Heinz Mauelshagen <heinzm@xxxxxxxxxx> wrote:
>>
>> You can use blktrace to figure which block device introduces the latencies.
>>
>>
>>
>> On 01/14/2016 05:21 PM, Thanos Makatos wrote:
>>>
>>> I noticed that when a linear device mapper target is used on top of a
>>> RAID array (made of SSDs), latency is 3 times higher than accessing
>>> the RAID array itself. Strangely, when I do the same test to an SSD on
>>> the controller that is passed through (not configured in an array),
>>> latency is unaffected.
>>>
>>> /dev/sda is the SSD passed through from the RAID controller.
>>> /dev/sdc is the block device in the RAID array.
>>>
>>> [ ~]# dmsetup create sda --table "0 $((2**30/512)) linear /dev/sda 0
>>> [ ~]# dmsetup create sdc --table "0 $((2**30/512)) linear /dev/sdc 0
>>> [ ~]# echo noop > /sys/block/sda/queue/scheduler
>>> [ ~]# echo noop > /sys/block/sdc/queue/scheduler
>>>
>>> [ ~]# ./ioping -c 10000 -s 4k -i 0 -q -D /dev/sda
>>>
>>> --- /dev/sda (block device 186.3 GiB) ioping statistics ---
>>> 10 k requests completed in 377.9 ms, 39.1 MiB read, 26.5 k iops, 103.4
>>> MiB/s
>>> min/avg/max/mdev = 31 us / 37 us / 140 us / 20 us
>>>
>>> [ ~]# ./ioping -c 10000 -s 4k -i 0 -q -D /dev/mapper/sda
>>>
>>> --- /dev/mapper/sda (block device 1 GiB) ioping statistics ---
>>> 10 k requests completed in 387.5 ms, 39.1 MiB read, 25.8 k iops, 100.8
>>> MiB/s
>>> min/avg/max/mdev = 36 us / 38 us / 134 us / 5 us
>>>
>>> [root@192.168.1.130 ~]# ./ioping -c 10000 -s 4k -i 0 -q -D /dev/mapper/sdc
>>>
>>> --- /dev/mapper/sdc (block device 1 GiB) ioping statistics ---
>>> 10 k requests completed in 1.33 s, 39.1 MiB read, 7.50 k iops, 29.3 MiB/s
>>> min/avg/max/mdev = 112 us / 133 us / 226 us / 11 us
>>> [ ~]# ./ioping -c 10000 -s 4k -i 0 -q -D /dev/sdc
>>>
>>> --- /dev/sdc (block device 1.45 TiB) ioping statistics ---
>>> 10 k requests completed in 477.8 ms, 39.1 MiB read, 20.9 k iops, 81.7
>>> MiB/s
>>> min/avg/max/mdev = 36 us / 47 us / 158 us / 18 us
>>>
>>> [ ~]# ./ioping -c 10000 -s 4k -i 0 -q -D /dev/mapper/sdc
>>>
>>> --- /dev/mapper/sdc (block device 1 GiB) ioping statistics ---
>>> 10 k requests completed in 1.33 s, 39.1 MiB read, 7.50 k iops, 29.3 MiB/s
>>> min/avg/max/mdev = 111 us / 133 us / 181 us / 11 us
>>>
>>> These results are reproduced consistently. I've tried this on kernels
>>> 2.6.32-431.29.2.el6.x86_64, 3.10.68-11.el6.centos.alt.x86_64 (CentOS
>>> 6), and 4.3 (Debian testing).
>>>
>>> I really doubt that there is something with the device mapper here,
>>> but I'd like to understand this weird interaction between the device
>>> mapper (or maybe the block I/O layer?) and the RAID controller. Any
>>> ideas how to investigate this?
>>>
>>>
>>
>> --
>> dm-devel mailing list
>> dm-devel@xxxxxxxxxx
>> https://www.redhat.com/mailman/listinfo/dm-devel
>
>
>
> --
> Thanos Makatos



-- 
Thanos Makatos

--
dm-devel mailing list
dm-devel@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/dm-devel



[Index of Archives]     [DM Crypt]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Packaging]     [Fedora SELinux]     [Yosemite Discussion]     [KDE Users]     [Fedora Docs]

  Powered by Linux