记一次服务器内存溢出故障
1、查看当前cup使用情况
top
2、查看服务进程
jps -lm
3、显示堆详细信息
jmap -heap 进程id
本次故障产生的原因
后台提供给客户端和app的接口,没有做搜索字段为空的判断,前端提供的空串,到达mapper文件中,判断为空,动态sql的条件无效,出现全表查询,由于全表数据量较大,瞬间将内存和cup打满,服务down机。
后续插曲
后台代码对参数做了非空判断,但是忽略了一个问题,如果操作人用输入的参数只是1位数字的话,后台查询的数据量也较多,导致系统内存瞬间打满,服务再次宕机。