Ubuntu虚拟机CPU资源分配指南
在分配Ubuntu虚拟机CPU资源前,需综合评估以下核心维度,避免资源浪费或系统冲突:
vmware-cmd
命令修改配置(需进入虚拟机目录),例如将vCPU设置为2核:vmware-cmd <虚拟机路径> config.cpu.num 2
。~/.config/VirtualBox/VirtualBox.xml
),找到<Machine>
标签内的<CpuCount>
标签,修改其值为目标核心数(如<CpuCount>2</CpuCount>
)→保存文件并重启虚拟机。virsh edit <虚拟机名称>
命令编辑虚拟机配置→找到<vcpu>
标签,设置placement='static'
和current
属性(如<vcpu placement='static' current='2'>4</vcpu>
,表示当前分配2核,最大支持4核)→添加CPU亲和性(将vCPU绑定到宿主机特定物理核心,减少上下文切换),例如:<cputune>
<vcpupin vcpu="0" cpuset="0"/> <!-- 绑定vCPU 0到物理核心0 -->
<vcpupin vcpu="1" cpuset="1"/> <!-- 绑定vCPU 1到物理核心1 -->
</cputune>
<numatune>
标签将虚拟机内存分配到与vCPU相同的NUMA节点(如<numatune><memory mode="strict" nodeset="0"/></numatune>
),避免跨节点内存访问导致的性能下降。multipass set <虚拟机名称> cpus <核心数>
命令直接分配vCPU(如multipass set example cpus 2
)→通过multipass info <虚拟机名称>
验证配置是否生效。taskset
命令将Ubuntu虚拟机中的关键进程(如数据库、Web服务器)绑定到特定vCPU,减少进程在不同核心间迁移的开销。例如,将进程PID为1234的进程绑定到vCPU 0-3:sudo taskset -cp 0-3 1234
。nice
和renice
命令调整进程的调度优先级(nice
值范围:-20(最高优先级)到19(最低优先级))。例如,提高某进程优先级:nice -n -5 <命令>
;调整已运行进程的优先级:renice -n -5 -p <PID>
。