一、KVM基础功能

  (1)支持

    硬件支持 VT-x VT-d

    系统支持 kernel > 3.5

  (2)计算机系统的子系统

    CPU 处理器

    Memory 内存

    Storage 存储

    Network 网络

    Display 显示

二、 CPU

  SMP(Symmetrical Multi-Processing),对称多处理技术,是指在一个计算机上汇集了一组处理器(多CPU),各CPU之间共享内存子系统以及总线结构。

  SMT(Simultaneous multithreading),同时多线程。SMT 可通过复制处理器上的结构状态,让同一个处理器上的多个线程同步执行并共享处理器的执行资源。

  CMP(Chip multiprocessors),即单芯片多处理器,也指多核心。其思想是将大规模并行处理器中的SMP(对称多处理器)集成到同一芯片内,各个处理器并行执行不同的进程。与CMP比较, SMT处理器结构的灵活性比较突出。

  NUMA (非统一内存访问),是一种用于多处理器的电脑记忆体设计,内存访问时间取决于处理器的内存位置。 在NUMA下,处理器访问它自己的本地存储器的速度比非本地存储器(存储器的地方到另一个处理器之间共享的处理器或存储器)快一些。

  NUMA架构在逻辑上遵循对称多处理(SMP)架构。

1、vCPU (virtual CPU)

  (1)进程模式

    用户模式 (User Mode): 主要处理I/O的模拟和管理,由QEMU实现。

    内核模式 (Kernel Mode) :主要处理高性能和高安全的指令。

    客户模式 (Guest Mode) :主要执行Guest的大部分命令。

图1  vCPU在KVM中的三种执行模式

  (2)kvm

图2 KVM系统的分层架构

2、SMP

  SMP(Symmetric Multi-Processor)对称多处理器。是指在一个计算机上汇集了一组处理器(多CPU),各CPU之间共享内存子系统以及总线结构。

3、CPU 超配

  虚拟机的 vCPU总数可以超过物理CPU数量,这个叫 CPU over-commit(超配)。KVM允许 over-commit,这个特性使得虚拟机能够充分利用宿主机的 CPU 资源,但前提是在同一时刻,不是所有的虚拟机都满负荷运行。

4、CPU 模型

  (1)CPU模型

    qemu64

    qemu32

    直接传递

    其它POWER

  (2)VMM自定义策略的CPU类型,可以提供一些高级的过滤功能,同一组硬件平台上的动态迁移更加平滑和安全。

    CPU类型存放位置及定义格式:

    more /usr/share/libvirt/cpu_map.xml | grep "model name"

<domain type='kvm'>
<cpu mode='custom' match='exact'>
<model fallback='allow'>Westmere</model>
</cpu>
</domain>

(3)使用物理机CPU类型,定义如下:

<domain type='kvm'>
<cpu mode='host-passthrough'>
</cpu>
</domain>

  (4)使用物理机CPU类型特点:

    物理CPU特性供虚拟机使用,嵌套

    公有云,客户看到物理CPU,体验会比较好

    虚拟机的迁移会有问题

(5)使用物理机CPU的虚拟机vCPU参数配置文件:

文件所在位置:/etc/libvirt/qemu/

打开文件:virsh edit centos-2-1(虚拟机名)

<vcpu placement='static'></vcpu>
<cpu mode='host-passthrough' check='partial'>
<topology sockets='' cores='' threads=''/>
</cpu>

注:CPU插槽为2,内核为4,超线程为2。

(6)使用coreduo CPU的虚拟机vCPU参数配置文件:

<vcpu placement='static'></vcpu>
<cpu mode='custom' match='exact' check='partial'>
<model fallback='allow'>coreduo</model>
<topology sockets='' cores='' threads=''/>
</cpu>

  注:CPU插槽为2,内核为4,超线程为2。

5、进程的处理器亲和性和vCPU绑定

  进程的处理器亲和性(Processor Affinity),即CPU的绑定设置,是指将进程绑定到特定的一个或多个CPU上去执行,而不允许将进程调度到其他的CPU上。

  (1)开机进入grub时,隔离1,2号CPU:

    grub add

    isolcpus=1,2

(2)查处理器编号对应的进程总数:

    ps -eLo psr | grep 0 | wc -l

    ps -eLo psr | grep 1 | wc -l

    ps -eLo psr | grep 2 | wc -l

    ps -eLo psr | grep 3 | wc –l

  (3)查CPU编号对应的进程等信息:

    ps -eLo ruser,pid,ppid,lwp,psr,args | awk '{if($5==1) print $0}'

    ps -eLo ruser,pid,ppid,lwp,psr,args | awk '{if($5==2) print $0}'

参数:

      migration:用于进程在没CPU间迁移

      kworker:用于处理workqueues

      ksoftirqd:用于调度CPU软中断的进程

      -e:显示所有进程

      -L:显示LWP(light weight process)

      -o:自定义输出

      psr:处理器编号

      lwp:线程ID

      ruser:运行进程的用户

      pid:进程ID

      ppid:父进程ID

      args:运行的命令和参数

  (4)字符安装虚拟机并绑定:

    virt-install --name=c1 --disk path=/kvm/c1.img --memory=1024 --vcpus=2 --graphics spice --location=/kvm/CentOS.iso

    ps -eLo ruser,pid,ppid,lwp,psr,args | grep qemu | grep -v grep

     处理器和vCPU绑定:

      taskset --help

      taskset -pc 1 5339

   处理器和vCPU绑定:

      virsh vcpuinfo centos7.0

      virsh vcpupin centos7.0 0 20

      virsh vcpupin centos7.0 1 21

      virsh vcpupin centos7.0 2 22

      virsh vcpupin centos7.0 3 23

