问题产生 最近新上线的系统偶尔会报FullGC时间过长(>1s)的告警,查看GC日志,如下图所示: 看到GC日志,我第一时间关注到的不是GC耗时,而是GC触发的原 ...
在测试环境中开启的堆大小是 g。但是却发生了OOM。 发生OOM的场景是: 上传Excel 之后进行数据的清洗,然后清洗完成之后会将清洗掉的 清洗后的数据再次备份到磁盘中 同时将清洗后的数据入关系型数据库。 解析Excel 用的是POI, 数据清洗用的是Tablesaw, 且清洗的操作都是在内存中处理的 记录下此次OOM的排查过程。 . 前置知识 关于JVM调试的前置知识。 . 抛出OOM的前提 ...
2021-06-25 19:20 0 289 推荐指数:
问题产生 最近新上线的系统偶尔会报FullGC时间过长(>1s)的告警,查看GC日志,如下图所示: 看到GC日志,我第一时间关注到的不是GC耗时,而是GC触发的原 ...
上周运维反馈线上程序出现了OOM,程序日志中的输出为 看线程名称应该是tomcat的nio工作线程,线程在处理程序的时候因为无法在堆中分配更多内存出现了OOM,幸好JVM启动参数配置了-XX:+HeapDumpOnOutOfMemoryError,使用MAT打开拿到的hprof文件进行分析 ...
公司报表分析系统已经运行了一年多,最近收到服务器内存警告信息内存耗尽,第一时间着手排查问题,记录下排查内存耗尽问题整个过程使用到的命令。 第一步查看内存使用情况: free -m 命令:已M单位显示服务器实际内存使用情况,如图: 第1行mem数据:total内存总数 ...
背景以前接触到的数据库死锁,都是批量更新时加锁顺序不一致而导致的死锁,但是上周却遇到了一个很难理解的死锁。借着这个机会又重新学习了一下mysql的死锁知识以及常见的死锁场景。在多方调研以及和同事们的讨论下终于发现了这个死锁问题的成因,收获颇多。虽然是后端程序员,我们不需要像DBA一样深入地去分析 ...
近期需要对公司的接口做线上的巡查监控,需要写一个脚本放到服务器上,定时运行脚本监测线上接口是否正常。测试的接口不是HTTP协议,而是公司基于TCP协议开发的私有协议,因此不能直接用现成的一些接口测试工 ...
背景:后台定时任务脚本每天凌晨5点30会执行一个批量扫库做业务的逻辑。 gc错误日志: 借鉴于:understanding-cms-gc-logs 得知导致concu ...
微信公众号:内核小王子 觉得可以的话欢迎关注 场景:公司对外网关对很多外部商户开放,运行多年一直正常,昨天某一个客户调用我们接口的时候频繁报connectiontimeout,异常如下: 该异常来自于httpclient,原因是创建连接超时,也就是tcp进行三次握手的时候失败 ...
地去分析与锁相关的源码,但是如果我们能够掌握基本的死锁排查方法,对我们的日常开发还是大有裨益的。 死锁 ...