计算机科学 ›› 2023, Vol. 50 ›› Issue (10): 239-247.doi: 10.11896/jsjkx.220800048
陈云芳, 茆昊天, 张伟
CHEN Yunfang, MAO Haotian, ZHANG Wei
摘要: 为了兼容Linux标准套接字,同时利用RDMA提高使用套接字的程序的性能,提出在上层应用与底层RDMA之间搭建一个中间件——Viscore Socket adaptor(简称vsocket);通过拦截socket API,将上层应用通过套接字收发的数据流无缝转接到RDMA承载上。vsocket绕过管理收发缓冲区的内核,针对TCP和UDP分别实现了用户空间的内存管理机制,使用RC类型的RDMA网络支持TCP加速,使用UD类型的RDMA网络支持UDP加速,并重用Linux UDP来辅助其路由。实验结果表明vsocket能够保证Linux标准套接字接口的兼容性,提升网络性能,摆脱Linux内核网络协议栈的限制,改善收发数据的延迟与带宽。
中图分类号:
[1]2020 Ethernet Alliance Roadmap [EB/OL].https://ethernetalliance.org/blog/2020/05/06/2020-ethernet-alliance-roadmap. [2]HOEFLER T,GIROLAMO S D,TARANOV K,et al.sPIN:High-performance streaming Processing in the Network[C]//Proceedings of the International Conference for High Perfor-mance Computing,Networking,Storage and Analysis.2017:1-16. [3]MA X X,LU G,FU B Z,et al.Implementation method and performance analysis of non-contiguous data communication in network[J].Chinese Journal of Computers,2020,43(6):1123-1138. [4]LIN X,YU C,LI X,et al.Scalable Kernel TCP Design and Implementation for Short-Lived Connections[J].ACM SIGARCH Computer Architecture News,2016,44(2):339-352. [5]HAN S,MARSHALL S,CHUN B G,et al.MegaPipe:a newprogramming interface for scalable network I/O[C]//Procee-dings of the 10th USENIX Conference on Operating Systems Design and Implementation.USENIX Association,2012:135-148. [6]YASUKATA K,HONDA M,SANTRY D,et al.StackMap:Low-Latency Networking with the OS Stack and Dedicated NICs[C]//Usenix Technical Conference.2016:43-56. [7]Seastar:High-performance server-side application framework[EB/OL].http://seastar.io/. [8]High-performance network framework based on dpdk[EB/OL].http://f-stack.org/. [9]MELLANOX.Messaging accelerator(vma)[EB/OL].https://github.com/mellanox/libvma. [10]CORPORATION M.Information about the tcp chimney offload[EB/OL].https://support.microsoft.com/en-us/help/951037/information-about-the-tcp-chimney-offload-receive-side-sca-ling-and-net. [11]InfiniBand Trade Association.InfiniBand Architecture specification,volume 1,release 1.0[EB/OL].http://www.infinibandta.org [12]Rsocket[EB/OL].https://linux.die.net/man/7/. [13]LI B,CUI T,WANG Z,et al.Socksdirect:datacenter sockets can be fast and compatible[C]//Proceedings of the ACM Special Interest Group on Data Communication.2019. [14]JOSE J,LI M,LU X,et al.SR-IOV Support for Virtualization on InfiniBand Clusters:Early Experience[C]//IEEE/ACM International Symposium on Cluster.ACM,2013. [15]MUSLEH M.Bridging the Virtualization Performance Gap for HPC Using SR-IOV for InfiniBand[C]//IEEE International Conference on Cloud Computing.IEEE,2014. [16]RANADIVE A,DAVDA B.Toward a Paravirtual vRDMA Device for VMware ESXi Guests[J].VMware Technical Journal,Winter,2012,1(2):2012. [17]WANG D,FU B,LU G,et al.vSocket:virtual socket interface for RDMA in public clouds[C]//the 15th ACM SIGPLAN/SIGOPS International Conference.ACM,2019. [18]PFEFFERLE J,STUEDI P,TRIVEDI A,et al.A Hybrid I/O Virtualization Framework for RDMA-capable Network Interfaces[J].ACM Sigplan Notices,2015:17-30. [19]PFEFFERLE J.vVerbs,a paravirtual subsystem for RDMA-capable network interfaces[J/OL].https://www.research-collection.ethz.ch/handle/20.500.11850/154568. [20]FAN S,CHEN F,RAUCHFUSS H,et al.Towardsa Light-weight RDMAPara-Virtualization for HPC[C]//COSH/VisorHPC@ HiPEAC.2017. [21]MOUZAKITIS A,PINTO C,NIKOLAEV N,et al.Lightweight and Generic RDMA Engine Para-Virtualization for the KVM Hypervisor[C]//International Conference on High Performance Computing & Simulation.IEEE,2017. [22]KIM D,YU T,LIU H H,et al.Freeflow:software-based virtual RDMA networking for containerized clouds[C]//Networked Systems Design and Implementation.2019. [23]SoftRoCE:Software RDMA over Converged Ethernet[EB/OL].https://github.com/SoftRoCE. [24]MA T,MA T,SONG Z,et al.X-RDMA:Effective RDMA Middleware in Large-scale Production Environments[C]//IEEE International Conference on Cluster Computing(CLUSTER),2019. [25]REESE W.Nginx:The high-performance webserver and reverse proxy[J].Linux Journal,2008,2008(173):2. [26]NGINX Plus Sizing Guide:How We Tested.[EB/OL].https://www.nginx.com/blog/nginx-plus-sizing-guide-how-we-tested/#tests. |
|