美团网 KVM虚拟化公开课学习笔记
KVM优化技术,美团开放平台--邱剑
基于KVM现有选项做一些优化。视频地址:http://www.osforce.cn/course/77/learn#lesson/80
CPU调优:
1、Context switch(用户态到内核态的优化)。ring0->nernel mode,ring 3->user mode;
设置:宿主机BIOS中开启intel VT-X
2、缓存优化 Cache-Node Binding
将qemu进程绑定到特定的CPU node或者core上---避免L2/L3Cache miss
Node binding VS core binding
设置:task set
Memory调优
地址Address转换和物理空间Space优化
1、Addressing-EPT(SLAT)硬件加速
2、Addressing-HugePage 降低Page table尺寸,降低查找缓存(TLB)的Cache-miss,加速VM内存地址转换;默认PageSize为4KB/ HugePage size为2M;
Transparent hugepage:kernel进程khugepaged周期性扫描内存,自己主动将地址连续可合并的普通4KB page合并为2MB Hugepage.社会自方法:sysctl -w sys.kernel.mm.transparent_huge....
3、对空间的优化 Space-KSM:kernel same-page merging
kernel进程ksmd周期性扫描内存,将内容同样的Page合并,降低物理内存使用量
I/O调优:
1、Storage 2、Network间数据交换借口,简化流程
full virtualization技术无需改动Guest OS,则不存在虚拟化层和Guest OS层的特别配合导致影响效率;
virtio:半虚拟化I/O设备框架。标准化Guest和host间数据交换借口。简化流程。降低内存拷贝。提升虚拟机I/O效率
1、Storage
virtio-blk:基于virtio框架的虚拟PCI磁盘设备;
/dev/vdx
virtio-scsi:基于virtio框架的虚拟SCSI磁盘设备:/dev/sdx
缓存模式调整
Native AIO:kernel AIO 2%~3%的优化性能。命令行參数中改动;
块设备IO调度器优化(通过sysctl -w sys.block.sdb.queue.scheduler...):
Network优化:
1、virtio-net:基于virtio框架的虚拟以太网设备
osf_v3.2.0" alt="" style="border:0px; max-width:100%">
vhost_net优化:内核进程vhost_XXXX
其它优化选项:
1、CPU:scheduler
2、Memory:NUMA
3、Storage:PCI-passthrough
4、Network:SR-IOV,PCI-Kernel
5、提升硬件指标--终级方案
相关问题
1、VT-X作用:context的上下文切换加速,用户态到内核态的高速切换。以提升其性能;
2、IO隔离和网络隔离QoS:IO隔离通过virtio-blk进行设定,有两种方式
网络隔离对带宽资源进行隔离;
3、Cgroup能够设置每一个KVM QEMU进程或线程吗?--能够找到相应的QEMU pid。对该PID进行限制,或者用libvirt会更简单
4、美团95%以上的业务都在Openstack上。
5、基于Openswitch做带宽调整;
6、openstack中KVM的恢复机制?---snapshot方式,但占用空间较大。
7、使用千兆网络带宽,没有使用分布式文件系统
8、监控:通过在Host中通过脚本进行监控
美团网 KVM虚拟化公开课学习笔记的更多相关文章
- LR 算法总结--斯坦福大学机器学习公开课学习笔记
在有监督学习里面有几个逻辑上的重要组成部件[3],初略地分可以分为:模型,参数 和 目标函数.(此部分转自 XGBoost 与 Boosted Tree) 一.模型和参数 模型指给定输入xi如何去 ...
- Andrew N.G的机器学习公开课学习笔记(一):机器学习的动机与应用
机器学习由对于人工智能的研究而来,是一个综合性和应用性学科,可以用来解决计算机视觉/生物学/机器人和日常语言等各个领域的问题,机器学习的目的是让计算机具有像人类的学习能力,这样做是因为我们发现,计算机 ...
- Web Mining and Big Data 公开课学习笔记 ---lecture1
1.1 LOOK Finding "stuff" on the web or computer or room or hidden in data Finding documen ...
- Web Mining and Big Data 公开课学习笔记 ---lecture0
0.1 课程主要内容:Big data technologies , Machine Learning and AI 0.6 OUTLINE: predict the future using ...
- 传智播客c/c++公开课学习笔记--邮箱账户的破解与邮箱安全防控
一.SMTP协议 SMTP(SimpleMail Transfer Protocol)即简单邮件传输协议. SMTP协议属于TCP/IP协议簇,通过SMTP协议所指定的server,就能够把E-mai ...
- 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记1 IOS8概述
首先感谢网易公开课和SwiftV课堂的朋友们辛苦翻译,这个系列是我学习斯坦福IOS8公开课的个人心得体会和笔记,希望能给大家带来启发. 首先我们要知道IOS系统中的结构情况,从贴近硬件的底层到贴近用户 ...
- 【英宝通Unity4.0公开课学习 】(一)资源管理
经过多次面试后发现自己对Unity3D的框架缺乏一个整体的认识. 而前面由于离职等原因总是忙于修修补补,疲于奔命,感觉相当疲惫. 还好,后来经过调整,开始淡定了起来.得特别感谢一本书哇:<高效人 ...
- KVM虚拟化知识的一些笔记
一.KVM介绍 KVM:运行在内核空间,提供CPU 和内存的虚级化,以及客户机的 I/O 拦截.Guest 的 I/O 被 KVM 拦截后,交给 QEMU 处理. QEMU:修改过的为 KVM 虚机使 ...
- iOS菜鸟成长笔记(3)——斯坦福公开课学习(1)
一.iOS四层结构 1.Core OS 是用FreeBSD和Mach所改写的Darwin, 是开源.符合POSIX标准的一个Unix核心.这一层包含或者说是提供了整个iPhone OS的一些基础功能, ...
随机推荐
- [转]java处理高并发高负载类网站的优化方法
本文转自:http://www.cnblogs.com/pengyongjun/p/3406210.html java处理高并发高负载类网站中数据库的设计方法(java教程,java处理大量数据,ja ...
- Java系列学习(八)-继承
1.代码块 (1)在java中,使用 { } 括起来的代码 被称为代码块 (2)分类: A:局部代码块 [局部位置] [作用:用于限定 变量的生命周期] B:构造代码块 [在类中的成员位置,用{}括起 ...
- Java_注解之一
注解可以替换复杂的hbm.xml文件,使得程序的开发大大简化 @Override :子类重写父类方法 @Test :junit测试 @Before :测试之前执行 @SuppressWarnin ...
- Criteria 查询
Criteria.Criterion接口和Expression类组成,他支持在运行时动态生成查询语句. Criteria查询是Hibernate提供的一种查询方式 Hibernate检索方式: PO ...
- 简单的KKL诊断线~~~自己在家都可以制作obd诊断接口了 ~~
简单的KKL诊断线~~~自己在家都可以制作~~ 适合bmw 07年以前的车型,因为新的车型使用D-can作为诊断接口,所以不能再使用kkl诊断接口不过SB开头的宝马3系还是可以使用的 更多内容欢迎查看 ...
- ie9以下的浏览器兼容性问题
.bind不兼容的问题Function.prototype.bind = function () { var fn = this, args = Array.prototype.slice.call( ...
- 转:java中static、final、static final的区别
http://blog.csdn.net/qq1623267754/article/details/36190715 final可以修饰:属性,方法,类,局部变量(方法中的变量) final修饰的属性 ...
- Android studio 中R.menu的创建
对于Android开发中的menu没有声明的情况: 首先,将鼠标定位到红色的menu上面, 然后,Alt+enter组合键,建立文件menu, 然后将以下代码复制进去: <item androi ...
- SQL基本操作——case end
case end进行多条件的判断 --查看Person表 select * from Person --对math字段进行条件判断 select name,数学成绩= case then '优' th ...
- microsoft ajax registered - to fix microsoft ajax update panel post back
<dnn:DnnScriptBlock runat="server"> <script type="text/javascript"& ...