背景
跑自动化测试的环境每隔几天就报内存告警,查看内存使用曲线也是阶梯上升
5.27 11:48-5.31 10:30之前就告警了
分析过程
1、使用top命令查看当前使用内存,RES用到了10G(我们是云服务器,%MEM可忽略)
2、与云服务平台的运维同学确认,内存使用率的计算方式:RES/容器配置的内存。我们的容器配置的是12G。这样算起来,我们的服务的内存使用率就达到83%
3、用jmap命令查看内存中各类型的占用情况(鉴于不会分析,也没看出个啥)
4、 突然想起来,看一下java启动参数中分配的内存设置,结果,给分配的最大可用内存就是10G,也就怪不得会上升到10G了
5、修改java启动参数,重新启动服务,观察一周后,回来更新结论……