TPOPS主机内存泄露问题排查
前言:
发现TPOPS主机内存剩余不足,主机总共64G内存,available可用内存不足1G,频繁告警主机内存不足,且已使用到Swap空间。本篇案例介绍如何处理TPOPS主机内存不足问题。
过程与结果
计划将UGO与TPOPS进行合部,原主机上已运行TPOPS。开始安装UGO前,我已注意到TPOPS主机剩余内存不多,想着UGO占用资源不多,我将buff/cache中的内存清理了一部分,再将UGO预检查脚本检查内存剩余函数部分注释掉,这些操作完成后,执行UGO安装脚本,发现已经尝试在安装,不过到最后启动进程时报错内存不足导致UGO进程无法启动。
查看UGO使用指导书,也提示是主机可用内存不足,需清理出内存再启动UGO进程。使用TOP命令查看具体内存占用情况,发现auditd进程占用29G内存,几乎占整机内存的一半。
audit服务顾名思义即审计服务,在麒麟系统中是默认启用的。auditd进程是其守护进程,用于记录系统安全相关的事件和日志。它是操作系统的服务而不是TPOPS的服务,也就是说并不是TPOPS组件占用内存高,而是系统的一个audit进程占用了大部分内存。
尝试在产品文档中搜索audit,果然有相关提示,在最新的25.1.32轻量化产品文档中,在环境配置阶段,提示要检查audit服务,在麒麟系统下特定的audit版本存在内存泄漏风险,会导致audit服务占用大量内存。
按照文档提示,到TPOPS主机进行检查,果然是audit-3.0-5.se.06版本,下载se.08版本的rpm包,进行版本升级操作,升级到se.08版本并重启audit服务后,已用内存瞬间从52G降至34G,至此内存泄露问题已经解决。
接下来继续安装UGO工具,重新执行UGO安装脚本,一切都很顺利,UGO安装成功,且TPOPS服务运行正常,证明UGO可以和TPOPS安装在同一台主机。
管理/技术根因
麒麟系统下,audit服务在audit-3.0-5.se.06版本存在内存泄露风险,会导致内存占用过高且不释放。在安装TPOPS服务直接一定要认真检查确认。最新的产品文档改善了好多,将“检查audit服务”章节单独放在了安装前准备流程中,而这个客户环境是24.7.30.10版本,当时的产品文档只是将其作为可选项,极易忽略。
经验与教训
安装TPOPS一定要按照产品文档一步步来,特别是安装前准备操作,要一项一项核对。
建议不仅在安装TPOPS时检查audit服务版本,所有麒麟操作系统都可以进行检查,以防后面出现内存泄露问题。
- 点赞
- 收藏
- 关注作者
评论(0)