Kata containers性能调优探索与实践_第1页
Kata containers性能调优探索与实践_第2页
Kata containers性能调优探索与实践_第3页
Kata containers性能调优探索与实践_第4页
Kata containers性能调优探索与实践_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Kata containers 2.0 性能调优探索与实践技术创新,变革未来目录移动云与kata containers的联系选择kata作为安全容器方案的考量kata的架构与网络模型概述性能调优探索与优化思路分享展望Q/A移动云与Kata Containers的联系考量 - 安全容器方案对比安全容器方案实现方式隔离方式性能、轻量化通用、灵活性适用场景使用的厂商Google gVisor用户态内核拦截系统调用IO、网络性能不佳较低,仅支持有限的 系统调用,不通用ServerlessGoogleAWS Firecracker轻量级虚拟化虚拟化高一般,不完整的虚拟 化,不够通用Serverlessa

2、ws、ucloudKata Containers轻量级虚拟化虚拟化高高,支持多种轻量级 虚拟化hypervisor多种需求场景Baidu、Huawei、 Ant Financial、 Alibaba这里仅对比了3种较为主流的安全容器方案总结:Kata contaienrs灵活性高,可以根据自己的需求场景选择合适的hypervisor,一套方案能覆盖多种场景:普通场景、 serverless、边缘端相比于gvisor,kata性能更好。相比于firecracker,更加云原生。直接使用gvisor和firecracker的容器方案厂商较少,kata容器国内参与的厂商较多。考量 - 我们的计划、打

3、算Kata 整体架构crictlcontainerdcri plugincontainerd-shim-kata-v2containerVfirecrackeragentcontainercontainercontainercontainerd-shim-runc-v1VqemuagentcontainercontainercontainerVcloud-hypervisoragentcontainercontainercontainerkubeletv2 APIShim v1 APIrunc runtimekata runtimecontainerd-shim-runc-v1containe

4、rcontainerd-shim-kata-v2containerd-shim-kata-v2Kata 网络模型host netnstccontainerd-shim-kata-v2container netns1qemu/kvmagentcontainercontainercontainereth0if353veth9527ef07if3containerd-shim-kata-v2container netns2qemu/kvmagentcontainercontainereth0containerveth52fb9507if3eth0bridgeveth pairveth pairout

5、side networktcfiltermacvtapeth0if341tcfiltermacvtapgrpc on vsock技术要点总结:主要解决的问题:现有容器网络模型 与现有虚拟机网络模型不匹配的问题,将CNI网络和虚机网络对接。veth和tap连通方案:tcfilter:使用tc rules将veth的 ingress和egress队列分别对接 tap的egress和ingress队列实现 veth和tap的直连macvtap:现有虚拟网卡连通技术grpc on vsock优化思路:针对kata重新设计CNI直接打通cni0网桥与tap设备,实现 思路:直接attach tap到cn

6、i0基于dpdk实现,cni0变为一个 vswitch,与VM中eth0,基于 dpdk + vhost-user都是现有虚拟化中比较成熟的方案,重点在于如何针对kata设计CNI关于kata容器的考量我们从哪些维度去考量kata containers?容器启动速度CPU、内存性能损耗资源开销网络性能文件IO性能整体表现1 容器启动速度CPU: Intel(R) Xeon(R) CPU E5-2650 v2 2.60GHzHost kernel:4.19.0-193.1.3.bclinux.x86_64磁盘:机械硬盘测试命令:test1: time ctr run -runtime io.co

7、ntainerd.kata.v2 -t -rm docker.io/library/busybox:latest hello uname atest2: ctr run -runtime io.containerd.kata.v2 -t -rm docker.io/library/busybox:latest dmesgruntime + storage driver耗时runc + overlayfs0.5srunc + devmapper1.3skata + virtio-9p0.8skata + virtio-fs1.1skata + devmapper1.5s说明:test1中测试使用

8、的qemu,测出来的时间实际上是容器启动 + 执行命令 + 容器销毁的总时间test1中virtiofs 比virtio9p多耗时0.2s,virtiofs需要启动virtiofd,多出来的0.2s是virtiofsd启动、销毁时间开销hypervisor耗时kata + qemu347ms (kernel) + 115ms (userspace) = 462mskata + cloud-hypervisor272ms (kernel) +79ms (userspace) = 352mskata + firecracker176ms (kernel) + 137ms (userspace) =

