Hadoop YARN:调度性能优化实践
一般来说,在线业务系统的性能是用该系统能够承载的QPS和响应的TP99的延迟时间来评估,而调度系统与在线业务系统不同的是:调度系统的性能不能用RPC(ResourceManager接收NodeManager和AppMaster的RPC请求)的响应延迟来评估。原因是:这些RPC调用过程跟调度系统的调度过程是异步的,因此不论调度性能多么差,RPC响应几乎不受影响。同理,不论RPC响应多么差,调度性能也几乎不受影响。 业务指标-有效调度 首先从满足业务需求角度分析调度系统的业务指标。调度系统的业务目标是满足业务资源需求。指标是:有效调度(validSchedule)。在生产环境,只要validSchedule达标,我们就认为目前调度器是满足线上业务需求的。 定义validSchedulePerMin表示某一分钟的调度性能达标的情况。达标值为1,不达标值为0。
设置90%的原因是:资源池中的每个节点可能都有一小部分资源因为无法满足任何的资源需求,出现的资源碎片问题。这个问题类似linux内存的碎片问题。由于离线作业的任务执行时间非常短,资源很快可以得到回收。在离线计算场景,调度效率的重要性远远大于更精确地管理集群资源碎片,因此离线调度策略暂时没有考虑资源碎片的问题。 validSchedulePerDay表示调度性能每天的达标率。 validSchedulePerDay = ΣvalidSchedulePerMin /1440 目前线上业务规模下,业务指标如下: validSchedulePerMin > 0.9; validSchedulePerDay > 0.99 系统性能指标-每秒调度Container数 调度系统的本质是为作业分配Container,因此提出调度系统性能指标CPS–每秒调度Container数。在生产环境,只要validSchedule达标,表明目前调度器是满足线上业务需求的。而在测试环境,需要关注不同压力条件下的CPS,找到当前系统承载能力的上限,并进一步指导性能优化工作。 (编辑:西安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |