- Published on
说一说应用计算资源分配这件事情
- Authors
- Name
容器通过提升部署密度的方式,提升资源利用率
- 在传统使用虚拟机模式下,虚拟机规格是预定义好的,我们可以理解为一个固定大小的盒子。
- 在使用容器模式下,容器也需要指定一个CPU/内存的上限,实际上也是一个盒子。
那为什么使用容器就节省资源了呢? 答案是通过容器的轻量级隔离、以及更细粒度的资源划分(也就是更小的盒子),提升了部署密度,从而提升了资源利用率。
更高级的方式,自适应垂直伸缩
容器本质还是一个盒子,只是盒子变小了。但是,如果应用程序需要的资源没有变小,需要的盒子也无法变小,我们还是需要为应用程序配置最大资源上限,也就是需要预留,所以本质没有提升资源利用率。 所以,需要一种“自适应垂直伸缩”能力,才能解决此问题。
** 经典PaaS平台,应当提供此能力:**
传统容器 vs PaaS平台
传统容器部署:
静态分配:requests: 1CPU, 2GB + limits: 2CPU, 4GB
资源浪费:即使应用只使用0.5CPU,也要预留1CPU
PaaS平台(如Kubernetes HPA/VPA):
动态伸缩:根据实际负载自动调整资源分配
实时监控:基于CPU、内存使用率进行垂直伸缩
资源回收:低负载时自动减少资源分配
用户使用体验,应当是不需要指定盒子大小,因为用户也不知道盒子多大,平台根据实际负载自动调整,这才是PaaS平台在资源调度上的核心价值。