生产问题分析
文章平均质量分 72
分析线上故障,已经找到解决方案
小哥骑单车
Nobody can go back and start a new begining, but anyone can start today and make a new ending.
展开
-
如果服务器出现内存泄漏,堆内存缓慢上涨,一段时间后触发了fullGc,如何快速定位?
1、最近有没上过线,最近历史记录,代码改动有没可能造成泄露2、如果需要快速定位: jmap -histo 18640|head -20-histo[:live] to print histogram of java object heap; if the "live" suboption is specified, only count live objects3、如果不考虑系统会被暂停,导致stop th...原创 2021-10-20 11:07:50 · 501 阅读 · 2 评论 -
生产异常 Cause: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Lock wait timeout exceed
1、程序中报错日志:Cause: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction; Lock wait timeout exceeded; try restarting transaction; nested exception is com.mysql.cj.jdbc.exceptions.MySQLT..原创 2021-09-14 16:38:51 · 21702 阅读 · 6 评论 -
生产一次RedisCommandTimeoutException问题分析
1、在某个时间段,生产日志大量出现RedisCommandTimeoutException,一共98次:grep "RedisCommandTimeoutException" *_2021-09-10.5.log |wc -l2、查看第一次出现的位置:grep -C 100 "RedisCommandTimeoutException" *_2021-09-10.5.log |head -201完整异常信息如下:2021-09-10 14:50:33.423 INFO [h...原创 2021-09-13 21:16:45 · 13102 阅读 · 3 评论 -
一次性能优化(主要是sql查询优化,把or 改成 union all)
1、原代码如下:(1)、业务controller层,调用了3次service方法访问数据:ordersService.getBussOrders ( ...)(2)、而ordersService中的,service层调用了访问数据库方法,在ordersDao.listBussPOrders()方法里面,最后执行的是mybatis查询(3)mybatis中的*mapper.xml文件:原有的业务含义应该是,分别在以下3个参数有值的时候departId、sponsorId..原创 2020-12-03 15:23:43 · 988 阅读 · 0 评论 -
SpringBoot上传文件临时目录问题 (The temporary upload location [/tmp/tomcat.4904054745371080323.8091/work ... )
1、我使用的是Springboot程序,系统有上传文件的需求,在平时使用是没有问题的。不过由于我们公司内部业务整顿,受金融监管影响,很久没有上传文件的需求了,所以在生产上,出现了以下问题:The temporary upload location [/tmp/tomcat.4904054745371080323.8091/work/Tomcat/localhost/ROOT] is not valid","path":"/uploaddirectloan"}截图如下:2、但是进入生.原创 2020-10-27 16:13:24 · 10966 阅读 · 0 评论 -
Java程序插入mysql数据库,时间超前8个小时的问题
1、近期发现一个问题,数据库表中字段edit_time最后更新时间,在第一次插入,或者每更新一次update的时候,时间戳都增加了8个小时;2、date命令发现Linux服务器时间正确:3、通过mysql 客户端执行 select now(),发现数据库系统时间也是当前时间,没有时差:4、并且这里设置字段更新时间edit_time是通过mysql自动执行的,以下是建表字段语句:`edit_time` timestamp NOT NULL DEFAULT C...原创 2020-07-25 15:25:55 · 3272 阅读 · 3 评论 -
线上故障分析: Memory cgroup out of memory: Kill process ...(结合dmesg 、jstack命令和jvisualvm工具综合分析)
1、在某一天时段,我生产上的程序突然宕机了,使用dmesg -T >my.log 命令输出到日志,查看系统日志,至于dmesg有什么用,参考这篇博客:https://blog.csdn.net/shuihupo/article/details/80905641?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase&depth_1-utm_source=di.原创 2020-07-20 22:36:25 · 21990 阅读 · 13 评论 -
线上故障分析 Socket accept failed java.io.IOException: Too many open files 导致的系统宕机问题
1、项目运行环境,CentOS Linux release 7.4.1708,springboot2.1.0.RELEASE,jdk1.8,mysql5.6.162、系统在某个周末的时候,无法正常运行,连续抛几十分钟异常java.sql.SQLNonTransientConnectionException: Could not create connection to database server,导致系统宕机,截图如下,当时telnet ip port,发现mysql数据库服务端网络也是...原创 2020-07-19 16:27:48 · 8162 阅读 · 0 评论