关注 迪答数据 公众号获取更多 技术/数据 干货文章
文章传送门:数据治理之指标体系管理
管理容器的计算资源
参考文档: Kubernetes Managing Compute Resources for Containers(opens new window)https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
概述
在 Kubernetes 中创建工作负载时,您可以为 Pod 中的每一个容器指定其所需要的内存(RAM)大小和 CPU 数量。如果这些信息被指定了,Kubernetes 调度器可以更好的决定将 Pod 调度到哪一个节点。对于容器来说,其所需要的资源也将依据其指定的数值得到保证。
资源类型及计量
当我们讨论计算资源的时候,主要是指 CPU 和 内存。CPU 的计量单位是内核的单元数,内存的计量单位是 byte 字节数。应用程序可以按量请求、分配、消耗计算资源。
CPU 的计量
在 Kubernetes 中,1 个 CPU 代表:
- 1 AWS vCPU
- 1 GCP Core
- 1 Azure vCore
- 1 IBM vCPU
- 物理机上 Intel 超线程 CPU 的 1 个超线程(Hyperthread)
Kubernetes 中,0.5 代表请求半个 CPU 资源。表达式 0.1 等价于 表达式 100m (英文读作 one hundred millicpu 或 one hundred millicores)。在 API Server 中,表达式 0.1 将被转换成 100m,精度低于 1m 的请求是不受支持的。 CPU 的计量代表的是绝对值,而非相对值,例如,您请求了 0.1 个 CPU,无论您的节点是 单核、双核、48核,您得到的 CPU 资源都是 0.1 核。
TIP
在
top
命令查看CPU消耗,100% 代表 1核;4核为 400%;10% 代表 0.1 核 或者 100m
内存的计量
内存的计量单位是 byte 字节。您可以使用一个整数来表达内存的大小,也可以使用后缀来表示(E、P、T、G、M、K)。您也可以使用 2 的幂数来表示内存大小,其后缀为(Ei、Pi、Ti、Gi、Mi、Ki)。例如,下面的几个表达方式所表示的内存大小大致相等:
128974848
, 129e6
, 129M
, 123Mi
查看资源命令
1.top命令查看所有pod,nodes中内存,CPU使用情况
kubectl top pod -n bigdata
data-synchronization-9754cb677-gdgxv 6m 676Mi
data-synchronization-taskmanager-1-1 8m 891Mi
dolphinscheduler-alert-7c449f8446-nng4t 2m 508Mi
dolphinscheduler-api-5fccd6d446-qbtjm 4m 659Mi
dolphinscheduler-master-0 4m 982Mi
dolphinscheduler-worker-0 2m 1017Mi
dolphinscheduler-worker-1 4m 992Mi
dolphinscheduler-worker-2 2m 1004Mi
minio-0 7m 222Mi
minio-1 7m 199Mi
minio-2 4m 206Mi
minio-3 6m 168Mi
minio-4 6m 164Mi
2.查看具体某一个pod
kubectl top pod minio-4 -n bigdata
NAME CPU(cores) MEMORY(bytes)
minio-4 7m 164Mi
更多查看命令 :Kubernetes 集群分析查看内存,CPU
Flink任务资源分配配置
配置项 | 说明 |
---|---|
JobManager CPU Cores | 默认值为1。根据Flink最佳实践,单个JM内存资源需要至少配置为0.25 core和1 Gi,才能保证作业稳定运行。 |
JobManager Memory | 最小值为1 Gi。单位建议使用Gi或Mi,例如,1024 Mi或1.5 Gi。 |
TaskManager CPU Cores | 默认值为1。根据Flink最佳实践,单个TM内存资源需要至少配置为0.25 core和1 Gi,才能保证作业稳定运行。 |
TaskManager Memory | 最小值为2 Gi。单位建议使用Gi或Mi,例如,1024 Mi或1.5 Gi。 |
并发度 | 作业全局并发数,默认值为1。 |
Flink配置 | 可以配置的参数及说明,详情请参见Configuration。 |