VM虚拟机处理器设置,以及稳定性的说明

2 篇文章 0 订阅
2 篇文章 0 订阅

废话不多说,先来说一下我的配置。

移动工作站:

  • 内存:256GB
  • cpu:两块,每块为10核20线程,总共20核40线程

上述的逻辑处理器,可以理解为线程的意思。

首先说一下集群配置:

        7个节点, 内存为16GB,处理器核数分配分别为

  1.         1核  8线程
  2.         1核  8线程
  3.         1核  4线程
  4.         1核  4线程
  5.         1核  4线程
  6.         1核  4线程
  7.         1核  4线程

需要说明的是,不要将本机所有的线程都分配掉,不然会造成cpu软死锁!!!!

说一下job任务的规模,文件大小为70GB,复制2份,用Mapreduce框架,在上述分配下在整个job任务过程中,没有发生sockettimeoutcpu lockup 异常。

但是如果在这里将节点的核数设置为2核,总线程不变时候,会发生卡死,陷入长时间等待的问题,当总线程继续增加时,虚拟机的cpu使用率出现异常情况,负载很高,但是个别节点出现如下情况。

 cpu和内存使用率都不高,但是某些节点却完全宕机,这说明cpu在分配资源时候不合理,因为我们知道如果虚拟机的总资源大于本机资源,那么本机cpu会采用轮询的方式来分配给cpu,在这时候那么sockettimeout和 cpu lockup就很容易发生,因为通道的开始和结束,和任务的开启和结束需要cpu的参与,但是当某台节点发生cpu软死锁时候,资源得不到释放,那么后面应该得到资源的节点就会开始等待,直到过了60000ms之后发生socketimeout,当然你也可以将socket的时间设置的更大,但是始终是治标不治本。最重要的是MR是以进程进行,那么资源抢占一定是非常常见的。

        

 我们可以发现,上图中基本上每几秒就会进行IO操作,然后时间到了54分时候,仍然没有动静。

                        ​​​​​​​        ​​​​​​​        ​​​​​​​        

很明显这时候cpu是在为新的job开启通道和即将完成job的任务进行处理,然而这次处理却进行了4分钟之久,其实并行化的量大也是一个原因,如果这时候cpu资源分配不合理,那么某些节点就会发生软死锁。

虽然IO操作中间过程中不需要CPU的参与,但是大量的job并行化时,cpu的负担仍然很重,如果采用的是轮询制度,那么就很容易发生错误。 

      所以集群总节点的资源一定<本机资源

另外在yarn集群配置上,请保留一个虚拟核,否则也会造成虚拟机很卡顿

以上是8线程的2个主节点所分配给yarn的,保留了两个。

结论:若本机有2个cpu的,请尽量只分配1个cpu,虚拟机总线程<本机总线程,yarn调度中心请不要分配虚拟机所有的核心数。

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值