● 摘要
近年来,由于虚拟化技术在提高资源利用率、提升系统安全性等方面的独特优势,使其在服务器等领域得到了广泛的应用。然而,虚拟机网络I/O的性能成为影响虚拟化系统性能的一个重要因素,并且,目前尚无合适的工具来分析虚拟机环境下的网络I/O路径和性能瓶颈,使得网络I/O的优化无法对症下药。为此,对虚拟机网络I/O路径进行分析,找出网络I/O的性能瓶颈,进而进行性能优化显得尤为重要。本文采用内核态下的动态插桩技术和用户态下的动态跟踪机制,设计并实现了虚拟机环境下的网络I/O路径分析工具,应用该工具得到数据包从主机物理网卡到虚拟机的函数调用关系图、所消耗时间以及整个网络I/O路径上的性能瓶颈,针对该瓶颈,对虚拟机环境下的网络性能进行优化工作,并利用网络I/O路径分析工具验证了优化效果。本文的主要工作和贡献包括:首先,在对KVM内核虚拟机的结构、工作原理和网络通信原理进行研究的基础上,提出了基于数据包标识和动态插桩的网络I/O路径信息收集方案,对数据包进行跟踪,设计并实现了KVM虚拟机环境下的网络I/O路径分析工具。利用该工具得到数据包从主机物理网卡到虚拟机的整个网络I/O路径上的性能瓶颈主要有三部分:Linux内核网桥模块,虚拟硬件网卡接收模块和TUN/TAP模块,论文在采用半轮询方式的基础上,提出了取消网桥查表过程和取消链路层的防火墙判断的方案,对开销最大的网桥模块进行性能优化。并利用网络I/O路径分析工具验证优化效果。之后,功能和性能测试表明,该工具成功地实现了获取KVM虚拟机环境下的网络I/O路径信息,并且随着网桥性能的优化,KVM虚拟机环境下的整个网络I/O性能有所提高,验证了本文提出的关键技术的可行性和正确性。最后,对本文进行总结,并指出了下一步的研究方向。
相关内容
相关标签