Re: Ceph RDMA Memory Leakage

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

 



Oops, I forgot including the version information of ceph in my mail.
The Ceph Version we use is: 12.2.0



2017-09-18 18:13 GMT+08:00 Haomai Wang <haomai@xxxxxxxx>:
> which version do you use? I think we have fixed some memory problem on masater
>
> On Mon, Sep 18, 2017 at 2:09 PM, Jin Cai <caijin.laurence@xxxxxxxxx> wrote:
>> Hi, cephers
>>
>>     We are testing the RDMA ms type of Ceph.
>>
>>     The OSDs and MONs are always marked down by their peers because
>> they don't have enough buffer to use in the memory buffer pool to
>> reply the heartbeat ping message from their peers.
>>     And the log always shows "no enough buffer in worker" even though
>> the whole cluster is idle without any I/Os from external.
>>
>>     Ceph configuration about RDMA is as following:
>>         ms_async_rdma_roce_ver = 1
>>         ms_async_rdma_sl = 5
>>         ms_async_rdma_dscp = 136
>>         ms_async_rdma_send_buffers = 1024
>>         ms_async_rdma_receive_buffers = 1024
>>
>>    Even we adjust the value of ms_async_rdma_send_buffers to 32,768,
>> the 'no enough buffer in worker' log still exists.
>>
>>    After a deep analysis, we think it is because when a
>> RDMAConnectedSocketImpl instance is destructed, its queue pair is
>> added to the dead_queue_pair vector container. And the items of
>> dead_queue_pair are deleted in the polling thread.
>>
>> From the doc of rdmamojo:
>> When a QP is destroyed any outstanding Work Requests, in either the
>> Send or Receive Queues, won't be processed anymore by the RDMA device
>> and Work Completions won't be generated for them. It is up to the user
>> to clean all of the associated resources of those Work Requests (i.e.
>> memory buffers)
>>
>> We can know the problem here is that when there are still outstanding
>> work request in the queue pair to be deleted, the memory buffer
>> occupied by these outstanding work request will never be returned to
>> memory buffer pool because work completions won't be generated for
>> them. So the memory leakage happens.
>>
>> A more elegant way before destroying a queue pair is set the queue
>> pair into error state and wait for the affiliated event
>> IBV_EVENT_QP_LAST_WQE_REACHED, finally destroy the queue pair.
>>
>> Do you have any suggestions or ideas? Thanks in advance.
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux