美团网 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框架的虚拟以太网设备

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虚拟化公开课学习笔记,布布扣,bubuko.com

时间: 2025-02-01 06:55:07

美团网 KVM虚拟化公开课学习笔记的相关文章

斯坦福机器学习公开课学习笔记(1)—机器学习的动机与应用

(转载请注明出处:http://blog.csdn.net/buptgshengod) 1.背景 斯坦福机器学习公开课差不多是网上能找到的最好的机器学习入门课程了.现在一共有20节课放到网络上,博主是在网易公开课学的,那里的视频有中文字幕然后课件也很全. (地址:http://v.163.com/special/opencourse/machinelearning.html) 主讲师Andrew Ng(已经被百度诏安了)是华裔科学家,看他的课特别有亲切感.感觉他们的课跟国内老师的课区别还是挺大的

传智播客c/c++公开课学习笔记--黑客代码分析与预防

黑客代码分析与预防 笔记 [课程简介] C/C++语言是除了汇编之外,最接近底层的计算机语言,目前windows,linux,iOS,Android等主流操作系统都是用C/C++编写的,所以很多病毒.木马也都是用C/C++实现的.课程的目的就是通过C语言揭秘木马和各种远程控制软件的实现原理以及如何防护. [课程知识点] 1.木马入侵系统的方式: 2.木马入侵到宿主目标后的关键行为分析: 3.可信任端口以及端口扫描技术: 4.远程控制的实现代码实现: 5.恶意代码中使用TCP.UDP协议与防火墙穿

Andrew N.G的机器学习公开课学习笔记(一):机器学习的动机与应用

机器学习由对于人工智能的研究而来,是一个综合性和应用性学科,可以用来解决计算机视觉/生物学/机器人和日常语言等各个领域的问题,机器学习的目的是让计算机具有像人类的学习能力,这样做是因为我们发现,计算机要完成有的功能,是无法通过固定的程序实现的,例如让计算机识别手写的字迹,让计算机从不同的图片中识别出猫和人. 这门课程主要学习机器学习的算法,也需要用程序来实现这些算法,建议用Matlab或者Octave来进行编程.此外,学习本课程需要具有数理统计/线性代数和数据结构等方面的知识. 机器学习可以用如

传智播客c/c++公开课学习笔记--Linux网络流媒体服务器的核心代码揭秘

Xinetd 从守护进程的概念可以看出,对于系统所要通过的每一种服务,都必须运行一个监听某个端口连接所发生的守护进程, 这通常意味着资源浪费. 为了解决这个问题,Linux引进了"网络守护进程服务程序"的概念.xinted(extended InterNET daemon) xinetd同时监听多个指定的端口,接受用户请求时,根据请求端口,启动不同的网络服务进程来处理这些用户请求. 可以把xinetd看做一个管理启动服务的管理服务器,它决定把一个客户请求交给哪个程序处理,然后启动相应的

传智播客c/c++公开课学习笔记--邮箱账户的破解与邮箱安全防控

一.SMTP协议 SMTP(SimpleMail Transfer Protocol)即简单邮件传输协议. SMTP协议属于TCP/IP协议簇,通过SMTP协议所指定的server,就能够把E-mail寄到收信人的server上. SMTPserver则是遵循SMTP协议的发送邮件server,用来发送或中转发出的电子邮件. SMTP使用TCP提供的可靠的传输数据服务把邮件消息从发信人的邮件server传送到收信人的邮件server. 跟大多数应用层协议一样,SMTP也存在两个 端:在发信人的邮

MIT线性代数公开课学习笔记第16~20课

十六.投影矩阵和最小二乘 给出\(n\)组\(m-1\)个自变量的数据点(用\(n\times m\)大小的矩阵\(A\)表示,其中第一列均为1,代表常数项),以及它们的真实取值(用n维列向量\(b\)表示),现在需要用一个\(m-1\)元未知数的线性方程来拟合这组数据点.可以用非齐次线性方程组\(AX=b\)表示. 一般来说这个方程组是无解的,即\(b\notin C(A)\),我们需要找到一个近似的\(\hat b,\hat X\),使得\(A\hat X=\hat b\).其中\(b_i\

斯坦福大学机器学习公开课学习—1.机器学习的动机与应用

斯坦福大学机器学习公开课学习—1.机器学习的动机与应用 介绍了课程主要内容包含以下4点 1.supervised learning(监督学习) 2.learning theory(学习理论) 3.unsupervised learning(非监督学习) 4.reinforcement learning(强化学习) 其中介绍了很多例子,有一些例子还是非常有趣的: 而且通过课程内容我发现机器学习的应用范围真的比之前想象的大多了,而且现在也的确在很多领域取得了很大的成就. 监督学习介绍了回归问题,分类

斯坦福iOS7公开课10笔记及演示Demo

这一节主要介绍了多线程中的串行队列以及滚动视图UIScrollView. 一 .多线程 这一节只是简单介绍了多线程的串行队列,即把任务加入线程队列后按顺序逐步执行. (1)目前iOS多线程提供的方法主要是GCD和NSOperation,前者是C语言级别的,后者是经过封装,更具有面向对象特性的API. (2)UI交互操作都是在主线程进行,所以为了保证交互过程的流程舒适,类似于下载等耗时操作就需要主线程外执行,否则将出现用户无法对手机进行操作的场景. 这时通过多线程,就可以使下载图片等耗时操作单独进

斯坦福iOS7公开课4-6笔记及演示Demo

1.变量类型别滥用id,如果不仔细容易在程序执行时引发错误,因为在编译阶段编译器只是检测变量对象所属类型,尤其是类型为id时代表任何类型都可以通过检查,但不会检测变量对象调用的方法,这样当对象所属类不包含所写的调用方法时,编译通过,但在程序运行时才会报错. 2.简单介绍了框架自带的集合.字体等. 3.通过使用NSAttributedString可以让屏幕显示的字体样式更丰富,设置各种样式等,详细参见附件的演示Demo:http://files.cnblogs.com/colinhou/Attri