2017版:KVM性能优化之CPU优化
接着我们看下这个命令:numastat?-c ?,这个命令c 后面跟上进程名就能看到相关进程的NUMA内存使用情况.比如:numastat -c?qemu-kvm,这样我们就知道了qemu-kvm这个进程,它在node0 和node1上使用的内存大小,单位是MB: OK 通过这几个命令我们可以查看一些numa的基本状态和使用情况.那么针对CPU Numa技术,linux操作系统本身呢也有自身对这块的设计.拿linux来说,它默认使用的就是NUMA自动平衡策略,系统会自动的调配numa的内存使用,以求一个平衡. 当然,这个设置是可以用户自己控制的,如果我们想关闭,直接运行 # echo?0?>?/proc/sys/kernel/numa_balancing ? ?即可 # echo?1?>?/proc/sys/kernel/numa_balancing ? ?就是开启 1.4 CPU绑定操作说到这,既然我们的操作系统还有CPU特性都采用了NUMA架构,那么我们完全可以通过调整KVM对应的NUMA关系来达到KVM CPU这方面的优化.这里,我们一般是通过CPU绑定的方法来做相关操作的. 那么具体的操作是怎么样的呢?那么接下来我们通过一个例子来演示.这里是一台物理机,之前我们看过了,现在上面装好了KVM,然后运行着几个虚拟机,我们用 virsh list 命令可以查看到当前运行的虚拟机列表. 比如我们要看这个Win7-ent虚拟机里vCPU对应物理CPU的情况,那么可以运行:?# virsh?vcpuinfo?Win7-ent ?可以查看 这个虚拟机是2个vCPU 双核的,然后都是跑在了物理机的CPU8上,使用的时间是2964.6s.最后一个是CPU的亲和性,这个yyyyy 表示的是使用的物理CPU内部的逻辑核,一个y就代表其中一个CPU逻辑核.全部是y,那么说明这台物理机的24个CPU核,这个CPU都能调度使用. 当然,我们可以进入vrish,然后运行emulatorpin?Win7-ent,通过这个命令我们可以更详细的得到这个虚拟机可以用哪几个核: 我们可以看到目前这个虚拟机0-23的CPU它都能调度使用 那么以上就是查看虚拟机CPU NUMA调度的信息,如果我们要把虚拟机绑定到固定的CPU上,我们就要做以下操作: #?virsh emulatorpin?Win7-ent?18-23?–live ??通过这个命令,我们把这个win7的虚拟机vCPU绑定在了18-23这6个CPU之间的核上. 我们用命令查看下?emulatorpin?Win7-ent 我们也可以用virsh dumpxml Win7-ent 查看确认: 这是让虚拟机里的vCPU一起绑定的方法. 那么有的人会疑问,一个虚拟机我有两个vCPU,比如这个win7,它就是双核的,我想让里面的vCPU1和vCPU2分别绑定在不同的物理CPU上可以吗?怎么操作呢?这也是可以的,我们通过下面的方法可以进行相关的vCPU分别绑定 # virsh?vcpupin?Win7-ent?0?22 # virsh?vcpupin?Win7-ent?1?23 # virsh?dumpxml?Win7-ent # virsh?vcpuinfo?Win7-ent (编辑:厦门网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |