生产事故
文章平均质量分 83
C18298182575
跳出舒适区
展开
-
内存溢出+CPU占用过高:问题排查+解决方案+复盘(超详细分析教程)
Java后端技术24 人赞同了该文章。转载 2023-06-13 10:14:22 · 772 阅读 · 0 评论 -
点一下详情系统挂了,CPU100%
看这玩意啥都看不出来,感觉是系统对象没有释放,在疯狂GC,但是因为FULL GC的时候已经STW了,所以无法查看到底是哪个线程出了问题。看了一下代码,主要是同事业务逻辑问题,有个参数没传进去,导致 sql 走了全表扫描,数据很多,要查很久,查到了几百万的数据,gc 也无法回收。等系统没什么人用的时候,我再试着重现一下问题,打开系统一顿乱点,结果是点开某个功能的详情时系统卡住了,CPU又飚上去了,喜闻乐见~问题定位到了,再实锤一下之前是不是这个问题,我看了一下。日志发现,确实是这个接口卡了一千多秒。转载 2023-06-13 10:15:24 · 123 阅读 · 0 评论 -
线上服务器出现CPU飙升问题该怎么办?
背景线上Linux服务器CPU飙升,告警群一直在告警,告警邮件也收到一堆…发现就是我们的应用程序进程搞得鬼…领导就要发飙啦…PS:以下的示例非线上环境数据,只做演示参考。jdk版本1.8。如何定位问题1.我们首先需要定位是哪个进程搞得鬼!top命令来帮忙,top命令执行后我们可以按P来让这个动态列表按照CPU资源占用率进行排序,那第一个自然就是我们自己的进程了 - -! ps:P重复按就是升序和降序的区分。按M是按照内存使用率排序。top - 18:48:55 up 6 days,转载 2021-10-09 09:05:31 · 479 阅读 · 0 评论 -
mq消息落地及业务处理踩坑记录
一.业务场景接受mq订单消息,落订单中间表,成功后,生成订单跟踪表。二.生产出现问题中间表及订单跟踪表出现大量重复数据,进而又导致,后续流程出错,而且生产上跑了两天才发现问题,存在几万条脏数据。 新表加唯一索引后,捕获了DuplicateKeyException异常,生产依然出现大量唯一键冲突异常,影响其他错误问题定位。三.原因根本原因:消息重复下发了。且重复次数极多,有点重复下发几十次,且mq key不同。todo 未找到未什么重复下发。 自身原因:代码及数据库层没有控制好。像这种存原创 2020-12-01 16:41:43 · 482 阅读 · 0 评论 -
解决方案:如何防止数据重复插入
此文为转载,先说一个我在生产上真实存在的案例业务场景:我们做的是仓库管理系统,产线上需要零件的时候,首先生成一个拉动,我需要把拉动,生成拣货单,然后根据拣货单去拣货,上线。操作流程是:在web上选择多个拉动单,点击组单按钮,即可生产拣货单。但是存在这样一个问题:原来拉动单:拣货单 1:1,结果一个拉动单生成了多个拣货单,且生成的拣货单创建时间完全一样,但是操作人,不完全一样。分析原...转载 2019-04-24 17:45:08 · 5439 阅读 · 0 评论 -
快速定位java系统的线上问题--转
原文地址:http://m.blog.csdn.net/article/details?id=43376943前言:我们的场景并没有像BAT等大型互联网公司里的系统那么复杂,但是基本上也有一定的规模,暂且就认为我们是一个中型互联网系统。但是工具和思路都是差不多的,因为原理是一样的。同时下面提到的命令,具体详细的用法,我想google上已经有足够多的资源了,这里只说思路与方向。 首先我们...转载 2019-02-25 10:59:39 · 270 阅读 · 0 评论 -
Java开发必须掌握的线上问题排查命令
作为一个合格的开发人员,不仅要能写得一手还代码,还有一项很重要的技能就是排查问题。这里提到的排查问题不仅仅是在coding的过程中debug等,还包括的就是线上问题的排查。由于在生产环境中,一般没办法debug(其实有些问题,debug也白扯。。。),所以我们需要借助一些常用命令来查看运行时的具体情况,这些运行时信息包括但不限于运行日志、异常堆栈、堆使用情况、GC情况、JVM参数情况、线程情况等。...转载 2019-02-27 14:25:58 · 183 阅读 · 0 评论 -
一次生产内存溢出记录
一,报错信息:二,问题定位:这是一个查询功能三,代码:public JSONObject selectInvTransactions(InvTransactionsVO invTransactionsVO) { int pageNum = invTransactionsVO.getPageNum() == null ? 0 : invTransactionsV...原创 2019-02-15 13:43:31 · 445 阅读 · 0 评论 -
项目中遇到生产事故
1,2019-01-08事件:拉动单重复组单影响:导致一个拉动单组成多个拣货单,多拉动,多拣货,多出库,多上料原因:web页面按钮,重复点击,导致重复请求处理:前端控制,返回结果后,才能再次请求其他处理方式:后台方法中加redis锁,处理完解锁根本原因:后端未考虑控制,测试未提前测到该问题严重程度:4颗星2,2109-01-072.1,事件:全选新拉动组单打印导...原创 2019-01-09 09:52:04 · 269 阅读 · 0 评论 -
项目中遇到生产事故追踪---重复组单
之前说生产重复组单的问题,之前只是前端重复提交控制,后台没有,会导致两个人同时操作导致并发。处理方式是后台加redis锁。通过测试环境测试,这种请求确实可以通过加锁解决,但是其他的生产脏数据的情况与此不同,并没有找到问题的根本原因。1,不同人,1:2,间隔1s;原因:双人双机处理;处理方式:加锁2,同一人,1:2,间隔30s;原因:未知3,同一人,1:4,间隔37...转载 2019-01-18 10:04:04 · 178 阅读 · 0 评论