我使用stress工具并在RT-centos7 VM中设置了一个cgroup。我尝试使用所有选定的CPU使stress在cgroup中工作,但只有一个CPU工作,这让我感到困惑。stress脚本如下:
#!/bin/bash
stress --cpu 3 --io 3 --vm 1
执行代码为:
nohup /home/wxh/scripts/stress_test.sh &
我使用的cgroup命令是:其他配置均为默认值。
echo 2-5 > cpuset.cpus
echo 0 >cpuset.mems
echo 2216 >> tasks
echo 2217 >> tasks
echo 2218 >> tasks
echo 2219 >> tasks
echo 2220 >> tasks
echo 2221 >> tasks
echo 2222 >> tasks
2116 ~ 2222是与压力进程相关的pid,VM内核为:4.19.265-第117条,厘头7
htop命令显示只有2号CPU(CPU ID为3)满负荷工作,其他3个CPU完全不工作。
enter image description here
虚拟机配置xml如下所示:
<domain type='kvm'>
<name>centos7</name>
<memory unit='GiB'>16</memory>
<vcpu>6</vcpu>
<os>
<type arch='aarch64' machine='virt'>hvm</type>
<loader readonly='yes' type='pflash'>/usr/share/AAVMF/AAVMF_CODE.fd</loader>
<nvram>/var/lib/libvirt/qemu/nvram/centos7_VARS.fd</nvram>
</os>
<features>
<acpi/>
<gic version='3'/>
</features>
<cpu mode='host-passthrough'>
<topology sockets='2' cores='3' threads='1'/>
</cpu>
<iothreads>1</iothreads>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' iothread="1"/>
<source file='/home/xxx/v1_2th.qcow2'/>
<target dev='vda' bus='virtio'/>
<boot order='1'/>
</disk>
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/home/xxx/softwares/Minimal_2th.iso'/>
<readonly/>
<target dev='sdb' bus='scsi'/>
<boot order='2'/>
</disk>
<interface type='network'>
<source network='default'/>
</interface>
<console type='pty'/>
<video>
<model type='virtio'/>
</video>
<controller type='scsi' index='0' model='virtio-scsi'/>
</devices>
<seclabel type='dynamic' model='dac' relabel='yes'/>
<vcpu placement='static' cpuset='64,65,66,67,68,69,70,71'>6</vcpu>
<cputune>
<vcpupin vcpu='0' cpuset='64'/>
<vcpupin vcpu='1' cpuset='65'/>
<vcpupin vcpu='2' cpuset='66'/>
<vcpupin vcpu='3' cpuset='67'/>
<vcpupin vcpu='4' cpuset='68'/>
<vcpupin vcpu='5' cpuset='69'/>
<emulatorpin cpuset='70'/>
<iothreadpin iothread='1' cpuset='71'/>
</cputune>
</domain>
我已经检查了cpuset.effective_cpus和cpuset.cpu_exclusive,但是我认为问题不在这里。我的目标是使压力过程在所有4个cpus上工作。谢谢。
1条答案
按热度按时间3bygqnnd1#
我知道我的问题是什么,问题是你不能同时使用isolcpus=2-5命令和cgroup,我的决定是撤销isolcpus命令。