【Ovirt 笔记】虚拟机 vcpu 绑定物理 cpu 功能分析
2017-12-04 本文已影响107人
58bc06151329
文前说明
作为码农中的一员,需要不断的学习,我工作之余将一些分析总结和学习笔记写成博客与大家一起交流,也希望采用这种方式记录自己的学习之旅。
本文仅供学习交流使用,侵权必删。
不用于商业目的,转载请注明出处。
服务器 CPU 信息查看
- 总核数 = 物理 CPU 个数 X 每颗物理 CPU 的核数
- 总逻辑 CPU 数 = 物理 CPU 个数 X 每颗物理 CPU 的核数 X 超线程数
在 linux 下 /proc/cpuinfo 文件中,保存了 cpu 的详细信息。
参数 | 用例值 | 说明 |
---|---|---|
processor | 0 | 系统中逻辑处理核编号 |
vendor_id | GenuineIntel | CPU 制造商 |
cpu family | 6 | CPU 产品系列代号 |
model | 58 | CPU 属于其系列中的某一代的代号 |
model name | Intel(R) Xeon(R) CPU E3-1230 V2 @ 3.30GHz | CPU 属于的名字及其编号、标称主频 |
stepping | 9 | CPU 属于制作更新版本 |
cpu MHz | 3700.523 | CPU 的实际使用主频 |
cache size | 8192 KB | CPU 二级缓存大小 |
physical id | 0 | 单个 CPU 的标号 |
siblings | 1 | 单个 CPU 逻辑物理核数 |
core id | 0 | 当前物理核在其所处 CPU 中的编号,这个编号不一定连续 |
cpu cores | 1 | 该逻辑核所处 CPU 的物理核数 |
apicid | 0 | 用来区分不同逻辑核的编号,系统中每个逻辑核的此编号必然不同,此编号不一定连续 |
fpu | yes | 是否具有浮点运算单元(Floating Point Unit) |
fpu_exception | yes | 是否支持浮点计算异常 |
cpuid level | 13 | 执行 cpuid 指令前,eax 寄存器中的值,根据不同的值 cpuid 指令返回不同的内容 |
wp | yes | 表明当前 CPU 是否在内核态支持对用户空间的写保护(Write Protection) |
flags | fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm ida arat epb pln pts dtherm fsgsbase tsc_adjust smep | 当前 CPU 支持的功能 |
bogomips | 7402.00 | 在系统内核启动时粗略测算的 CPU 速度(Million Instructions Per Second) |
clflush size | 64 | 每次刷新缓存的大小单位 |
cache_alignment | 64 | 缓存地址对齐单位 |
address sizes | 42 bits physical, 48 bits virtual | 可访问地址空间位数 |
power management | ts | 对能源管理的支持 |
- 查询系统具有多少个逻辑核
cat /proc/cpuinfo | grep "processor" | wc -l
- 查询系统 CPU 的物理核数
cat /proc/cpuinfo | grep "cpu cores" | uniq
- 查询系统CPU是否启用超线程
- 如果 cpu cores 数量和 siblings 数量一致,则没有启用超线程,否则超线程被启用。
cat /proc/cpuinfo | grep -e "cpu cores" -e "siblings" | sort | uniq
- 查询是否支持 64 位计算
- lm 指 long mode, 支持 lm 则是 64 位
- 结果大于 0, 说明支持 64 位计算
cat /proc/cpuinfo |grep flags | grep ' lm ' | wc -l
- 查看 CPU 型号
cat /proc/cpuinfo | grep name | cut -f 2 -d : | uniq -c
- 物理 CPU 数量
cat /proc/cpuinfo |grep physical | uniq -c
- 查看 CPU 是否支持硬件虚拟化
egrep --color "lm|svm|vmx" /proc/cpuinfo
kvm 虚拟机到物理 cpu 的绑定
- kvm 虚拟出来的虚拟机(vm),是主机中的进程,虚拟机的 vcpu 是进程衍生出的不同线程。
ps -eL | grep [PID]
虚拟机 vcpu 线程
- vcpu 线程运行在不同的逻辑 cpu 上。
ps -eLo ruser,pid,ppid,lwp,psr | grep [PID]
vcpu 运行在不同的逻辑处理核编号上
- vcpu 绑定物理 cpu
- 登录 ovirt 管理门户,编辑虚拟机 vm1。
- 编辑<虚拟机 → 主机 → 开始运行在>选项,选择为专有的主机。
- 编辑<虚拟机 → 资源分配 → 高级参数 → CPU Pinning 拓扑结构>,填写 vcpu 绑定公式。
0#0_1#0_2#0_3#0
- 再次查看 vcpu 线程运行情况,可以发现 vcpu 已经运行在了同一个逻辑处理核编号上,实现了绑定。