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

  • 相关阅读:
    随笔和文章的区别
    02. 什么是 SOA?
    GOF 23种设计模式(Patterns in Java)
    ASP.NET MVC: how to include <span> in link from Html.ActionLink?
    Head First 02.观察者模式(Observer)
    ActionResult types in MVC2
    探索推荐引擎内部的秘密,第 1 部分: 推荐引擎初探
    Head First 01.策略模式(Strategy Pattern)
    SOA实施:不能忽略商业价值
    nmon analyser——生成 AIX 性能报告的免费工具
  • 原文地址:https://www.cnblogs.com/tcicy/p/10187664.html
Copyright © 2011-2022 走看看