简谈以太网RDMA网卡的应用
各式各样的数据在网络介质中通过网络协议(如TCP/IP)进行传输时,如果信息量过大而不加以限制的话,那么超额的网络流量就会导致设备反应缓慢,由此就造成了网络延迟。 延迟越低越好,效率越高越好,这不仅仅是数据中心网络的要求,我们平常使用的内部网络同样也希望如此。当前的网络速度有万兆、2.5万兆、4万兆,甚至10万兆、20万兆……的趋势都已经来了,网络带宽似乎已经不是主要的瓶颈了,而服务器系统和CPU本身逐步转为了制约网络I/O的瓶颈,影响服务器的整体性能。 如何解决问题? 解决问题的基本思路就是:通过应用程序直接读取和写入远程内存,而无需CPU介入进行多次拷贝内存,还可绕过内核直接向网卡写数据,实现了高吞吐量、超低时延和低CPU开销的效果。 实现这样功能的技术就是RDMA(Remote Direct Memory Access)技术,也就把RDMA【远程直接数据存取】技术运用到了网卡控制器上。 那么具有RDMA功能的网卡和不具有RDMA网卡的有什么不同呢? 首先不具备RDMA功能的网卡的传输路径过程是:应用程序--->系统--->内存--->CPU--->内存--->硬盘---->内存--->网卡。 而具有RDMA功能的网卡,在进行数据传输时候,网卡绕过CPU来实现服务器间的内存数据交换:应用程序--->内存--->硬盘---->内存--->网卡。大大地简化了过程