SlideShare a Scribd company logo
源力量公

课

KVM性能优化
美团开放平台
邱剑
qiujian@meituan.com
https://mos.meituan.com
2013/10/22
于美团
•
•
•
•

放平台

2012年初规
基于OpenStack架构,部分组件自主
2012年9月

始逐步

2013年5月推出美团

发

移在线服务系统到云主机
放服务(https://

mos.meituan.com),云主机为第一款产品

•

美团云主机基于KVM虚拟化技术
Agenda
• CPU
• context switch
• cache
• Memory
• IO
• Storage
• Network
Context Switch - Intel VT-x
Virtualization Technology

ring 0
kernel mode

ring 3
User mode
Context Switch - Intel VT-x
Virtualization Technology

ring 0
kernel mode

VMM ring 0
kernel mode

VMM ring 3
User mode

ring 3
User mode

VM ring 0
Kernel mode
VM ring 3
User mode
Context Switch - Intel VT-x
Virtualization Technology

ring 0
kernel mode

VMM ring 0
kernel mode

VMM ring 3
User mode

ring 3
User mode

VM ring 0
Kernel mode
VM ring 3
User mode

设置:宿主机BIOS中

启,目前默认

启
Cache - Node Binding
Cache - Node Binding
• 将qemu进程绑定到特定的CPU node或core上
——避免L2/L3 Cache miss
Cache - Node Binding
• 将qemu进程绑定到特定的CPU node或core上
——避免L2/L3 Cache miss

• Node binding v.s core binding
Cache - Node Binding
• 将qemu进程绑定到特定的CPU node或core上
——避免L2/L3 Cache miss

• Node binding v.s core binding
• 设置:
Cache - Node Binding
• 将qemu进程绑定到特定的CPU node或core上
——避免L2/L3 Cache miss

• Node binding v.s core binding
• 设置:
• taskset
Kvmopt osforce
Agenda
• CPU
• Memory
• Addressing
• Space
• IO
• Storage
• Network
Addressing - EPT (SLAT)
• Extended page tables/second level address
translation
Vaddr
VMM
(Page table)

Paddr
Addressing - EPT (SLAT)
• Extended page tables/second level address
translation
Vaddr
VMM
(Page table)

VM Vaddr
VM Page table

VM Paddr/VMM Vaddr
VMM Page table

Paddr
VMM Paddr
Addressing - EPT (SLAT)
• Extended page tables/second level address
translation
Vaddr
VMM
(Page table)

VM Vaddr
VM Page table

VM Paddr/VMM Vaddr
VMM Page table

Paddr
VMM Paddr
设置:宿主机BIOS中

启,目前默认

启
Addressing - HugePage
Addressing - HugePage
•

少page table尺寸,降低查找缓存(TLB)的cache-miss,加速VM内存地址
转换
Addressing - HugePage
•

少page table尺寸,降低查找缓存(TLB)的cache-miss,加速VM内存地址
转换

•

默认Page size: 4KB/Hugepage size: 2M
Addressing - HugePage
•

少page table尺寸,降低查找缓存(TLB)的cache-miss,加速VM内存地址
转换

•
•

默认Page size: 4KB/Hugepage size: 2M

Transparent hugepage: kernel进程khugepaged周期性扫描内存,自动将
地址连续可合并的普通4KB page合并为2MB Hugepage
Addressing - HugePage
•

少page table尺寸,降低查找缓存(TLB)的cache-miss,加速VM内存地址
转换

•
•

默认Page size: 4KB/Hugepage size: 2M

Transparent hugepage: kernel进程khugepaged周期性扫描内存,自动将
地址连续可合并的普通4KB page合并为2MB Hugepage

•

设置:
Addressing - HugePage
•

少page table尺寸,降低查找缓存(TLB)的cache-miss,加速VM内存地址
转换

•
•

默认Page size: 4KB/Hugepage size: 2M

Transparent hugepage: kernel进程khugepaged周期性扫描内存,自动将
地址连续可合并的普通4KB page合并为2MB Hugepage

•

设置:

•

sysctl -w sys.kernel.mm.transparent_hugepage.enabled=always
Addressing - HugePage
•

