TPP多租户隔离之资源清理

简介: 利用ajdk实现jvm虚拟化,实现容器业务方案的热部署和资源隔离

  双11的时候TPP引入了ajdk多租户,对场景的cpu进行隔离,参考文章 《TPP稳定性之场景隔离和多租户》。文章中对tpp提供给算法方案的二方服务客户端进行改造,这些共享的二方服务注入root租户的threadfactory,将共享服务与方案进行隔离,共享服务运行在root租户中。 这样算法方案里不会有线程,这样不用担心资源泄漏,因为tpp方案是热部署的,新的方案instance构建并预热,然后替换旧的方案instance,旧的方案classloader没有被引用,系统会自动回收。

  随着场景的增多,除了算法团队,业务工程团队也开始接入,他们都有自己业务相关的二方服务或二方包的需求,tpp维护几千个场景和几百个二方服务是有点力不从心了。任何一个场景提出的二方服务接入或着二方服务jar包升级都需要tpp走发布流程发布glaucus容器,业务迭代速度明显要快于容器的更新速度,这种开发体验是很差的。因此tpp要开放二方服务的开发和接入能力,让场景owner自助完成,这样场景onwer就可以像开发aone独立应用一样去迭代,只是不用关心机器资源,接入层,服务provider等。在tpp容器上实现这种开发模式就需要解决这些问题:
  1.私有的二方服务的热部署,并且与方案有相同的生命周期:为什么不新起容器呢,还是上篇文章讲的,tpp方案本身是热部署的,一般机器运行最多几百个场景,本来一个docker就能满足要变成几百个docker肯定是很浪费资源的。
  2.二方服务有自由的行为,可以开启线程,热部署就要能够清理线程:否则老方案的资源无法卸载,多发布几次方案和二方服务就会出现oom。

  我们的方案是将原来的一层租户架构改成两层租户架构。回顾下原来的一层租户架构:
多租户隔离.png
  这里每个场景是一个租户,它们有自己有界的线程池,设置了cpu shares和cpu quota,mem limit,场景下的所有方案都受所属场景租户限制。ajdk的租户容器可以结束租户创建的所有线程,但是热部署的最小粒度是方案,因此不能直接destroy场景租户,需要把单层租户结构改成两层租户结构,即嵌套cgroup,如下图所示:

场景方案隔离.png
  第一层还是场景租户,用来控制场景的总cpu和mem。在场景租户下为每个方案创建一个方案子租户,目前不限制cpu和mem,因为对于cgroup来说子控制组总资源还是受父控制组的限制,还是匹配原来的场景资源隔离需求。方案租户用来清理方案的资源,方案租户容器生命周期和方案instance同步,方案下线/替换时,系统创建新的方案租户,切流到新方案租户,老方案租户destroy,ajdk会结束老方案的线程,老方案没有被引用会自动回收。容器新的classloader体系如下图所示:

tpp类加载体系.png
  私有插件和方案instance由同一个方案classloader加载,这里不会export,可以放心清理方案资源。对于广泛使用的插件可以升级为系统共享插件,由glaucus classloader加载,export给方案,避免大家都加载一份插件浪费metaspace。

  有了多租户的资源隔离和资源清理,我们将在tpp上构建新的开发模式,开发同学可以以接近独立应用的自由度去开发自己的业务逻辑,随时接自己需要的二方服务,随时变更自己的业务逻辑,不用关心代码跑在哪台机器,不用担心流量上涨需要扩容,不需要自己去接监控。后面我们会逐步改进,做得更完善

  参考文章:
  《TPP稳定性之场景隔离和多租户》
  《JVM虚拟化 重新定义Java容器热部署的资源管理机制》

目录
相关文章
|
SQL 运维 搜索推荐
《揭秘,阿里开源自研搜索引擎Havenask的在线检索服务》
Havenask是阿里巴巴智能引擎事业部自研的开源高性能搜索引擎,深度支持了包括淘宝、天猫、菜鸟、高德、饿了么在内几乎整个阿里的搜索业务。本文针对性介绍了Havenask的在线检索服务,它具备高可用、高时效、低成本的优势,帮助企业和开发者量身定做适合业务发展的智能搜索服务。
85847 138
|
存储 固态存储 索引
搜索和推荐统一存储层的新进展和思考
我们在2017年统一了搜索和推荐场景下的HA3、iGraph、RTP和DII四大引擎的存储层(参见统一之战),帮助它们取得了的更迅速的迁移能力、更快速的数据恢复能力和更丰富的数据召回能力。 最近一年来,我们在统一的存储框架上又做了进一步的演进,下面将分别从架构、Build服务以及存储模型角度介绍我们的新进展和思考。   1.架构   在我们的传统架构(参见统一之战)中,
3481 0
|
机器学习/深度学习 算法 流计算
深度预测平台RTP介绍
前言 RTP平台是阿里内部一个通用的在线预测平台,不仅支持淘系搜索、推荐、聚划算、淘金币等业务,也支持国际化相关icbu、lazada等搜索推荐业务,同时还支持着淘客,优酷、飞猪等大文娱的搜索推荐场景。
11495 0
|
人工智能 搜索推荐 异构计算
|
7月前
|
存储 自然语言处理 算法
Elasticsearch 核心命脉:倒排索引、分片机制与全链路高性能调优实战
本文深度解析Elasticsearch三大核心:倒排索引(Term Dict/Posting List/FST压缩)、分片机制(主/副本协同、路由算法)及全链路调优(写入/查询/分片/JVM),辅以ES 8.x实战代码,助开发者突破性能瓶颈,构建高可用、高性能搜索系统。
967 1
|
运维 搜索推荐 调度
Ha3搜索引擎简介
Ha3是阿里巴巴搜索团队开发的搜索引擎平台,它为阿里集团包括淘宝、天猫在内的核心业务提供搜索服务支持。
27575 1
|
自然语言处理 数据处理 调度
《Havenask分布式索引构建服务--Build Service》
Havenask是阿里巴巴智能引擎事业部自研的开源高性能搜索引擎,深度支持了包括淘宝、天猫、菜鸟、高德、饿了么在内几乎整个阿里的搜索业务。本文针对性介绍了Havenask分布式索引构建服务——Build Service,主打稳定、快速、易管理,是在线系统提升竞争力的一大利器。
103318 3
《Havenask分布式索引构建服务--Build Service》
|
人工智能 监控 算法
打造算法在线服务领域极致开发体验与性能 — 阿里TPP图化框架技术实践
TPP图化致力于打造一个算法在线服务领域易用、性能极致、迭代效率远超普通方式的产品。本文将介绍TPP图化以及2021年在性能、开发体验上的改进,并介绍未来TPP图化的规划。
打造算法在线服务领域极致开发体验与性能 — 阿里TPP图化框架技术实践
|
机器学习/深度学习 前端开发 算法
阿里妈妈展示广告引擎新探索:迈向全局最优算力分配
在绿色计算的大背景下,算力分配将朝着更加高效和智能的方向持续演进。本文将介绍阿里妈妈展示广告引擎在全局视角下优化算力分配的新探索,让在线引擎像变形金刚一样灵活强悍。算力在提倡节能减排,降本增效,追求绿色技术的大趋势下,充分利用好算力资源,尤其是在阿里妈妈展示广告引擎这种使用近百万core机器资源的业...
1848 0
阿里妈妈展示广告引擎新探索:迈向全局最优算力分配