Я знал, что RDMA требует, чтобы и отправитель, и получатель регистрировали свою память перед передачей данных. Мне интересно, должна ли зарегистрированная память как у отправителя, так и у получателя быть одинаковой или нет. Если то же самое, я думаю, что RDMA тратит много памяти, поскольку обе стороны в основном хранят идентичные данные. Есть ли способ уменьшить такую проблему?
Буфер памяти RDMA
comment
Это в контексте какой-либо конкретной ситуации или кода? Если нет, то, вероятно, не по теме.
- person tadman   schedule 16.01.2018
Ответы (1)
После передачи по сети и отправитель, и получатель содержат копии одной и той же информации. Однако, в зависимости от приложения и шаблона связи, буферы на обеих сторонах могут использоваться повторно. Например, инициатор операции удаленного чтения может использовать одни и те же буферы для результатов чтения после того, как оно будет выполнено с предыдущими результатами.
person
haggai_e
schedule
17.01.2018
Возможно ли, что размер буфера на обеих сторонах разный. Я хочу, чтобы отправитель продолжал писать или читать страницу 4K от/к получателю. Вы можете думать, что приемник на самом деле является хранилищем данных. В этом случае я должен установить буфер получателя на 10 ГБ (например, достаточно большой, чтобы хранить тонны страниц), а буфер отправителя установить на 4 КБ. или любой лучший дизайн для этого.
- person Technorc Luke; 17.01.2018
Вы также можете копировать в меньший буфер и из него или динамически регистрировать и отменять регистрацию памяти по мере необходимости. На некоторых устройствах вы можете использовать пейджинг по запросу, чтобы коммуникационные буферы не закреплялись в памяти.
- person haggai_e; 17.01.2018