使用lscpu命令查看CPU信息
[root@kvm ~]# lscpu
使用numastart查看cpu numa调度情况
[root@kvm ~]# numastat -c qemu-kvm
Per-node process memory usage (in MBs)
PID Node 0 Node 1 Total
--------------- ------ ------ -----
1682 (qemu-kvm) 2099 6133 8232
18682 (qemu-kvm) 3388 456 3844
36572 (qemu-kvm) 3256 60 3317
--------------- ------ ------ -----
Total 8743 6649 15393
使用vcpuinfo查看虚拟机对应的物理cpu的情况
[root@kvm ~]# virsh vcpuinfo win10
VCPU: 0
CPU: 3
状态: running
CPU 时间: 111.7s
CPU关系: yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
VCPU: 1
CPU: 9
状态: running
CPU 时间: 113.2s
CPU关系: yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
这个虚拟机是2个vCPU 双核的,然后跑在了物理机上的9和8核上面了,使用的时间是113.2s。最后一个是CPU的亲和性,这个yyyyy 表示的是使用的物理CPU内部的逻辑核,一个y就代表其中一个CPU逻辑核。全部是y ,那么说明这台物理机的32个CPU核,这个CPU都能调度使用。
使用emulatorpin 绑定CPU
[root@kvm ~]# virsh emulatorpin win10 18-23 --live
通过这个命令,我们把这个win10的虚拟机vCPU绑定在了18-23这6个CPU之间的核上。 我们用命令查看下 emulatorpin win10
那么有的人会疑问,一个虚拟机我有两个vCPU, 比如这个win7 ,它就是双核的,我想让里面的vCPU1和vCPU2分别绑定在不同的物理CPU上可以吗?怎么操作呢?这也是可以的,我们通过下面的方法可以进行相关的vCPU分别绑定
[root@kvm ~]# virsh vcpupin win10 0 0
[root@kvm ~]# virsh vcpupin win10 1 2
[root@kvm ~]# virsh vcpupin win10 2 4
[root@kvm ~]# virsh vcpupin win10 3 6
[root@kvm ~]# virsh vcpupin win10 4 8
[root@kvm ~]# virsh vcpupin win10 5 10
[root@kvm ~]# virsh vcpupin win10 6 12
用virsh dumpxml win10 查看确认
[root@kvm ~]# virsh dumpxml win10
<domain type='kvm' id='43'>
<name>win10</name>
<uuid>20c51289-63c3-4ca6-bf9e-7ab5e653741c</uuid>
<memory unit='KiB'>8388608</memory>
<currentMemory unit='KiB'>8388608</currentMemory>
<vcpu placement='static'>8</vcpu>
<cputune>
<vcpupin vcpu='0' cpuset='0'/>
<vcpupin vcpu='1' cpuset='2'/>
<vcpupin vcpu='2' cpuset='4'/>
<vcpupin vcpu='3' cpuset='6'/>
<vcpupin vcpu='4' cpuset='8'/>
<vcpupin vcpu='5' cpuset='10'/>
<vcpupin vcpu='6' cpuset='12'/>
<vcpupin vcpu='7' cpuset='14'/>
</cputune>
<resource>
<partition>/machine</partition>
</resource>
这里要注意的是,你把虚拟机用reboot重启,这个绑定配置还是生效的,但是你shutdown的话,CPU绑定的效果会失效。我们要让VM关机然后起来也生效,就必须把参数写入到虚拟机的XML里,然后保存,这样关机了也不会失效,这里要注意下
[root@kvm ~]# virsh edit win10
发表评论
共 0 条评论
暂无评论