生产问题分析
文章平均质量分 72
分析线上故障,已经找到解决方案
小哥骑单车
Nobody can go back and start a new begining, but anyone can start today and make a new ending.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
一次Mysql查询踩坑经历(查询索引失效问题)
11、这里就找到问题原因了,原来是在执行查询的时候,按照常规理解,以为手机号也应该是int类型, 但是由于之前这个项目在早期的时候,别人设计的表结构字段,弄成了varchar,查询的时候导致mysql进行了隐式转换,然后索引失效,所以建表语句也要规范才行呀,不然会误导后面参与进来的其他开发同事,埋下隐形的坑。(4)如果你的字段类型是int,你传参的字符串,不会导致隐式转换索引失效,也会走索引(答但是不建议这么操作);(1)如果你的字段类型是varchar,你传参的类型是数值,会导致隐式转换索引失效;原创 2024-12-15 14:30:50 · 352 阅读 · 0 评论 -
如果服务器出现内存泄漏,堆内存缓慢上涨,一段时间后触发了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 · 596 阅读 · 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 · 23176 阅读 · 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 · 14411 阅读 · 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 · 1146 阅读 · 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 · 12063 阅读 · 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 · 3580 阅读 · 3 评论 -
线上故障分析: Memory cgroup out of memory: Kill process ...(结合dmesg 、jstack命令和jvisualvm工具综合分析)
1、在某一天时段,我生产上的程序突然宕机了,使用dmesg -T >my.log 命令输出到日志,查看系统日志,至于dmesg有什么用,参考这篇博客:https://blog.youkuaiyun.com/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 · 24605 阅读 · 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 · 8953 阅读 · 0 评论
分享