librbd tuning?

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

 



On 08/05/2014 06:19 PM, Mark Kirkwood wrote:
> On 05/08/14 23:44, Mark Nelson wrote:
>> On 08/05/2014 02:48 AM, Mark Kirkwood wrote:
>>> On 05/08/14 03:52, Tregaron Bayly wrote:
>>>> Does anyone have any insight on how we can tune librbd to perform
>>>> closer
>>>> to the level of the rbd kernel module?
>>>>
>>>> In our lab we have a four node cluster with 1GbE public network and
>>>> 10GbE cluster network.  A client node connects to the public network
>>>> with 10GbE.
>>>>
>>>> When doing benchmarks on the client using the kernel module we get
>>>> decent performance and can cause the OSD nodes to max out their 1GbE
>>>> link at peak servicing the requests:
>>>>
>>>>                          tx      rx
>>>> max          833.66 Mbit/s  |   639.44 Mbit/s
>>>> max          938.06 Mbit/s  |   707.35 Mbit/s
>>>> max          846.78 Mbit/s  |   702.04 Mbit/s
>>>> max          790.66 Mbit/s  |   621.92 Mbit/s
>>>>
>>>> However, using librbd we only get about 30% of performance and I can
>>>> see
>>>> that it doesn't seem to generate requests fast enough to max out the
>>>> links on OSD nodes:
>>>>
>>>> max          309.74 Mbit/s  |   196.77 Mbit/s
>>>> max          300.15 Mbit/s  |   154.38 Mbit/s
>>>> max          263.06 Mbit/s  |   154.38 Mbit/s
>>>> max          368.91 Mbit/s  |   234.38 Mbit/s
>>>>
>>>> I know that I can play with cache settings to help give the client
>>>> better service on hits, but I'm wondering how I can soup up librbd so
>>>> that it can take advantage of more of the speed available in the
>>>> cluster.  It seems like using librbd will leave a lot of the resources
>>>> idle.
>>>
>>>
>>> Hi Tregaron,
>>>
>>> I'm guessing that in the librbd case you are injecting the volume into a
>>> VM before running your tests - might be interesting to see your libvirt
>>> XML for the VM... in particular the 'cache' setting for the rbd volume.
>>> If this are not set or is 'default' then changing to 'none' will
>>> probably be significantly faster. In addition adding:
>>>
>>> io='native'
>>>
>>> may give a bit of  a boost too!
>>
>> Oh, that reminds me, also make sure to use the virtio bus instead of ide
>> or something else.  That can make a very large performance difference.
>>
>
> Yes, good point Mark (man this plethora of Marks is confusing...). That
> reminds me, we currently have some libvirt configs in the docs that use
>
> bus='ide'
>
> ...we should probably weed 'em out - or at least mention that vertio is
> the preferred bus (e.g http://ceph.com/docs/master/rbd/libvirt/#summary)

ugh, I thought we had gotten rid of all of those.  Good catch.

Mark

>
>
> Cheers
>
> Mark
> _______________________________________________
> ceph-users mailing list
> ceph-users at lists.ceph.com
> http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com



[Index of Archives]     [Information on CEPH]     [Linux Filesystem Development]     [Ceph Development]     [Ceph Large]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [xfs]


  Powered by Linux