分享

hadoop使用交换内存的问题

交换内存问题1.png 交换内存问题2.png 交换内存问题4.png
交换内存问题3.png

如上图,hadoop官方是不建议用交换内存。但是我却发生了很多交换内存告警,我又做了些排查,但应该都不是。第一、服务器内存足够用。第二,我给各组件分配的堆也够大,像hbase分了20G的堆内存。那为何还频繁有交换内存告警呢??



请高手指点迷津。像线程等待数过多,以及交换内存问题,会不会影响入库效率?

已有(4)人评论

跳转到指定楼层
langke93 发表于 2016-6-23 13:22:19
本帖最后由 langke93 于 2016-6-23 13:31 编辑

楼主首先调整Linux参数,可以设置为零。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

交换参数控制内核从物理内存移出进程,移到交换空间。该参数从0到100,当该参数=0,表示只要有可能就尽力避免交换进程移出物理内存;该参数=100,这告诉内核疯狂的将数据移出物理内存移到swap缓存中。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

设置完毕之后,最好重启生效下。
最后在调优下hadoop,注意hadoop jvm和memory的内存配置。

回复

使用道具 举报

lanyangkj 发表于 2016-6-23 14:31:59
langke93 发表于 2016-6-23 13:22
楼主首先调整Linux参数,可以设置为零。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

很感谢你的回答,非常专业!不过还有奇怪的现象,当我把所有的入库程序关掉后,网络IO、请求都降至为0,为什么hbase的java等待线程依然还那么大147个,hbase堆栈也一直没释放8G左右。

回复

使用道具 举报

einhep 发表于 2016-6-23 20:12:43
lanyangkj 发表于 2016-6-23 14:31
很感谢你的回答,非常专业!不过还有奇怪的现象,当我把所有的入库程序关掉后,网络IO、请求都降至为0, ...

可以相关工具查看有哪些进程暂用内存,可能缓存或则作业还在运行等原因
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条