如何启用CGroup限制YARN CPU使用率
如何启用CGroup限制YARN CPU使用率
0872-7.1.4-如何启用CGroup限制YARN CPU使用率https://mp.weixin.qq.com/s/6wARFLJWEb2rlZE6si9uug
为什么要限制yarn cpu的使用率?
cpu和core executor有什么关系 和我们说的几核几线程什么关系?
其实我理解的就是我们在spark上说的core就是几核几线程的 几线程,我们申请核的目的主要是为了计算,可以看作算力....,也就是说我们spark任务每次运行需要xxG内存,和xxcore的算力来处理任务。愚见。
node09这台服务器为16核32线程,我们在yarn里分配该机器为39.53 GB内存,32core(这里我觉得的分配的core不对,但不是重点)
测试
spark-submit --class org.apache.spark.examples.SparkPi --master yarn-client --conf spark.dynamicAllocation.enabled=false --num-executors 1 --driver-memory 512m --executor-memory 512m --executor-cores 1 spark-examples.jar 100000
注意后面的100000是为了让任务跑多点,持续的时间长好看到现象。
--spark.dynamicAllocation.enabled=false 是为了看单核的也就是占的cpu
----num-executors 1 executor-cores 1 是为了看一个core的现象
提交任务后
到node03 查看cpu情况
可以看到最开始的时候cpu占了140% 后面109 %跑到最后面稳定在90-100之间
那么这时候有个问题了,
我是num-executors 1 executor-cores 1 一台服务器上只用一个core按道理最多跑出一个核的100%的cpu,跑多了有啥影响呢?
作者原话
单个Vcore的使用率也可以超过100%,如果集群中CPU 使用率高的场景较多的情况下,因为超配的情况,就会出现即使有些作业能够分配Vcore,但是却没有实际物理cpu资源可调度,从而导致应用慢的情况。
举例。
我现在同时跑30个这种任务只申请一个core,按道理就是30G内存+30个core(假设都在这台机器),但是实际是回占用30G内存+30*1.4=42个cpu,本身是32线程,最多32个cpu,那么就会导致最多22个任务(22*14=30.8cpu)被运行,还有几个任务申请到了core和内存,但是这个core没用,因为实际的物理cpu全部被占用了
———————————————————————————————————————————
上面都是为了说明这个cpu超限制问题。
那么问题来了,怎么解决?按照作者说的,通过cgroup限制。其实这玩意就是虚拟核。
类似4核八线程,本身只有4核,但是能够模拟出8核出来,所以我们当作8核用。
这个cgroup是啥 就是把8核再虚拟下,例如虚拟2倍成16核,那么我们提交任务的时候还是
num-executors 1 executor-cores 1 ,实际上只申请了0.5核,也就是只会跑出50%的cpu
但是其中这里有个问题?我之前1核也跑出了140的cpu,这个0.5核按道理也可以跑出70的!!!
但是最后肯定是稳定在50%cpu。
同时这么做有什么好处和后果?
好处,将核更为细化,比如有的小任务就要0.5核就够了,
<property>
<name>yarn.nodemanager.resource.count-logical-processors-as-cores</name>
<value>true</value>
<description>是否将虚拟核当cpu 核心数</description>
</property>
<property>
<name>yarn.nodemanager.resource.detect-hardware-capabilities</name>
<value>true</value>
<description>YARN 自动探测CPU和内存</description>
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>-1</value>
<description>关闭虚拟vcore配置,如物理机有启用超线程不关闭该参数无法读取到超线程核数</description>
</property>
<property><name>yarn.nodemanager.resource.pcores-vcores-multiplier</name>
<value>2.5</value>
<description>物理核与vcore的配比倍数</description>
</property>
如何启用CGroup限制YARN CPU使用率相关推荐
- 租用的服务器CPU使用率高的原因分析与解决办法
我们租用的服务器在使用操作系统的时候,用着用着系统就变慢了,打开" 任务管理器 "一看,才发现CPU使用率达到80%以上.这是怎么回事情呢? 遇到病毒了吗?硬件有问题?还是系统设置 ...
- 查看cpu使用率_腾讯游戏开发工程师:Linux 机器 CPU 毛刺问题排查
作者:jasonzxpan,腾讯 IEG 运营开发工程师 本文排查一个Linux 机器 CPU 毛刺问题,排查过程中不变更进程状态.也不会影响线上服务,最后还对 CPU 毛刺带来的风险进行了分析和验证 ...
- cpu使用率 htop显示_用top、vmstat、Htop、sar命令在Linux系统中检查CPU使用率/利用率...
本文介绍使用top.vmstat.Htop.sar命令在Linux操作系统中检查CPU使用率/利用率,其实也可以在图形界面中通过工具查看的,可参考使用Stress Terminal UI在Linux终 ...
- k8s-自动横向伸缩pod 根据CPU使用率,QPS访问数监控指标
k8s-自动横向伸缩pod 与节点 简述 我们可以通过调高ReplicationController. ReplicaSet. Deployment等可伸缩资源的rep让cas字段, 来手动实现pod ...
- .net runtime占用cpu_Go服务在容器内CPU使用率异常问题排查手记
导语 本文介绍了公司"云化服务"的大背景下,将一个Go服务迁移至公司的基于K8s+docker的容器云平台,使用火焰图进行性能排查和优化方面的实践.欢迎在留言区进行阅读探讨. 背景 ...
- netty cpu 占用率 高_交换机CPU使用率高问题定位
诊断工具 display工具 log工具 报文冲击导致的CPU使用率高问题 CPU使用率高问题信息采集 诊断工具 display cpu-usage [ slot x ] display cpu-de ...
- 电脑不启动任务管理器时cpu使用率很高,短时间内不使用电脑时启动为什么能耗可下降到15%以下?
短时间不用电脑时,启用电脑的"睡眠"模式,能耗可下降到50%以下.关掉不用的程序和音箱.打印机等外-围设备:少让硬盘.软盘.光盘同时工作,适当降低显示器的亮度. 一些杀毒软件会对网 ...
- CPU使用率过高问题排查及Linux之top命令用法详解
文章目录 问题 解决方案 top命令用法 top各输出参数含义 一.top前5行统计信息 二.进程信息 Top 1的用法 %CPU和us%的区别 问题 公司连续2天服务器告警CPU使用率过高问题,查看 ...
- VAX计算机CPU,解决“系统”进程的高CPU使用率
要诊断CPU使用率问题,应使用Windows事件跟踪(ETW)捕获CPU采样数据/配置文件. Windows 10 WPT可以在Windows 8 / Server 2012,Windows 8.1 ...
最新文章
- 云计算读书笔记(五)
- javascript——Array类型
- 什么是关键字驱动框架(自动化测试)
- PowerShell自动删除过期数据
- [笔试题目] 美团2015年9月后端开发工程师笔试题
- 【Lucene4.8教程之中的一个】使用Lucene4.8进行索引及搜索的基本操作
- 【Python CheckiO 题解】Feed Pigeons
- 向量除法能用计算机吗,为什么向量没有除法
- 首批拟科创板IPO名单今日揭晓!
- AI芯片浮出新玩家OURS,来者何人?新晋图灵奖得主华人弟子谭章熹
- 用“企业架构”方法指导信息化规划
- chm文件打开时提示乱码
- DMZ区域的作用与原理
- JS | 涉及字符串的内置函数的一些题目
- day16 正则检测、匹配次数、分组与分支、re模块、匹配参数
- js三座大山----(第一座山)
- DRM应用程序进阶 (atomic-crtc)
- React 生命周期函数使用场景 及ajax请求 前端模拟数据
- sql中like的所有用法
- 一文读懂XPath基本语法_XPath语法详解_XPath教程