生产环境tomcat重启问题-内存溢出

环境:linux --》tomcat --》 war(SpringBoot、Mybatis) --》Oracle

问题:生产环境tomcat重启

有几个疑问:
1、看日志,重启后用户并没有重新登陆,直接重新调用接口,什么机制?
token + redis 会话保持
–context.xml文件中session持久化是否有影响: 参考连接

2、之前执行中的请求,数据库操作会有影响吗?
看日志和数据库记录,之前执行数据不保存,无影响。
–不过这里也提醒我们在编写程序时注意事务处理,避免事务设置不合理产生一些中间数据,后续不好处理。

3、 自动重启在那配置的?
运维配置守护进程
4、内存溢出的报错日志在哪?
dmesg | grep java linux 查看杀死jvm进程


内存溢出解决:
重启时间段日志文件明显很大,说明涉及数据量较大操作。
jvm参数Xmx已设置为机器最大内存,考虑程序方面问题,
系统中对大数据量操作均进行分页处理,如查询使用开源PageHelper工具(Mybatis - 通用分页拦截器,仅支持查询, 待深入);插入的分页是自己程序处理的;
排查重启时日志,发现问题程序:解析xls文件(30多万行)为List<T>,然后转化为List<List<T>>结构用来分页插入,导致内存中有两个大对象。转化完成后,应将不用的原List<T>=null, 这样就可以GC了。连接

文件解析使用了MultipartFile,并封装了工具类,解析程序是否可以分页,是否有未释放资源 待深入

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值