• 腾讯魏巍:Eunomia云原生资源编排优化


    2022年11月10日,在中国信通院、腾讯云、FinOps产业标准工作组联合发起的《原动力x云原生正发声 降本增效大讲堂》系列直播活动第10讲上,腾讯Light云计算平台负责人魏巍分享了Eunomia云原生资源编排优化实践。本文整理自魏巍的分享。

    云上资源优化背景

    相较传统的IDC部署方式,容器化部署在物理硬件、操作系统之上增加了一层容器运行时。当前云上部署的APP及二进制等均运行在容器运行时之上,Eunomia编排器的作用范围也在于此。

    我们认为,上云的过程中并没有新技术,更多是一种新部署理念的产生。在上云之后,应实现CPU、内存等资源利用率上升,成本大幅下降,然而当前上云时的资源浪费现象十分常见,造成浪费的原因可分为三种。

    • 应用资源使用设置不合理

    云原生的资源管理方式要求应用在部署之前,需提前设置好CPU、内存、磁盘的最小和最大资源使用量,并且之后不能改动(除非重建所有实例),这就要求应用在正式上线前预估其资源需求。

    线上的资源需求可以通过压测来模拟,但难免和实际情况有出入。此外,应用上线之后,其资源使用会随着业务、策略的动态更新而发生变化,因此在创建之初设置的资源使用量并不能很好地反映实际资源需求,容易造成资源浪费或资源不足。

    • 同类Pod各项资源有差异

    在实际运行过程中,即使是相同的Pod,其CPU、内存、磁盘、网络等监控指标也会有很大的差异,极端情况下相差甚至会高达60%,有时还会有大部分Pod的CPU利用率低、个别Pod的CPU利用率却长期在90%以上的情况产生。对此最稳妥的解决方式是扩容,但这会造成资源的大量浪费。

    • 多维度空闲资源碎片化严重

    集群在运行一段时间后,随着节点不断上、下架,Pod不断扩、缩容,会有越来越多的空闲资源分散在整个集群中,此类多维度闲散资源通常难以集中并下架,最终会造成资源的浪费。

    资源使用的痛点、难点

    • 突发流量洪峰导致资源不足

    游戏安全服务在正常运行时有着明显的周期性,并且周期与周期之间峰值变化不大,一般情况下晚上九、十点流量最高,后半夜流量最低。但是在某些突发情况下(突发性热点、大型节假日等),服务的请求量会在短时间内大幅上涨,造成资源不足,影响服务正常运行产生告警。

    • 资源维度有限

    原生的调度策略只基于CPU、内存、磁盘三个维度来判断节点资源是否充足。然而实际情况下,磁盘IO、网络IO、连接数、定时器等资源同样是决定业务是否正常运行的关键,因此资源维度的匮乏会对业务正常的保障造成影响。

    为了解决资源浪费与使用时的痛点,业界有诸多不同的解决方案,如HPA、超卖等。

    • HPA:基于业务实际运行的性能指标(一般位CPU)自动变更Pod数量;
    • 超卖:基于节点监控,按一定比例提升CPU或Mem可分配资源上限;
    • 反亲和性:设置Pod反亲和属性,使得相同Pod尽量部署在不同节点,优化均衡性;
    • 在离线混部:在同一集群混合部署在离线业务,离线业务在在线业务的低峰期扩容,提高低峰期利用率;
    • Deschedule:定期扫描节点资源和部署情况,通过驱逐Pod平均节点负载以及均衡Pod部署;
    • Dynamic Scheduler:基于节点实际负载调度Pod,优先调度到低负载节点,优化均衡性;
    • 高低水位线:设置高低水位线,扩容时Pod优先调度到负载处于高低水位线之间的节点,缩容时优先部署在
  • 相关阅读:
    WSDM‘22推荐系统论文梳理
    自动驾驶的未来展望和挑战
    SpringMVC之拦截器
    gRPC(八)生态 grpc-gateway 应用:同一个服务端支持Rpc和Restful Api
    自动化和数字化在 ERP 系统中意味着什么?
    Java8实战-总结35
    2024新版计算机网络视频教程65集完整版(视频+配套资料)
    How to covert HEIF to JPG with Java
    eCapture环境搭建编译|Android https明文抓包
    在 Python 脚本中设置环境变量
  • 原文地址:https://blog.csdn.net/m0_46700908/article/details/127907626