摘要

传统的Linux内核协议栈已不能满足大规模数据处理系统对网络传输越来越高的性能要求。现有很多研究是将原来在内核态实现的协议和接口移到用户态去实现,但针对内核态优化的研究比较少。在研究分析Linux内核态文件发送接口sendfile()处理流程和管理机制的基础上,本文提出一种内核态文件发送优化方法,采用自动负载均衡的定长内存池管理、CPU亲和性等技术,对内核态文件发送接口进行优化改造。解决了系统在高负载情况下内存碎片、内存耗尽及CPU抖动的问题,有效提升了数据传输性能。实验结果表明,在高并发、高吞吐场景下,采用本文优化方法后,系统运行更稳定,内核态CPU占有率下降50%。