记log4j打印异常日志导致线程阻塞的问题排查
最近线上一个服务偶发单机接口耗时飙升的现象,伴随着内存使用增长并出现吃swap的情况,16核的系统load也飙升到50以上,IOUtil接近
最近项目中在使用javacv时在加载jar中的so共享链接库时出现了StackOverFlowError,最终原因是由于jvm启动时指定的最大栈内存Xss的大小不够,从而导致线程栈溢出。
Hystrix是netflix公司开源的一个通用系统保护框架,提供服务对远程依赖的快速失败机制、requestCache支持、请求合并能力等。目前通讯这边已经大范围使用,并结合profile日志进行了一些简单的定制化,目前使用情况看,实用性和稳定性比较出色,接入成本也较低。有兴趣的组可以参考以下范例尝试接入使用。
很多时候怀疑线上运行的代码有问题但又苦于日志打的不够详细的时候,BTrace作为基于ASM实现的代码动态跟踪工具能很快排上用场,在不需要重启java进程的情况下,通过脚本动态切入到嫌疑代码块,快速定位问题。