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
KVM CPU线程等学习记录的更多相关文章
- JVM学习记录-线程安全与锁优化(二)
前言 高效并发是程序员们写代码时一直所追求的,HotSpot虚拟机开发团队也为此付出了很多努力,为了在线程之间更高效地共享数据,以及解决竞争问题,HotSpot开发团队做出了各种锁的优化技术常见的有: ...
- Android开发技术周报183学习记录
Android开发技术周报183学习记录 教程 Android性能优化来龙去脉总结 记录 一.性能问题常见 内存泄漏.频繁GC.耗电问题.OOM问题. 二.导致性能问题的原因 1.人为在ui线程中做了 ...
- (KVM连载) 8.2.3 KVM CPU性能测试方法
(KVM连载) 8.2.3 KVM CPU性能测试方法 01/08/2013MASTER 2 COMMENTS 8.2.3 性能测试方法 本节的CPU性能测试选取了SPEC CPU2006.内核编译 ...
- Quartz 学习记录1
原因 公司有一些批量定时任务可能需要在夜间执行,用的是quartz和spring batch两个框架.quartz是个定时任务框架,spring batch是个批处理框架. 虽然我自己的小玩意儿平时不 ...
- Python学习记录day5
title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...
- mono for android 学习记录
C#开发Android应用实战(全 扫描 中文版) 学习记录: 拖完控件后,不要急着按F5,需要重新生成,才能自动修改 Resource.Designer.cs 文件 1. Activity 是基于a ...
- Thrift学习记录
Thrift学习记录 Thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发.它结合了功能强大的软件堆栈和代码生成引擎,以构建在C++,Java,Python,PHP,Ruby,Erlang, ...
- ElasticSearch 学习记录之如任何设计可扩容的索引结构
扩容设计 扩容的单元 一个分片即一个 Lucene 索引 ,一个 Elasticsearch 索引即一系列分片的集合 一个分片即为 扩容的单元 . 一个最小的索引拥有一个分片. 一个只有一个分片的索引 ...
- 《java从入门到精通》学习记录
目录 <Java从入门到精通>学习记录 3 基础的基础部分: 3 一. 常量与变量 3 1. 掌握: 3 (1) .常量与变量的声明方式: 3 (2) .变量的命名规则: 3 (3) .变 ...
随机推荐
- margin重叠现象
1.上下/左右相邻的普通元素margin,不是两者相加之和,而是取最大值,这个现象叫做margin重叠. 2. 普通元素才会发生margin重叠,如果是float元素,就不会发生.margin是两者相 ...
- 原生JavaScript实现跨域
为什么需要跨域呢?这是因为我们一般的请求都是使用xhr的,但是它只能调用同一个域里面的接口,有时候,我们想要在自己的站点中调用其他站点的接口,这时候就要用到跨域了.其实,跨域并不难,我们可以通过Jav ...
- kibana 启动 关闭 和进程查找
启动kibana : nohup ./kibana & 查看启动日志 : tail -f nohup kibana 使用 ps -ef|grep kibana 是查不到进程的,主要原因大概 ...
- 逻辑回归(logic regression)的分类梯度下降
首先明白一个概念,什么是逻辑回归:所谓回归就是拟合,说明x是连续的:逻辑呢?就是True和False,也就是二分类:逻辑回归即使就是指对于二分类数据的拟合(划分). 那么什么是模型呢?模型其实就是函数 ...
- go thrift报错问题--WriteStructEnd
问题 go thrift开发过程中,多个goroutine共用一个client时,报错: panic: runtime error: index out of range goroutine 24 [ ...
- kafka重复数据问题排查记录
问题 向kafka写数据,然后读kafka数据,生产的数据量和消费的数据量对不上. 开始怀疑人生,以前奠定的基础受到挑战... 原来的测试为什么没有覆盖生产量和消费量的对比? 消费者写的有问题?反复检 ...
- 大数据离线分析平台 JSSDK数据收集引擎编写
JsSDK设计规则在js sdk中我们需要收集launch.pageview.chargeRequest和eventDuration四种数据,所以我们需要在js中写入四个方法来分别收集这些数据,另外我 ...
- Elasticsearch的数据导出和导入操作(elasticdump工具),以及删除指定type的数据(delete-by-query插件)
Elasticseach目前作为查询搜索平台,的确非常实用方便.我们今天在这里要讨论的是如何做数据备份和type删除.我的ES的版本是2.4.1. ES的备份,可不像MySQL的mysqldump这么 ...
- 【java】函数重载
重载概念(Overloading): 在同一个类中,允许存在一个以上的同名函数,主要他们的参数个数和参数类型不同即可 重载特点: 与返回值无关,只和参数类型和参数个数有关系(重载只和参数列表有关系) ...
- Set up an SSH key with Sourcetree on macOS
1. 打开 sourcetree,进入设置-账户: 2. 选择添加账户,托管主机选择 Bitbucket(或Github),再连接账号,登录已有的 Bitbucket 账号(或 Github 账号), ...