tencent cloud

容器服务

动态与公告
产品动态
公告
产品发布记录
产品简介
产品概述
产品优势
产品架构
应用场景
产品功能
基本概念
原生 Kubernetes 名词对照
容器服务高危操作
地域和可用区
开源组件
购买指南
购买指引
购买 TKE 标准集群
购买原生节点
购买超级节点
快速入门
新手指引
快速创建一个标准集群
入门示例
容器应用部署 Check List
集群配置
标准集群概述
集群管理
网络管理
存储管理
节点管理
GPU 资源管理
远程终端
应用配置
工作负载管理
服务和配置管理
组件和应用管理
弹性伸缩
容器登录方式
可观测配置
运维可观测性
成本洞察和优化
调度配置
调度组件概述
资源利用率优化调度
业务优先级保障调度
Qos 感知调度
安全和稳定性
容器服务安全组设置
身份验证和授权
应用安全
多集群管理
计划升级
备份中心
云原生服务指南
云原生 etcd
Prometheus 监控服务
TKE Serverless 集群指南
TKE 注册集群指南
实践教程
集群
Serverless 集群
调度
安全
服务部署
网络
发布
日志
监控
运维
Terraform
DevOps
弹性伸缩
容器化
微服务
成本管理
混合云
AI
故障处理
节点磁盘爆满排障处理
节点高负载排障处理
节点内存碎片化排障处理
集群 DNS 解析异常排障处理
集群 Kube-Proxy 异常排障处理
集群 API Server 网络无法访问排障处理
Service&Ingress 网络无法访问排障处理
Service&Ingress 常见报错和处理
Nginx Ingress 偶现 Connection Refused
CLB Ingress 创建报错排障处理
Pod 网络无法访问排查处理
Pod 状态异常与处理措施
授权腾讯云售后运维排障
CLB 回环问题
API 文档
History
Introduction
API Category
Making API Requests
Elastic Cluster APIs
Resource Reserved Coupon APIs
Cluster APIs
Third-party Node APIs
Relevant APIs for Addon
Network APIs
Node APIs
Node Pool APIs
TKE Edge Cluster APIs
Cloud Native Monitoring APIs
Scaling group APIs
Super Node APIs
Other APIs
Data Types
Error Codes
TKE API 2022-05-01
常见问题
TKE 标准集群
TKE Serverless 集群
运维类
隐患处理
服务类
镜像仓库类
远程终端类
事件类
资源管理类
服务协议
TKE Service Level Agreement
TKE Serverless Service Level Agreement
联系我们
词汇表

CPU 使用优先级

PDF
聚焦模式
字号
最后更新时间: 2024-12-24 15:38:45

功能介绍

部署服务过程中,通常会将一类业务进程部署到某台服务器上,服务器的 CPU 利用率取决于业务进程的压力情况,一般情况下,服务器的整体 CPU 利用率往往比较低。为了提高服务器 CPU 的利用率,可以在服务器上混合部署一些优先级较低的任务,这样可以显著提高整机的 CPU 利用率,降低硬件成本。这里定义混部到机器上的优先级较低的任务称之为“离线任务”或是“低优先级任务”。
混合部署解决了 CPU 利用率低的问题,但是会导致混布任务之间的 CPU 争抢,从而使得原先的重要业务指标(运行时长,延迟等)受到影响。为了解决这个问题,CPU QoS 引入了绝对抢占机制,允许重要业务进程在可运行的时候无条件抢占不重要业务进程,保证在提高整机 CPU 利用率的同时,重要业务进程不受影响。

基本原理

用户可以通过给任务/容器设定不同的优先级,来指定内核对任务/容器的调度行为。例如优先级为0的容器和优先级为7的容器同时运行在同一个 CPU 上时,优先级为0的容器只要可以运行,总是会无条件抢占优先级为7的容器,直至高优先级容器进程运行完成或是阻塞休眠,低优先级容器中的进程才会被调度执行。
QoS Agent 支持用户设置8个不同级别(0-7)的优先级,优先级为0-6之间的容器则不存在绝对抢占的关系,按照 CPU 的使用比例进行资源的划分和限流。两个业务,一个优先级设置成0,另一个设置成6,之间不会因为优先级划分资源。划分资源只是在节点资源发生竞争时,不同的 Pod 按照 Request 的资源申请量进行比例划分,详情可参见 文档。将一些离线作业优先级设置为7,在提高机器利用率的同时,保证高优和延迟敏感的在线业务不受离线业务的影响。
不同优先级之间 CPU QoS 行为如下:




使用方式

1. 部署 QoS Agent
2. 在集群里的组件管理页面,找到部署成功的 QoS Agent,单击右侧的更新配置
3. 在修改 QoS Agent 的组件配置页面,勾选 CPU 使用优先级
4. 单击完成
5. 部署离线业务。
6. 部署关联离线业务的 PodQOS 对象,选择需要降低优先级的业务,示例如下:
apiVersion: ensurance.crane.io/v1alpha1
kind: PodQOS
metadata:
name: low
spec:
labelSelector:
matchLabels:
k8s-app: low # 选择需要降低优先级的业务的 Label
resourceQOS:
cpuQOS:
cpuPriority: 7 # 将指定业务的 cpuPriority 设置为7,7表示优先级最低,发生资源竞争时会被优先抢占


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