一、请求(Request)与限制(Limit)
更多 Limit 和 Request 参数介绍,单击 查看详情。
二、CPU 限制说明
CPU 资源允许设置 CPU 请求和 CPU 限制的资源量,以核(U)为单位,允许为小数。
三、内存限制说明
内存资源只允许限制容器最大可使用内存量。以 MiB 为单位,允许为小数。
四、CPU 使用量和 CPU 使用率
·CPU 使用量为绝对值,表示实际使用的 CPU 的物理核数,CPU 资源请求和 CPU 资源限制的判断依据都是 CPU 使用量。
·CPU 使用率为相对值,表示 CPU 的使用量与 CPU 单核的比值(或者与节点上总 CPU 核数的比值)。
五、使用示例
一个简单的示例说明 Request 和 Limit 的作用,测试集群包括1个 4U4G 的节点、已经部署的两个 Pod ( Pod1,Pod2 ),每个 Pod 的资源设置为(CPU Request,CPU Limit,Memory Request,Memory Limit)=(1U,2U,1G,1G)。(1.0G = 1000MiB)
节点上 CPU 和内存的资源使用情况如下:
已经分配的 CPU 资源为:1U(分配 Pod1) + 1U(分配 Pod2) = 2U,剩余可以分配的 CPU 资源为2U。
已经分配的内存资源为:1G(分配 Pod1) + 1G(分配 Pod2) = 2G,剩余可以分配的内存资源为2G。
所以该节点可以再部署一个 ( CPU Request, Memory Request ) =( 2U,2G )的 Pod 部署,或者部署2个(CPU Request,Memory Request) = (1U,1G) 的 Pod 部署。
在资源限制方面,每个 Pod1 和 Pod2 使用资源的上限为 ( 2U,1G ),即在资源空闲的情况下,Pod 使用 CPU 的量最大能达到2U。
六、服务资源限制推荐
TKE 会根据你当前容器镜像的历史负载来推荐 Request 与 Limit 值,使用推荐值会保证你的容器更加平稳的运行,减小出现异常的概率。
推荐算法:
我们首先会取出过去7天当前容器镜像分钟级别负载,并辅以百分位统计第95%的值来最终确定推荐的 Request,Limit 为 Request 的2倍。
Request = Percentile(实际负载[7d],0.95)Limit = Request * 2
如果当前的样本数量(实际负载)不满足推荐计算的数量要求,我们会相应的扩大样本取值范围,尝试重新计算。例如,去掉镜像 tag,namespace,serviceName 等筛选条件。若经过多次计算后同样未能得到有效值,则推荐值为空。
推荐值为空:
在使用过程中,你会发现有部分值暂无推荐的情况,可能由于以下几点造成:
1. 当前数据并不满足计算的需求,我们需要待计算的样本数量(实际负载)大于1440个,即有一天的数据。
2. 推荐值小于你当前容器已经配置的 Request 或者 Limit。
七、相关文档
容器的 Request 及 Limit 需根据服务类型、需求及场景进行灵活设置。详情可参见 设置 Request 与 Limit。