位置: 编程技术 - 正文

对KVM虚拟机进行cpu pinning配置的方法(kvm虚拟机性能调优)

编辑:rootadmin

推荐整理分享对KVM虚拟机进行cpu pinning配置的方法(kvm虚拟机性能调优),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:kvm虚拟机paused,kvm虚拟机以哪种方式运行,用kvm创建虚拟机总结,kvm虚拟机开启虚拟化,kvm虚拟机使用,kvm虚拟机以哪种方式运行,kvm虚拟机以哪种方式运行,kvm虚拟机以哪种方式运行,内容如对您有帮助,希望把文章链接给更多的朋友!

首先需求了解基本的信息

1 宿主机CPU特性查看

使用virsh nodeinfo可以看到一些基本信息

复制代码代码如下:virsh nodeinfoCPU model: x_CPU(s): CPU frequency: MHzCPU socket(s): 1Core(s) per socket: 8Thread(s) per core: 2NUMA cell(s): 2Memory size: KiB

使用virsh capabilities可以查看物理机CPU的详细信息,包括物理CPU个数,每个CPU的核数,是否开了超线程。 复制代码代码如下:</p><p>virsh capabilities<capabilities> <host> <uuid>----aa</uuid> <cpu> <arch>x_</arch> <model>SandyBridge</model> <vendor>Intel</vendor> <topology sockets='1' cores='8' threads='2'/> <feature name='erms'/> <feature name='smep'/> ... </cpu> <power_management> <suspend_disk/> </power_management> <migration_features> <live/> <uri_transports> <uri_transport>tcp</uri_transport> </uri_transports> </migration_features> <topology> <cells num='2'> <cell id='0'> <cpus num=''> <cpu id='0' socket_id='0' core_id='0' siblings='0,'/> ... <cpu id='' socket_id='0' core_id='7' siblings='7,'/> </cpus> </cell> <cell id='1'> <cpus num=''> <cpu id='8' socket_id='1' core_id='0' siblings='8,'/> ... <cpu id='' socket_id='1' core_id='7' siblings=','/> </cpus> </cell> </cells> </topology> <secmodel> <model>none</model> <doi>0</doi> </secmodel> <secmodel> <model>dac</model> <doi>0</doi> </secmodel> </host>...</capabilities>

使用virsh freecell命令查看可以当前空闲内存 复制代码代码如下:virsh freecell --all 0: KiB 1: KiB--------------------Total: KiB

物理CPU的特性也可以通过/proc/cpuinfo查看 cat /proc/cpuinforocessor : 0vendor_id : GenuineIntelcpu family : 6model : model name : Intel(R) Xeon(R) CPU E5- v2 @ 2.GHzstepping : 4cpu MHz : .cache size : KBphysical id : 0siblings : core id : 0cpu cores : 8apicid : 0initial apicid : 0fpu : yesfpu_exception : yescpuid level : wp : yesflags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes monitor ds_cpl vmx smx est tm2 ssse3 cx xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx fc rdrand lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid fsgsbase smep ermsbogomips : .clflush size : cache_alignment : address sizes : bits physical, bits virtualpower management:...

综合上面的信息,我们可以得出以下信息:

1) 物理CPU为 E5-V2,为8核2颗,开启了超线程,在物理机系统上可以看到个CPU;

2) 物理机内存为G

2 虚拟机CPU使用情况查看

可以使用virsh vcpuinfo命令查看虚拟机vcpu和物理CPU的对应关系 复制代码代码如下:virsh vcpuinfo VCPU: 0CPU: State: runningCPU time: .0sCPU Affinity: --------yyyyyyyy--------yyyyyyyyVCPU: 1CPU: 8State: runningCPU time: .2sCPU Affinity: --------yyyyyyyy--------yyyyyyyy...

可以看到vcpu0被调度到物理机CPU上,目前是使用状态,使用时间是.0s CPU Affinity: --------yyyyyyyy--------yyyyyyyy

yyyyyyy表示可以使用的物理CPU内部的逻辑核,可以看到这台虚拟机可以在8-, -这些cpu之间调度,为什么不能使用0-7,-这些CPU呢,是因为系统的自动numa平衡服务在发生作用,一个虚拟机默认只能使用同一颗物理CPU内部的逻辑核。

使用emulatorpin可以查看虚拟机可以使用那些物理逻辑CPU 复制代码代码如下:virsh # emulatorpin emulator: CPU Affinity---------------------------------- *: 0-

可以看到0-我们都可以使用,意味这我们也可以强制将CPU调度到任何CPU上。

3 在线pinning虚拟机的cpu

强制让虚拟机只能在-这些cpu之间调度 复制代码代码如下:virsh emulatorpin - --live

查看结果 复制代码代码如下:virsh emulatorpin emulator: CPU Affinity---------------------------------- *: -

