CPU到底在忙啥?CPU利用率的正确计算方法

我们平时使用的CPU利用率方法是极具误导性的,并且一年更甚一年。那么什么是CPU利用率?是你的CPU到底有多忙,是像“% CPU”这样到处在用的指标所显示的那样吗? 在top命令里,你看到90%的CPU利用率是这样: 然而它真正想表达的是这个意思: Stall(这里译作“怠速”)是说这个处理器没有在跑指令,比如在等待内存I/O的时候。我上图所画的比例(“忙”与“怠速”之间)是我在真实生产环境中遇到... 继续阅读

Virtio 零丢包测试配置优化

零丢包测试是网络转发性能的重要指标之一,也是DPDK开发团队一直以来关注的领域。 本文将介绍一下DPDK虚拟化环境中零丢包测试的配置环境和配置方法。Vhost/Virtio 零丢包测试中,测试拓扑结构和南北向吞吐量测试相同,但是对测试平台配置有着更高的要求。 操作系统的实时性配置和Virtio的Vring长度对数据包处理的实时性影响是巨大的, 为获取最好的零丢包性能,我们需要对这两个方面进行优化。... 继续阅读

探秘DPDK Virtio的不同路径

什么是Vhost/Virtio Vhost/Virtio是一种半虚拟化的设备抽象接口规范, 在Qemu和KVM中的得到了广泛的应用,在客户机操作系统中实现的前端驱动程序一般直接叫Virtio, 在宿主机实现的后端驱动程序称为Vhost。与宿主机纯软件模拟I/O相比,virtio可以获得很好的性能,在数据中心中得到了广泛的应用。Linux kernel中已经提供了相应的设备驱动,分别是virtio-... 继续阅读

DPDK在OpenStack中的实现

随着云计算与大数据的快速发展,其对数据中心网络的性能和管理提出了更高的要求,但传统云计算架构存在多个I/O瓶颈,由于云平台基本上是采用传统的X86服务器加上虚拟化方式组建,随着40G、100G高速网卡的出现,如何在通用的X86平台上实现网络的快速转发就成为关键。DPDK是INTEL推出的基于X86平台提升数据面报文快速处理速率的应用程序开发包[1],关于DPDK的资料已经比较多,本文不再做过多介绍... 继续阅读

2017版:KVM网络性能调优终极版

首先,我给大家看一张图,这张图是数据包从虚拟机开始然后最后到物理网卡的过程。 我们分析下这张图,虚拟机有数据包肯定是先走虚拟机自身的那张虚拟网卡,然后发到中间的虚拟化层,再然后是传到宿主机里的内核网桥中,最后传到物理网卡,这个过程很好理解。 那么我们要做网络的优化,让虚拟机的网络运行得更加高效,我们要想的就是让虚拟机访问到物理网卡的层次要少。或者说能不能让宿主机的物理网卡直接丢给虚拟机用,这样达到... 继续阅读

2017版:KVM 性能优化之磁盘IO优化

接着第三块的内容,KVM磁盘性能方面的调优。磁盘IO方面我们可以从以下四个方面去着手优化: 磁盘类型选择 缓存模式选择 AIO 异步读写方式选择 磁盘IO调度器选择 1. 磁盘类型选择 磁盘方面,建议是用Virtio模式,在CentOS7.1 中,磁盘的类型有IDE 、SATA 以及virtio 三种。磁盘这块也有完全虚拟化和半虚拟化之分。virtio它就是半虚拟化的,最初是由澳大利亚的一个天才级... 继续阅读

2017版:KVM 性能优化之内存优化

我们说完CPU方面的优化,接着我们继续第二块内容,也就是内存方面的优化。内存方面有以下四个方向去着手: EPT 技术 大页和透明大页 KSM 技术 内存限制 1. EPT技术 EPT也就是扩展页表,这是intel开创的硬件辅助内存虚拟化技术。我们知道内存的使用,是一个逻辑地址跟物理地址转换的过程。虚拟机内部有逻辑地址转成成物理地址的过程,然后再跳出来,虚拟机这块内存又跟宿主机存在逻辑到物理的转换。... 继续阅读

2017版:KVM性能优化之CPU优化

前言 任何平台根据场景的不同,都有相应的优化。不一样的硬件环境、网络环境,同样的一个平台,它跑出的效果也肯定不一样。就好比一辆法拉利,在高速公路里跑跟乡村街道跑,速度和激情肯定不同… 所以,我们做运维工作,也是如此。首先你得充分了解你所用的软件平台,然后根据你现有的生产环境去充分的测试,最后得出结果,做最优的调整。 KVM也是一样,首先要做的是充分的了解它,看看有哪些参数和设置我们可以... 继续阅读

基于virtio-user的新exception path方案

在DPDK使用环境中,物理网卡收到的包都绕开内核,直接到达DPDK应用中。但是,有些时候,用户希望把某些包(如控制报文)放到内核网络协议栈进行处理,这个路径在DPDK中被称作exception path。 现有方案 现有的exception path方案主要有三个: 1. KNI,作为目前DPDK用户使用的主要方案,其通过内核模块构造了一个虚拟网络接口,并且通过FIFO队列和用户态的DPDK应用交... 继续阅读