少page table尺寸,降低查找缓存(TLB)的cache-miss,加速VM内存地址
转换

•
•

默认Page size: 4KB/Hugepage size: 2M

Transparent hugepage: kernel进程khugepaged周期性扫描内存,自动将
地址连续可合并的普通4KB page合并为2MB Hugepage

•

设置:

•
•

sysctl -w sys.kernel.mm.transparent_hugepage.enabled=always
sysctl -w sys.kernel.mm.transparent_hugepage.defrag=always
Kvmopt osforce
Space - KSM
• Kernel same-page merging
• kernel进程ksmd周期性扫描内存,将内容相同的
page合并,

少物理内存使用量
Agenda
• CPU
• Memory
• IO
• Storage
• Network
Full virtualization v.s. paravirtualization

Guest VM

Guest VM

Drivers
Traps

Virtual Hardware

Interface

Virtual Hardware

Qemu

Qemu
kernel

kernel

Hardware

Hardware
virtio
半虚拟化I/O设备框架,标准化guest与host之间
数据交换接口,简化流程,
升虚拟机I/O效率

少内存拷贝,提
Agenda
• CPU
• Memory
• IO
• Storage
• Network
virtio-blk
• 基于virtio框架的虚拟PCI磁盘设备
• /dev/vdx
virtio-blk
• 基于virtio框架的虚拟PCI磁盘设备
• /dev/vdx
-drive file=win_xp.img,if=none,id=drive_0,cache=none,aio=native
-device virtio-blk-pci,drive=drive_0,bus=pci.0,addr=0x5
virtio-SCSI
• 基于virtio框架的虚拟SCSI磁盘设备
• /dev/sdx
virtio-SCSI
• 基于virtio框架的虚拟SCSI磁盘设备
• /dev/sdx
-drive file=win_xp.img,if=none,id=drive_0,cache=none,aio=native
-device virtio-scsi-pci,drive=drive_0,bus=pci.0,addr=0x5
缓存模式
Guest User Space
Guest FS page cache

Brk Driver writeback cache

Qemu
Host FS page cache

Kernel
缓存模式(cont)
writeback
page cache
cache

写同步

说明

(flush)

directsync

NO

NO

N/A

无优化

writethrough

YES

NO

YES

依靠Host操作系统优化IO性能
闭Host page cache.

none/off

NO

YES

N/A

优化写性能,并保证安全性

writeback

YES

YES

YES

优化读写性能,可能丢失数据

unsafe

YES

YES

NO

优化读写行

干,不保证数据安全

-drive file=win_xp.img,if=none,id=drive_0,cache=none,aio=native
-device virtio-blk-pci,drive=drive_0,bus=pci.0,addr=0x5
Kvmopt osforce
Native AIO

• Native aio: kernel AIO
• threaded aio: user space AIO emulated by posix
thread workers
Native AIO

• Native aio: kernel AIO
• threaded aio: user space AIO emulated by posix
thread workers

-drive file=win_xp.img,if=none,id=drive_0,cache=none,aio=native
-device virtio-blk-pci,drive=drive_0,bus=pci.0,addr=0x5
块设备IO调度器
cfq

per-process
IO queue

per-device
deadline
IO queue

较好公平性
较低aggregate throughput

较好实时性,较好aggregate throughput
不

公平,容易出现VM starvation
块设备IO调度器
cfq

per-process
IO queue

per-device
deadline
IO queue

较好公平性
较低aggregate throughput

较好实时性,较好aggregate throughput
不

公平,容易出现VM starvation

sysctl -w sys.block.sdb.queue.scheduler=cfq
Agenda
• CPU
• Memory
• IO
• Storage
• Network
virtio-net
• 基于virtio框架的虚拟以太网设备
virtio-net
• 基于virtio框架的虚拟以太网设备
-netdev type=tap,id=pub226,ifname=pub226,vhost=on,script=up.sh,downscript=down.sh
-device virtio-net-pci,netdev=pub226,mac=00:02:dc:04:59:36,bus=pci.0,addr=0xf
•

