目录
KVM虚拟机CPU的软件调优首选需要对NUMA技术有一定的了解,调优的主要手段就是虚拟机对物理机CPU逻辑核的手工绑定。
CPU Nested 特性使用也是非常有意思的一个特性,KVM虚拟机的嵌套在理论上可以无限层的嵌套下去,只要物理性能足够。
内存方面调优的主要手段是KSM,即,相同内存页合并,内存气球技术,以及大页内存的使用。
NUMA技术与应用
NUMA是一种解决多CPU共同工作的技术方案,多CPU主要有3种架构:SMP,MPP,NUMA;
- SMP技术:
SMP即多个CPU通过一个总线访问内存,也被称为UMA。
缺点:扩展性有限,在内存接口达到饱和时,达到瓶颈,SMP方式支持的CPU数量有限。
- MPP技术:
MPP可以理解为SMP的横向扩展。
- NUMA技术:
NUMA模式则是每个处理器有自己的存储器,每个处理器也可以访问别的存储器。
KVM虚拟机NUMA调优
NUMA调优的目的是让处理器尽量访问自己的存储器。
- $numactl –hardware //查看当前CPU硬件情况
- $numastat //可以查看每个节点的内存统计
- $numastat -c qemu-kvm//可以查看相关进程的NUMA内存使用情况
Linux系统默认是自动NUMA平衡策略,如果关闭Linux系统的自动平衡,使用如下命令:
- $echo 0 > /proc/sys/kernel/numa_balancing
- $echo 1 > /proc/sys/kernel/numa_balancing //设置为1 则为开启自动平衡
虚拟机NUMA信息查看与配置
使用virsh numatune可以查看或者修改虚拟机的numa配置。
如查看:virsh # numatune 4
修改:virsh numatune rhe7 –nodeset ‘0,2-3’
另外,vcpu的设置需要跟numa的设置保持一致。
虚拟机NUMA和KSM
KSM技术可以跨numa节点合并相同的内存页,如果要关闭该功能,设置/sys/kernel/mm/ksm/merge_accross_nodes参数为0。或者关闭特定虚拟机的该功能,在xml文件中设置:
< memoryBacking>
< nosharepages/>
< / memoryBacking>
CPU绑定操作方法
- cpu信息查看: vcpu和PCPU对应关系 virsh cpuinfo 21
- 使用emulatorpin命令查看虚拟机可以使用哪些物理逻辑cpu。
- 在线绑定VPU:
查看VCPU调度信息:virsh cpuinfo 21
通过VM的XML文件查看VCPU调度信息:virsh #dumpxml 21
强制vcpu和PCPU一对一绑定:virsh vcpupin 21 0 28
virsh vcpupin 21 1 29
%%%* - VCPU绑定原理: 是libvirt通过CGroup实现。
- 绑定应用场景:系统CPU压力比较大;多核CPU压力不平衡。
- CPU绑定对性能提升的测试案例:intel X5650,centos7,vm一颗cpu,测试工具unixbench5.1.2。结果,绑定的性能提升1.24%
CPU热添加与应用
使用简单的符号标识不同的标题,将某些文字标记为粗体或者斜体,创建一个链接等,详细语法参考帮助?。
本编辑器支持 Markdown Extra , 扩展了很多好用的功能。具体请参考Github.
表格
Markdown Extra 表格语法:
项目 | 价格 |
---|---|
Computer | $1600 |
Phone | $12 |
Pipe | $1 |
可以使用冒号来定义对齐方式:
项目 | 价格 | 数量 |
---|---|---|
Computer | 1600 元 | 5 |
Phone | 12 元 | 12 |
Pipe | 1 元 | 234 |
定义列表
-
Markdown Extra 定义列表语法: 项目1 项目2
- 定义 A
- 定义 B 项目3
- 定义 C
-
定义 D
定义D内容
代码块
代码块语法遵循标准markdown代码,例如:
@requires_authorization
def somefunc(param1='', param2=0):
'''A docstring'''
if param1 > param2: # interesting
print 'Greater'
return (param2 - param1 + 1) or None
class SomeClass:
pass
>>> message = '''interpreter
... prompt'''
脚注
生成一个脚注1.
数学公式
使用MathJax渲染LaTex 数学公式,详见math.stackexchange.com.
- 行内公式,数学公式为: