加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门网 (https://www.xiamenwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

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

发布时间:2021-01-14 13:48:04 所属栏目:站长百科 来源:网络整理
导读:《2017版:KVM性能优化之CPU优化》要点: 本文介绍了2017版:KVM性能优化之CPU优化,希望对您有用。如果有疑问,可以联系我们。 前言 任何平台根据场景的不同,都有相应的优化.不一样的硬件环境、网络环境,同样的一个平台,它跑出的效果也肯定不一样.就好比一

接着我们看下这个命令:numastat?-c ?,这个命令c 后面跟上进程名就能看到相关进程的NUMA内存使用情况.比如:numastat -c?qemu-kvm,这样我们就知道了qemu-kvm这个进程,它在node0 和node1上使用的内存大小,单位是MB:

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

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

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

# virsh?vcpuinfo?Win7-ent

(编辑:厦门网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读