vhost_net
内核进程vhost_xxx负责tap设备和guest virtio queue之间的数据交换,
少qemu通过用户态和tap设备交换数据的system call和内存拷贝

qemu pid=5489
guest VM
virtqueue

vnic

tap0
vSwitch
nic

kernel
•

vhost_net
内核进程vhost_xxx负责tap设备和guest virtio queue之间的数据交换,
少qemu通过用户态和tap设备交换数据的system call和内存拷贝

qemu pid=5489

qemu pid=5489

guest VM
virtqueue

guest VM

vnic

virtqueue

tap0

tap0

vSwitch

vnic

vSwitch

nic

kernel

nic

vhost_5489

kernel
•

vhost_net
内核进程vhost_xxx负责tap设备和guest virtio queue之间的数据交换,
少qemu通过用户态和tap设备交换数据的system call和内存拷贝

qemu pid=5489

qemu pid=5489

guest VM
virtqueue

guest VM

vnic

virtqueue

tap0

tap0

vSwitch

vnic

vSwitch

nic

kernel

nic

vhost_5489

kernel

-netdev type=tap,id=pub226,ifname=pub226,vhost=on,script=up.sh,downscript=down.sh
-device virtio-net-pci,netdev=pub226,mac=00:02:dc:04:59:36,bus=pci.0,addr=0xf
Kvmopt osforce
其他优化选项
• CPU: scheduler
• Memory: NUMA
• Storage: PCI-passthrough
• Network: SR-IOV, PCI-passthrough
• 提升硬件指标
Thank you
Q&A
https://mos.meituan.com

More Related Content

PDF
美团技术团队 - KVM性能优化
美团点评技术团队
 
PDF
Ceph Day Shanghai - Ceph in Chinau Unicom Labs
Ceph Community
 
PDF
Design realization and application of RBD NBD - Wang Li
Ceph Community
 
PDF
Ceph in UnitedStack
Rongze Zhu
 
PPTX
應用Ceph技術打造軟體定義儲存新局
Alex Lau
 
PPT
Traffic server overview
qianshi
 
PDF
Ceph perf-tunning
Yang Guanjun
 
PDF
Bypat博客出品-服务器运维集群方法总结3
redhat9
 
美团技术团队 - KVM性能优化
美团点评技术团队
 
Ceph Day Shanghai - Ceph in Chinau Unicom Labs
Ceph Community
 
Design realization and application of RBD NBD - Wang Li
Ceph Community
 
Ceph in UnitedStack
Rongze Zhu
 
應用Ceph技術打造軟體定義儲存新局
Alex Lau
 
Traffic server overview
qianshi
 
Ceph perf-tunning
Yang Guanjun
 
Bypat博客出品-服务器运维集群方法总结3
redhat9
 

What's hot (20)

PDF
Ceph intro
Yang Guanjun
 
PDF
Bypat博客出品-服务器运维集群方法总结
redhat9
 
PDF
Cephfs架构解读和测试分析
Yang Guanjun
 
PDF
Hacking Nginx at Taobao
Joshua Zhu
 
PDF
豆瓣网技术架构变迁
reinhardx
 
PDF
Sheepdog内部实现机制
Liu Yuan
 
PDF
阿里CDN技术揭秘
Joshua Zhu
 
PDF
Bypat博客出品-服务器运维集群方法总结2
redhat9
 
PDF
Sheepdog介绍
Liu Yuan
 
PDF
Ceph Day Beijing - Leverage Ceph for SDS in China Mobile
Danielle Womboldt
 
PDF
Apache trafficserver
Din Dindin
 
PDF
Kubernetes use-ceph
Yang Guanjun
 
PDF
Ceph monitor-op
Yang Guanjun
 
PDF
OpenStack Resource Scheduling
Guangya Liu
 
PDF
一个 Mongodb command 的前世今生
dennis zhuang
 
PDF
MySQL多机房容灾设计(with Multi-Master)
Lixun Peng
 
PDF
吴岷 视频Cdn分发、调度与服务的探讨
drewz lin
 
PPTX
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
Will Huang
 
PPTX
AKS 與開發人員體驗 (Kubernetes 大講堂)
Will Huang
 
