Kubernetes 1.16 与 1.14性能对比
测试环境
- 阿里云 ACK 1.16.6 3master 3worker(4c 8g) 独占版, kubemark 模拟 100 个 node;
- 阿里云 ACK 1.14.8 3master 3worker(4c 8g) 独占版, kubemark 模拟 100 个 node。
测试指标
PodstartuplatencySaturate(饱和测试)
在 1 个 namespace 下创建 replicas 为 3000 的 deployment,记录每个 pod 所需时间,按照时间大小排序后得到(50 90 99 百分点结果)。
Podstartuplatencylatency(存量测试)
在已创建 3000 个 pod 的场景下,连续创建 500 个 replicas 为 1 的 deployment,测试 pod 的创建时间。
吞吐量
在创建 pod 的过程中,测试每秒创建的 pod 个数。
api 响应时间
在整个测试过程(创建 pod,删除 pod)中,api-server 收到请求到响应的时间汇总,按 verb、resouce、scope、percentage 区分。
实验结果
PodstartuplatencySaturate(ms)
1.16
PodStartupLatency | create_to_schedule | schedule_to_run | run_to_watch | schedule_to_watch | pod_startup |
---|---|---|---|---|---|
50 | 0 | 1000 | 1044.237 | 1749.131 | 1749.184 |
90 | 0 | 1000 | 1640.885 | 2401.273 | 2401.273 |
99 | 0 | 1000 | 2126.116 | 2958.44 | 2958.44 |
1.14
PodStartupLatency | create_to_schedule | schedule_to_run | run_to_watch | schedule_to_watch | pod_startup |
---|---|---|---|---|---|
50 | 0 | 1000 | 1083.588 | 1836.33 | 1838.244 |
90 | 0 | 1000 | 1790.928 | 2610.571 | 2611.449 |
99 | 0 | 2000 | 2852.53 | 4303.789 | 4303.789 |
对比:
空载下运行3000个pod,50%pod启动时间1.16相比1.14快5%左右。 90%的pod启动时间,1.16启动时间提升3%-10%,99%的pod启动时间上1.16提升最大,速度提升25%-50%。在最坏情况下,1.16的效果明显好于1.14.
Podstartuplatency(ms)
1.16
PodStartupLatency | create_to_schedule | schedule_to_run | run_to_watch | schedule_to_watch | pod_startup |
---|---|---|---|---|---|
50 | 0 | 1000 | 1004.569 | 1727.642 | 1727.662 |
90 | 0 | 1000 | 1692.732 | 2414.719 | 2429.138 |
99 | 0 | 1000 | 2124.746 | 2892.659 | 2897.378 |
1.14
PodStartupLatency | create_to_schedule | schedule_to_run | run_to_watch | schedule_to_watch | pod_startup |
---|---|---|---|---|---|
50 | 0 | 1000 | 1046.108 | 1772.073 | 1774.335 |
90 | 0 | 1000 | 1772.192 | 2613.083 | 2613.083 |
99 | 0 | 1000 | 2260.846 | 2959.74 | 2959.74 |
对比
在存量测试下,50% pod 启动时间上, 1.16 效率提升 3%;90% 和 99% pod 的启动时间上,1.16 效率提升 5%。总体来说 1.16 效果略微好于 1.14。
吞吐量(个数)
版本 | average | 50 | 90 | 99 |
---|---|---|---|---|
1.14 | 19.354 | 20 | 20 | 23.6 |
1.16 | 19.354 | 20 | 20 | 24.2 |
对比
- 在创建 pod 过程中,50%、90% 和平均情况下,1.14 和 1.16 创建 pod 吞吐量相同;
- 99 分位点情况,1.16 提升 3%。在最坏情况下,1.16 的效果优于 1.14。
api 响应延时(ms)
1.14
Resource | Scope | Verb | Perc50 | Perc90 | Perc99 |
---|---|---|---|---|---|
pods | namespace | DELETE | 25.279 | 45.502 | 54.906 |
pods | namespace | GET | 25.17 | 45.307 | 49.837 |
pods | namespace | LIST | 25 | 45 | 49.5 |
(Pod)
Resource | Scope | Verb | Perc50 | Perc90 | Perc99 |
---|---|---|---|---|---|
nodes | cluster | PATCH | 25.41 | 45.74 | 78.87 |
nodes | cluster | LIST | 25 | 45 | 49.5 |
nodes | cluster | GET | 25 | 45 | 49.5 |
(Nodes)
1.16
Resource | Scope | Verb | Perc50 | Perc90 | Perc99 |
---|---|---|---|---|---|
pods | namespace | DELETE | 25.432 | 45.779 | 76.445 |
pods | namespaces | GET | 25.018 | 45.033 | 49.536 |
pods | namespaces | LIST | 25 | 45 | 49.5 |
(Pod)
Resource | Scope | Verb | Perc50 | Perc90 | Perc99 |
---|---|---|---|---|---|
nodes | cluster | PATCH | 25 | 45 | 49.5 |
nodes | cluster | LIST | 25 | 45 | 49.5 |
nodes | cluster | GET | 25 | 45 | 49.5 |
(Nodes)
对比
统计整个创建 Pod 和删除 Pod 过程中 api 响应时间,将其根据时间大小排序后对 pod 和 node 操作选取时间最长的三项进行对比。
对比可以发现,对 pod 和 node 操作的 api 时间,1.14 和 1.16 基本一致:
- 最坏情况下(99 分点)对 pod 的 delete 操作时间,1.14 相比 1.16 要快 30% 左右;
- 对 node 的 PATCH 操作,1.16 相比 1.14 要快 40% 左右;
- 对于其它 apicall(如 LIST 和 GET)二者并没有明显差距。
总结
总体来说,1.16 版本相对于 1.14 版本的主要提高在无状态 Pod(Pod 不用挂载 configmap、secret 等 volume)的创建速度上:
- 1.16 和 1.14 的 pod 创建时间都满足 Kubernetes sig-scalability 定义的 SLA((99% 的已拉取好镜像的 pod 启动时间在 5s 内);
- 但在最差情况下(99 分位点),1.14 版本的 Pod 创建速度接近 5s,表现差于同指标下 K8s 1.16 的 3s。
说明 1.16 版本更适用于对 pod 创建速度有要求(如弹性业务)的场景。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
GoAdmin v1.2.4 版本发布
介绍 GoAdmin是一款基于golang的数据可视化管理后台搭建框架。致力于简化saas,数据可视化系统搭建难度,提升golang开发效率,将高效率高性能的体验带给所有开发者。目前同类产品中,GoAdmin在基于golang提供了许多其他语言不能提供的良好体验,诸如:可将整个系统编译成一个二进制可执行文件,较高的性能等。内置的Admin插件可快速实现crud的数据管理后台搭建,支持mysql,postgresql,sqlite,mssql。 v1.2.4 GoAdmin 较之1.0.0版本以来,修复了很多bug,同时增强了内置admin插件表单和表格的能力。支持表格筛选和定制按钮功能触发,以及表单联动等等能力。极大提高了数据操作与变现能力。同时,cli工具方面也进行了优化。欢迎下载体验。 产品截图 在线demo https://demo.go-admin.cn 官网 https://www.go-admin.cn 文档 https://book.go-admin.cn/zh 新手极速上手例子 https://gitee.com/go-admin/example
- 下一篇
【云栖号案例 | 互联网 】万师傅使用云产品,上手简单、开箱即用、省去运维烦恼
云栖号案例库:【点击查看更多上云案例】不知道怎么上云?看云栖号案例库,了解不同行业不同发展阶段的上云方案,助力你上云决策! 整体架构 每当我在思考技术选型方案的时候,翻翻阿里云的官网,总能找到我想要的东西。于是,我们的大数据体系就变成了这样,如图: 离线 2.1 选型原则 团队成员,大都是Hive方向或是算法方向出身。为追求上手简单、专注数据的分析和挖掘、减少不必要的学习成本和费用成本,使用了阿里云MaxCompute。 2.2 数据采集 数据源共包含三类: (1)关系型数据库中的数据;(2)服务器上的日志文件;(3)前端埋点日志; 采集方式如图: 关系型数据库中的数据,使用dataworks中的“数据集成”功能,定时离线同步到MaxCompute中;其他两类数据,以及关系型数据库的Binlog,直接使用了万能的“日志服务SLS”。WebTracking支持直接收集HTML、H5、iOS和 Android的日志;Logtail支持收集服务器上的日志文件,以及关系型数据库的Binlog。数据都收集过来之后,再定时将数据投递到MaxCompute中;如上两个步骤,完成了三类数据的收集。比业...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS关闭SELinux安全模块
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Windows10,CentOS7,CentOS8安装Nodejs环境