博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
KVM CPU线程等学习记录
阅读量:4516 次
发布时间:2019-06-08

本文共 1000 字,大约阅读时间需要 3 分钟。

绝大多数操作系统调度单位是线程。线程是调度和分配的基本单位,进程是资源拥有的基本单位。

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

转载于:https://www.cnblogs.com/tcicy/p/10187664.html

你可能感兴趣的文章
配置phpstudy+phpstorm+xdebug环境
查看>>
BZOJ 1079 [SCOI2008]着色方案
查看>>
[Win8.1系统]双系统
查看>>
HDU 3899 树形DP
查看>>
获取当前页面url信息
查看>>
Java容器类源码分析前言之集合框架结构(基于JDK8)
查看>>
linux下C/C++程序的内存布局
查看>>
单词计数问题
查看>>
php 魔术方法 __autoload()
查看>>
js div拖动动画运行轨迹效果
查看>>
使用Struts 2框架实现文件下载
查看>>
Recipe 1.9. Processing a String One Word at a Time
查看>>
Linux 下查看系统是32位 还是64 位的方法
查看>>
MySQL 引擎 和 InnoDB并发控制 简介
查看>>
Dave Python 练习二
查看>>
菜根谭#179
查看>>
Android 开发笔记___textvieww__跑马灯效果
查看>>
[ JS 进阶 ] 闭包,作用域链,垃圾回收,内存泄露
查看>>
GitHub注册与Git安装
查看>>
11Qt样式表
查看>>