9、 314mstest1: 测试启动销毁总耗时test2: vm启动时间容器启动速度kata container启动时间构成分析:Step1: qemu启动 + virtiofsd (vhost-user-fs server)启动 + kvm创建vm资源Step2: guest os内核态:kernel bootupStep3: guest os用户态:systemd + agent启动Step4: vm中agent创建container + container启动调优、优化思路:使用轻量化hypervisor,好处是进一步精简了VM的设备模型,减少了内核中设备初始化时间开销开启vm templ

10、ate,将Step1 Step3变为了vm template clone and resume,减少了总的时间开销host kernel打补丁加固:df12eb6d6cd9 (net: virtio_vsock: Enhance connection semantics“)使用固态硬盘作为物理存储,加快文件读取2 CPU、内存性能损耗OCI runtimeCPU损耗Mem损耗runc0.5% 0.5 %kata2%1 %CPU: Intel(R) Xeon(R) CPU E5-2650 v2 2.60GHzHost kernel:4.19.0-193.1.3.bclinux.x86_64Pod

11、规格:4c4g测试命令:CPU损耗:kubectl exec -ti $pod - sysbench cpu runMem损耗:kubectl exec -ti $pod - sysbench memory -memory-block-size=4k -memory-total-size=4G run性能损耗低原因:高版本的kernel kvm模块、qemu代码做了优化,虚拟化的开销 1.5%3 资源开销CPU: Intel(R) Xeon(R) CPU E5-2650 v2 2.60GHzHost kernel:4.19.0-193.1.3.bclinux.x86_64Pod规格:4c4g测

12、试命令:ctr run -runtime io.containerd.runc.v1 -rm -t docker.io/library/busybox:latest helloshcat /proc/$vm_pid/state |grep i vmrsshypervisorMem Overheadqemu142820 kBcloud-hypervisor255428 kBfirecracker88276 kB4 网络性能调优、优化思路:开启虚拟网卡多队列(kata支持,但存在“缺陷”,默认单vcpu,单队列,需要 改进)虚机内部中断均衡(实测表现性能提升不明显)虚拟网卡ring buffer长

13、度默认是256,建议修改为1024 18.718.115.817.9151416171819网卡:2个万兆卡组mode 4的bond,理论带宽是20Gb/sk8s网络插件: flannel,backend为vxlanPod规格: 4c4g测试命令:kubectl exec ti $pod - - iperf3 c $server P 4网络性能-带宽(GB/s)barekata(vhost-net)单队列runckata(vhost-net)多队列Runtime带宽(GB/s)bare18.7runc18.1kata vhost-net单队列15.8kata vhost-net多队列17.95

14、 文件IO性能磁盘:机械硬盘Pod规格:4c4g测试命令:fio -directory=/testdir -rw=$rw -bs=$bs -size=4G -numjobs=4 -iodepth=128 -runtime=30 -direct=1 -ioengine=libaio -group_reporting -name=rand$rw_$bs_test参数:带宽测试:bs=128k,顺序读、顺序写iops测试:bs=4k,随机读、随机写调优、优化思路:使用device mapper作为存储驱动,性能较好且稳定,缺 点是排查问题相对复杂打开iothread使用高性能固态盘、或是上spdk遇

15、到的问题/疑问:virtio-fs cache设为none后,测试发现没有生效,还 是会使用host page cachevirtio-9p无法关闭cache500450400350300250200150100500随机读随机写barerunc+devmapperrunc+overlayfskata + devmapper125130135140145150155顺序读顺序写IO性能测试 带宽(MB/s)barerunc+device mapperrunc+overlayfsIOPS性能测试kata + device mapper6 nginx性能runtime&rootfsnginx 1 workerrunc16948.77 req/skata + virtio-9p1181.99 req/skata + virtio-fs3786.81 req/sKata + devmapper8854.39 req/s调优、优化思路:针对nginx、redis、mysql不同类型的具体应用,来设置内核调优参数使用高性能固态硬盘nginx压测P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论