PPTX
对MySQL的一些改进想法和实现
Lixun Peng
 
Ceph intro
Yang Guanjun
 
Bypat博客出品-服务器运维集群方法总结
redhat9
 
Cephfs架构解读和测试分析
Yang Guanjun
 
Hacking Nginx at Taobao
Joshua Zhu
 
豆瓣网技术架构变迁
reinhardx
 
Sheepdog内部实现机制
Liu Yuan
 
阿里CDN技术揭秘
Joshua Zhu
 
Bypat博客出品-服务器运维集群方法总结2
redhat9
 
Sheepdog介绍
Liu Yuan
 
Ceph Day Beijing - Leverage Ceph for SDS in China Mobile
Danielle Womboldt
 
Apache trafficserver
Din Dindin
 
Kubernetes use-ceph
Yang Guanjun
 
Ceph monitor-op
Yang Guanjun
 
OpenStack Resource Scheduling
Guangya Liu
 
一个 Mongodb command 的前世今生
dennis zhuang
 
MySQL多机房容灾设计(with Multi-Master)
Lixun Peng
 
吴岷 视频Cdn分发、调度与服务的探讨
drewz lin
 
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
Will Huang
 
AKS 與開發人員體驗 (Kubernetes 大講堂)
Will Huang
 
对MySQL的一些改进想法和实现
Lixun Peng
 
Ad

Viewers also liked (20)

PDF
Perkembangan sejarahbpr
kazamajin777
 
PPT
Повторение и обобщение пройденного материала
МКОУ СОШ № 1 г. Сим
 
PDF
Technical Analysis: Oscillators by NSFX
NSFX
 
PPT
Что мы знаем о Москве
МКОУ СОШ № 1 г. Сим
 
PPTX
Pertemuan 16
mutmainnamaruru
 
PPTX
A2 level evaluation
Billysmedia
 
PDF
2010 DFC Taiwan-Chi 051 bye!bye!小宅童!
dfctaiwan2010
 
PPTX
國防報告26 27 31
TFGYi12
 
PPT
Parts of speech
Mohammednayeem
 
PDF
Brand Quarterly 18 Highlights
Andrew Vesey
 
PPTX
Html styles
Micah Fuentes
 
PDF
Manifest de l’Assemblea de Personal Docent Interí i Substitut
Ensenyament
 
PDF
100 abstracts of e patient. Fattori
Giuseppe Fattori
 
PPTX
Single sex schools
loezakareli
 
PPT
Lecture02
nomio0703
 
PPTX
Contabilidad estado de resultados
Victor Ahmed Jimenez Hernández
 
PPT
Число 2. Цифра 2
МКОУ СОШ № 1 г. Сим
 
PPT
Logeion 3 gevren, trigger en crisis
Henri Beunders
 
PPTX
Com descarregar musica acbat per presentar 1
silviaprofe56
 
Perkembangan sejarahbpr
kazamajin777
 
Повторение и обобщение пройденного материала
МКОУ СОШ № 1 г. Сим
 
Technical Analysis: Oscillators by NSFX
NSFX
 
Что мы знаем о Москве
МКОУ СОШ № 1 г. Сим
 
Pertemuan 16
mutmainnamaruru
 
A2 level evaluation
Billysmedia
 
2010 DFC Taiwan-Chi 051 bye!bye!小宅童!
dfctaiwan2010
 
國防報告26 27 31
TFGYi12
 
Parts of speech
Mohammednayeem
 
Brand Quarterly 18 Highlights
Andrew Vesey
 
Html styles
Micah Fuentes
 
Manifest de l’Assemblea de Personal Docent Interí i Substitut
Ensenyament
 
100 abstracts of e patient. Fattori
Giuseppe Fattori
 
Single sex schools
loezakareli
 
Lecture02
nomio0703
 
Contabilidad estado de resultados
Victor Ahmed Jimenez Hernández
 
Число 2. Цифра 2
МКОУ СОШ № 1 г. Сим
 
Logeion 3 gevren, trigger en crisis
Henri Beunders
 
Com descarregar musica acbat per presentar 1
silviaprofe56
 
Ad

Kvmopt osforce