openstack-KVM-vCPU的更多相关文章

  1. openStack kvm 虚拟机CPU颗粒化控制

    前一篇理解cpu topology对CPU Topology进行了学习总结,这里想总结下OpenStack下vCPU与pCPU常用的的绑定方式. 在尝试这些绑定之前,尤其是处理NUMA架构时还是建议看 ...

  2. OpenStack+kvm虚拟机xml格式解析

    配置说明 首先介绍一下配置结构: xml配置遵循<keyword> xxxxxx </keyword>的格式,即一个配置段以<keyword>开头,以</ke ...

  3. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(3)--为虚拟机指定固定ip

    之前在测试环境(centos7.2)上部署了openstack云平台(完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建),openstack在neutron组网 ...

  4. Migration workstation vms to openstack kvm

    Migration workstation vms to openstack kvm 分别分成(磁盘是否拆分,vms 是否 有多个磁盘驱动器) 1, linux迁移 vmware workstatio ...

  5. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(2)--云硬盘等后续配置

    继上一篇博客介绍了完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建,本篇继续讲述后续部分的内容 1 虚拟机相关1.1 虚拟机位置介绍 openstack上创建的 ...

  6. OpenStack, kvm, qemu-kvm以及libvirt之关系

    OpenStack, kvm, qemu-kvm以及libvirt之关系: KVM是最底层的hypervisor,它是用来模拟CPU的运行,它缺少了对network和周边I/O的支持,所以我们是没法直 ...

  7. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建

    公司在IDC机房有两台很高配置的服务器,计划在上面部署openstack云平台虚拟化环境,用于承载后期开发测试和其他的一些对内业务.以下对openstack的部署过程及其使用做一详细介绍,仅仅依据本人 ...

  8. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(4)--用OZ工具制作openstack镜像

    在部署openstack云平台环境的时候,需要上传镜像到glance. 首先下载iso镜像,这里下载了centos6.5镜像,放到/usr/local/src目录下然后用OZ工具制作openstack ...

  9. 《4》CentOS7.0+OpenStack+kvm云平台部署—配置Nova

    感谢朋友支持本博客,欢迎共同探讨交流,因为能力和时间有限,错误之处在所难免,欢迎指正! 假设转载.请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...

  10. KVM VCPU线程调度问题的讨论

    2017-11-15 今天闲着没有突然想了想VCPU线程调度的问题,具体描述如下: 当代表VCPU的线程获得控制权后,首先会通过KVM接口进入到内核,从内核进入到非根模式,那么此时站在全局调度器的点上 ...

随机推荐

  1. win8.1安装win64_11gR2_database_2of2 【INS-13001]】环境不满足最低要求问题

    1. 如图问题: 2. 修改 database\stage\cvu\cvu_prereq.xml, 添加windows 8.1 <OPERATING_SYSTEM RELEASE="6 ...

  2. GitHub-分支管理01

    参考博文:廖雪峰Git教程 1. 分支说明 分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不 ...

  3. Golang 并发简介

    并发概要 随着多核CPU的普及, 为了更快的处理任务, 出现了各种并发编程的模型, 主要有以下几种: 模型名称 优点 缺点 多进程 简单, 隔离性好, 进程间几乎无影响 开销最大 多线程 目前使用最多 ...

  4. 023合并K个链表并排序

    #include "000库函数.h" struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), n ...

  5. Angular四大核心特性

    Angular四大核心特性 Angular四大核心特性理论概述 MVC模式:它目的是为了分离视图.模型和控制器而设计出来的:其中数据模型用来储存数据,视图用来向用户展示应用程序,控制器充当模型和视图之 ...

  6. Python 进程管理工具 Supervisor 使用教程

    Supervisor 是基于 Python 的进程管理工具,只能运行在 Unix-Like 的系统上,也就是无法运行在 Windows 上.Supervisor 官方版目前只能运行在 Python 2 ...

  7. (转)ElasticSearch教程——汇总篇

    https://blog.csdn.net/gwd1154978352/article/details/82781731 环境搭建篇 ElasticSearch教程——安装 ElasticSearch ...

  8. vue指令详解和自定义指令

    在vue中,指令以v-开头,是一种特殊的自定义行间属性,指令的职责就是其表达式的值改变时相应地将某些行为应用到DOM上 指令使用的示例 在下面的运行结果中可以看到,v-html是可以解析html标签的 ...

  9. 实战Performance Monitor监测EnyimMemcached

    首先要将EnyimMemcached安装至Windows Performance Counters中. 将Enyim.Caching.dll复制到一个文件夹中 在命令行中进入.NET Framewor ...

  10. The authenticity of host 'ip (ip)' can't be established.

    问题 The authenticity of host '10.4.172.67 (10.4.172.67)' can't be established.ECDSA key fingerprint i ...