查看vcpu info 复制代码代码如下:virsh vcpuinfo VCPU: 0CPU: State: runningCPU time: .5sCPU Affinity: --------------------------yyyyyyVCPU: 1CPU: State: runningCPU time: .7sCPU Affinity: --------------------------yyyyyy...</p><p>查看xml文件 复制代码代码如下:virsh # dumpxml <domain type='kvm' id=''> <name>cacti-</name> <uuid>ac-5cd1-cd-ecfe-2babec</uuid> <memory unit='KiB'></memory> <currentMemory unit='KiB'></currentMemory> <vcpu placement='static'>4</vcpu> <cputune> <emulatorpin cpuset='-'/> </cputune>

我们也可以强制vcpu和物理机cpu一对一的绑定

强制vcpu 0和物理机cpu 绑定

强制vcpu 1和物理机cpu 绑定

强制vcpu 2和物理机cpu 绑定

对KVM虚拟机进行cpu pinning配置的方法(kvm虚拟机性能调优)

强制vcpu 3和物理机cpu 绑定复制代码代码如下: virsh vcpupin 0 virsh vcpupin 1 virsh vcpupin 2 virsh vcpupin 3

查看xml文件,生效了 复制代码代码如下:virsh # dumpxml <domain type='kvm' id=''> <name>cacti-</name> <uuid>ac-5cd1-cd-ecfe-2babec</uuid> <memory unit='KiB'></memory> <currentMemory unit='KiB'></currentMemory> <vcpu placement='static'>4</vcpu> <cputune> <vcpupin vcpu='0' cpuset=''/> <vcpupin vcpu='1' cpuset=''/> <vcpupin vcpu='2' cpuset=''/> <vcpupin vcpu='3' cpuset=''/> <emulatorpin cpuset='-'/> </cputune>

是vcpuino命令查看,可以看到配置生效了 复制代码代码如下:virsh vcpuinfo VCPU: 0CPU: State: runningCPU time: 1.8sCPU Affinity: ----------------------------y---VCPU: 1CPU: State: runningCPU time: 0.0sCPU Affinity: -----------------------------y--...

4 cpu pinning简单的性能测试

cpu pinning到底对cpu的性能影响有多大,进行了一个简单的测试。

测试环境

硬件

ntel(R) Xeon(R) CPU X @ 2.GHz 2颗

软件

centos 7 update到内核 3..0-.8.1.el7.x_

虚拟机

centos 7 update到内核 3..0-.8.1.el7.x_

虚拟机 cpu 1颗

测试工具

unixbench 5.1.2

测试结果

不做cpu绑定 1 CPU in system; running 1 parallel copy of testsDhrystone 2 using register variables .0 lps (.0 s, 7 samples)Double-Precision Whetstone .4 MWIPS (9.0 s, 7 samples)Execl Throughput .3 lps (.0 s, 2 samples)File Copy bufsize maxblocks .3 KBps (.0 s, 2 samples)File Copy bufsize maxblocks .2 KBps (.0 s, 2 samples)File Copy bufsize maxblocks .4 KBps (.0 s, 2 samples)Pipe Throughput .0 lps (.0 s, 7 samples)Pipe-based Context Switching .5 lps (.0 s, 7 samples)Process Creation .4 lps (.0 s, 2 samples)Shell Scripts (1 concurrent) .4 lpm (.0 s, 2 samples)Shell Scripts (8 concurrent) .1 lpm (.0 s, 2 samples)System Call Overhead .1 lps (.0 s, 7 samples)System Benchmarks Index Values BASELINE RESULT INDEXDhrystone 2 using register variables .0 .0 .7Double-Precision Whetstone .0 .4 .5Execl Throughput .0 .3 .2File Copy bufsize maxblocks .0 .3 .3File Copy bufsize maxblocks .0 .2 .4File Copy bufsize maxblocks .0 .4 .2Pipe Throughput .0 .0 .1Pipe-based Context Switching .0 .5 .2Process Creation .0 .4 .3Shell Scripts (1 concurrent) .4 .4 .6Shell Scripts (8 concurrent) 6.0 .1 .4System Call Overhead .0 .1 .5 ========System Benchmarks Index Score .7

做了cpu绑定

1 CPU in system; running 1 parallel copy of testsDhrystone 2 using register variables .6 lps (.0 s, 7 samples)Double-Precision Whetstone .7 MWIPS (8.9 s, 7 samples)Execl Throughput .4 lps (.0 s, 2 samples)File Copy bufsize maxblocks .9 KBps (.0 s, 2 samples)File Copy bufsize maxblocks .2 KBps (.0 s, 2 samples)File Copy bufsize maxblocks .8 KBps (.0 s, 2 samples)Pipe Throughput .2 lps (.0 s, 7 samples)Pipe-based Context Switching .9 lps (.0 s, 7 samples)Process Creation .5 lps (.0 s, 2 samples)Shell Scripts (1 concurrent) .8 lpm (.0 s, 2 samples)Shell Scripts (8 concurrent) .4 lpm (.1 s, 2 samples)System Call Overhead .4 lps (.0 s, 7 samples)System Benchmarks Index Values BASELINE RESULT INDEXDhrystone 2 using register variables .0 .6 .6Double-Precision Whetstone .0 .7 .3Execl Throughput .0 .4 .4File Copy bufsize maxblocks .0 .9 .6File Copy bufsize maxblocks .0 .2 .3File Copy bufsize maxblocks .0 .8 .0Pipe Throughput .0 .2 .7Pipe-based Context Switching .0 .9 .1Process Creation .0 .5 .7Shell Scripts (1 concurrent) .4 .8 .7Shell Scripts (8 concurrent) 6.0 .4 .7System Call Overhead .0 .4 .8 ========System Benchmarks Index Score .1

