zoukankan      html  css  js  c++  java
  • KVM CPU线程等学习记录

    绝大多数操作系统调度单位是线程。线程是调度和分配的基本单位,进程是资源拥有的基本单位。
    linux下fork的叫进程
    pthread叫线程
    创建进程比线程性能要差好多5-100倍,因进程不同而异。
    进程之间共享数据较麻烦,耗费资源更多。进程之间的内存数据不可以直接访问。
    同一进程内的线程之间数据是共享的。
    多CPU之间通过主板的总线进行通信。
    1个CPU内的多核之间通过CPU内部总线进行通信。
    进程调度算法有时间片轮转调度、优先级调度、多级队列调度等
    逻辑 cpu 既可能是 cores 的个数,也可能是 core 的倍数。当它和 core 的个数相等时,表示每一个 core 就是一个逻辑 CPU,若它时 core 的 2 倍时,表示每个 core 又 enable 了超线程(Hyper-Thread)。比如:一个双核的启用了超线程的物理 cpu,其 core id 分别为 1、2,但是 sibling 是 4,也就是如果有两个逻辑 CPU 具有相同的 "core id",那么超线程是打开的。

    KVM关于CPU型号的定义在/usr/share/libvirt/cpu_map.xml可以查到,如果在virt-install的时候指定CPU的类型更好,KVM有部分针对性的CPU优化,部分应用需要特定的CPU。
    CPU热添加是centos7的一个新特性,要求宿主机和虚拟机都是centos7
    命令是virsh setvcpus vm01 5 --live #cpu增加为5个
    KVM虚拟机嵌套和VMWare原理不同,VMWare第一层是用的硬件虚拟化技术,第二层就是完全软件模拟出来的,所以VMWare只能做两层嵌套。KVM是将物理CPU的特性全部传给虚拟机,所有理论上可以嵌套N多层。
    检查是否打开nested嵌套功能 cat /sys/module/kvm_intel/parameters/nested

    openstack对KVM虚机的CPU优化可以有以下几种:
    CPU 绑核(pinning)将虚拟 CPU 和物理 CPU 逐一绑定起来
    CPU隔离(isolate)将虚拟机使用的物理 CPU 从 Linux 隔离出来
    CPU拓扑(Topology)CPU 分配尽量不要跨 NUMA

  • 相关阅读:
    从零开始入门 K8s | 有状态应用编排
    OAM 深入解读:OAM 为云原生应用带来哪些价值?
    你不得不了解 Helm 3 中的 5 个关键新特性
    CNCF 公布 2020 年 TOC 选举结果 | 云原生生态周报 Vol. 36
    调度系统设计精要
    Spring的IOC容器第一辑
    JavaScript工作体系中不可或缺的函数
    教你五步制作精美的HTML时钟
    web前端vertical-align的作用及对象详解
    JavaScript中常见的10个BUG及其修复方法
  • 原文地址:https://www.cnblogs.com/tcicy/p/10187664.html
Copyright © 2011-2022 走看看