我们在鲲鹏服务器上部署了KVM虚拟化环境,主机操作系统是openEuler,虚拟机内部运行的是CentOS 7。为了提升网络性能,我们按照BoostKit文档开启了虚拟化加速特性,主要包括vhost-user和DPDK后端,并配置了OVS-DPDK作为虚拟交换机。配置完成后,用iperf3测试虚拟机之间的TCP吞吐量,发现开启加速后比普通的virtio网络还要低大约30%,而且CPU占用率也更高了。我们反复检查了配置流程,大页内存已经预留,DPDK驱动也绑定到了正确的网口,OVS-DPDK的vhost-user端口创建成功,虚拟机内部也加载了vhost_user驱动。用perf top观察宿主机CPU的热点,发现大量时间消耗在DPDK的轮询线程和中断重映射相关的函数上,而不是预期中的数据拷贝减少。想请教这种现象可能的原因是什么,是配置还需要额外的调优还是鲲鹏平台上对DPDK的支持有什么特殊要求。
我们在鲲鹏服务器上部署了KVM虚拟化环境,主机操作系统是openEuler,虚拟机内部运行的是CentOS 7。为了提升网络性能,我们按照BoostKit文档开启了虚拟化加速特性,主要包括vhost-user和DPDK后端,并配置了OVS-DPDK作为虚拟交换机。配置完成后,用iperf3测试虚拟机之间的TCP吞吐量,发现开启加速后比普通的virtio网络还要低大约30%,而且CPU占用率也更高了。我们反复检查了配置流程,大页内存已经预留,DPDK驱动也绑定到了正确的网口,OVS-DPDK的vhost-user端口创建成功,虚拟机内部也加载了vhost_user驱动。用perf top观察宿主机CPU的热点,发现大量时间消耗在DPDK的轮询线程和中断重映射相关的函数上,而不是预期中的数据拷贝减少。想请教这种现象可能的原因是什么,是配置还需要额外的调优还是鲲鹏平台上对DPDK的支持有什么特殊要求。