JAVA 线上故障排查完整套路!牛掰

作者:fredalxin原文链接:https://fredal.xin/java-error-check线上故障主要会包括 CPU、磁盘、内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍。

JAVA 线上故障排查的最全总结!赶快给自己查缺补漏吧

我们可以使用命令cat jstack.log | grep “java.lang.Thread.State” | sort -nr | uniq -c来对 jstack 的状态有一个整体的把握,如果 WAITING 之类的特别多,那么多半是有问题啦。

讲讲JAVA中的死锁问题

引言今天在网上看到了一个图片,嗯,似乎给自己的未来找到了方向:大家要努力!今天我们来讲讲java中的死锁问题,大致分为下面三个小点如何检测死锁如何预防死锁隐蔽的死锁正文如何检测死锁首先。

【开发者成长】JAVA 线上故障排查完整套路!

我们可以使用命令catjstack.log | grep “java.lang.Thread.State” | sort -nr | uniq -c来对 jstack 的状态有一个整体的把握,如果 WAITING 之类的特别多,那么多半是有问题啦。

JVM堆外内存泄漏?赶紧起床排查

在整个排查过程中,我也走了不少弯路,但是在文章中我仍然会把完整的思路和想法写出来,当做一次经验教训,给后人参考,文章最后也总结了下内存泄漏问题快速排查的几个原则。

聊聊当业务数据时间和预期的不一样,可以从哪些方向排查

前言前些天业务部门的开发同事遇到了一个奇怪的bug,首先他们有个业务已经入库的创建时间和服务器时间相差了8个小时,其次当这个时间显示到前端后,这个时间竟然和服务时间相差了好几个月。

「干货」Linux-Java线上故障全套路排查

也可以通过 cat jstack.log | grep “java.lang.Thread.State” | sort -nr | uniq -c 来查看一下线程状态,重点关注WAITING和TIMED_WAITING的线程,如果WAITING线程比较多那说明线程池分配有问题了。

Java服务异常排查定位大图

引言研发工程师日常的工作除了开发实现新需求之外,排查定位问题也是重要的组成部分。如果在发生线上故障的时能够快速定位线上bug并且修复bug,不仅是研发工程师技术能力的重要体现,同时也可以帮助线上及时止血避免平台故障进一步蔓延,从而导致影响用户体验或者产生不可挽回的资损。

Windows环境下如何进行线程Dump分析

打开dump文本文件,通过十六进制的tid找到对应的堆栈信息,就可以定位到具体的业务代码调用位置:从上图可以看出出问题的代码是在DeadLockTest的70行,线程的状态是BLOCKED,因为dump线程时加上了 -l 的参数,所以在dump的最下方jvm会输出死锁的信息:很明显Thread-1线程在等待0x000000076b940cf0这个锁,它本身持有0x000000076b940d00这个锁,而Thread-0刚好在等待0x000000076b940d00这个锁,它本身持有的锁是0x000000076b940cf0,这样成了两个线程互相等待对方手里持有的锁,导致了死锁的出现。

在Java项目中打印错误日志的正确姿势,排查问题更方便,非常实用

info用于打印程序应该出现的正常状态信息, 便于追踪定位;warn 表明系统出现轻微的不合理但不影响运行和使用;error 表明出现了系统错误和异常,无法正常完成目标操作。

网站地图