• 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

  • 相关阅读:
    随机生成手机号,QQ号,姓名...小工具类汇总
    简单的时间格式转换工具类(java)
    判断某个时间点在一个时间段内方法汇总
    AES加密解密代码(key是16位)--java
    Linux下查看CPU、内存、磁盘信息
    idea如何优雅部署项目到weblogic
    weblogic部署项目
    程序员必知的十大基础实用算法及其讲解
    Java开发工具包 ==> Hutool
    java基础-泛型举例详解
  • 原文地址:https://www.cnblogs.com/tcicy/p/10187664.html
Copyright © 2020-2023  润新知