比较

综合得分

绑定 .1 不绑定 .7

综合得分 性能提升 1.%

浮点运算

绑定 .7 不绑定 .4

浮点运算 性能提升 1.%

使用guestfish来管理KVM容器的详细教程 1.虚拟机镜像挂载及w2k8虚拟机启动自检慢问题解决办法guestfish套件是镜像管理的利器,在没有guestfish这个套件之前,对虚拟机镜像的处理,要么虚拟机

KVM虚拟网络优化方案整理 一个完整的数据包从虚拟机到物理机的路径是:虚拟机--QEMU虚拟网卡--虚拟化层--内核网桥--物理网卡KVM的网络优化方案,总的来说,就是让虚拟机访问

在Linux系统中将SSD当块设备缓存的方法 原理写操作先缓存到ssd硬盘上,然后通过一定策略写到普通硬盘上;读操作热点数据可以缓存到ssd硬盘上,提高读取数据的速度。软件ssd缓存开源软件

标签: kvm虚拟机性能调优

本文链接地址:https://www.jiuchutong.com/biancheng/354085.html 转载请保留说明!

上一篇:KVM虚拟机上关于宿主机的USB设备使用问题探究(kvm虚拟机运行方式)

下一篇:使用guestfish来管理KVM容器的详细教程(guest怎么用)

  • 应收款为负数怎么做分录
  • 年终奖可以不计入年总收入吗
  • 暂估的应付账款无法开具发票在金蝶云星空怎么操作
  • 免 抵 退
  • 收到政府补助需要缴纳企业所得税吗
  • 手机超过多少钱可以报警立案
  • 企业财务发工资流程
  • 买断式贴现是什么业务
  • 公司净资产减少
  • 无形资产报废会计科目
  • 计提水利建设基金的依据
  • 门店装修会计怎样处理帐?
  • 什么是应交税费应交增值税科目设置的贷方明细科目
  • 应交增值税下面有几个科目
  • 2019年印花税税率表
  • 收到政府补助用于购买环保设备
  • 人工工资应该计什么科目
  • u盘如何进行杀毒
  • 车辆的增值税和消费税
  • 商事账簿编制的一般规则是什么
  • php中的变量都以什么开头
  • 缴纳社保费现金流量?
  • wlms.exe是什么
  • 未实缴出资的股权转让后还要承担法律后果吗
  • 进口小汽车消费税率
  • 会计科目明细分类科目表
  • windows7如何制表
  • php的循环
  • 公司整体收购缴税
  • 领取养老金后每年会增加多少
  • PHP:imagecopymerge()的用法_GD库图像处理函数
  • 不得抵扣的增值税怎么处理
  • 解决城市内涝的题目
  • 发行股票溢价计入
  • 移动端适配方案面试题
  • 自己的智能ai聊天怎么用
  • 前后端分离项目部署到服务器
  • abap webservice
  • vports命令
  • 认缴制对实务操作的可能影响有哪些?
  • 以前年度应交税费调账
  • css代码基础
  • 帝国cms移动端设置教程
  • 免费学电脑网站
  • dede织梦怎么转成zblog
  • powerdesigner12.5使用教程
  • 事业单位购入固定资产当月计提折旧
  • 其他科技推广服务业可以加计扣除吗
  • 展会补贴需要准备什么资料
  • 营改增方案
  • 电子发票应如何打印出来
  • 什么情况下适用简易程序
  • 押金的增值税处理流程
  • 开出去的发票没有进项发票应如何核算成本?
  • 其他人挂靠公司交社保会计处理怎么做?
  • 资产季末值
  • 办税人员可以是开票员吗
  • navicat连接mysql时出现1045错误的解决方法
  • linux怎么安装c语言编程软件
  • windows字幕软件
  • win10预览版和正式版区别
  • win10系统怎么关闭自动更新
  • u盘背景图片设置方法
  • win8.1死机卡住不动
  • win8的系统
  • win10系统应用更新
  • linux系列
  • cocos2d android 游戏开发学习——CCAction(一)
  • unity 3d脚本编程
  • unity读取文本文件
  • jquery对动态生成的进行操作
  • javascript中var的作用
  • python3.6安装pil
  • javascript 日期运算
  • js中alert怎么用
  • 大连电子税务局app下载
  • 辽宁省国家税务总局
  • 12345市民热线什么时候有的
  • 高新企业公布
  • 怎样在网上税务局个人发票能开10万以上?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设