集群新增几台机器后,个别机器出现内存使用居高不下的状况.128G的内存使用量长期在80多G,截图如下:
使用smem命令查看内存使用状况
[root@机器名 ~]# smem -twk
Area Used Cache Noncache
firmware/hardware 0 0 0
kernel image 0 0 0
kernel dynamic memory 89.7G 41.6G 48.0G
userspace memory 31.7G 174.6M 31.6G
free memory 4.3G 4.3G 0
----------------------------------------------------------125.6G 46.1G 79.6G
可以看到,kernel的动态内存占用了约90G,所以推测是Linux内核存在内存泄露的问题.SO~ 升级内核.以下为升级步骤
1-停止Cloudera该机器上所有角色(cloudera界面操作,不做详细描述)
2-停止cloudera-agent (cloudera界面操作,不做详细描述)
以上两步若有问题,可以参考我的另一篇博客:记一次CDH集群磁盘扩容(热插拔)详细步骤
3-查看内核信息
[root@y机器名 ~]# uname -a
Linux 机器名 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
其中,3.10.0-229.el7.x86_64为当前内核版本,主要关注一下229这个数字.
4-执行安装命令,查看安装时的kernel版本
[root@机器名 ~]# yum install kernel
Loaded plugins: fastestmirror, langpacks, versionlock
...
===========================================================================================Package Arch Version Repository Size
===========================================================================================
Installing:kernel x86_64 3.10.0-1062.9.1.el7
...
Total download size: 148 M
Is this ok [y/d/N]:
注意内核版本是3.10.0-1062.9.1.el7 ,上一次同事升级时是3.10.0-957.21.3.el7.,也是可以解决问题的.
5-升级成功后,重启机器:执行reboot命令
6-重启后验证
查看内核版本:已更新为3.10.0-1062.9.1.el7.x86_64
[root@机器名 ~]# uname -a
Linux 机器名 3.10.0-1062.9.1.el7.x86_64 #1 SMP Fri Dec 6 15:49:49 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
执行smem命令查看内存使用情况:可以看出kernel的动态内存已经释放(因不确定是否还会继续增加,所以要监控一段时间),按照之前的经验,此时问题应该是解决了.
[root@机器名 ~]# smem -twk
Area Used Cache Noncache
firmware/hardware 0 0 0
kernel image 0 0 0
kernel dynamic memory 27.9G 26.9G 1017.7M
userspace memory 160.3M 34.7M 125.6M
free memory 97.6G 97.6G 0
----------------------------------------------------------125.7G 124.5G 1.1G
7-恢复服务
执行agent启动命令(不做详细描述,可参考前边博客)
CDH界面启动该机器上所有角色(不做详细描述,可参考前边博客)
以上为升级内核解决系统内存泄露的过程.感谢耐心阅读.