手机购物网站 设计,wordpress asp版本,怎么做链接,珠海网站建设zhkmkj最近遇到一个突发问题#xff1a;服务器没报警但是应用接口崩了…
为其他业务系统提供一个接口#xff0c;平时好好的#xff0c;突然就嚷嚷反馈说访问不了了#xff0c;吓得我赶紧跳起来#xff01; 正常情况下在系统崩溃前#xff0c;我会收到很多系统报警#xff0…最近遇到一个突发问题服务器没报警但是应用接口崩了…
为其他业务系统提供一个接口平时好好的突然就嚷嚷反馈说访问不了了吓得我赶紧跳起来 正常情况下在系统崩溃前我会收到很多系统报警但是这次它悄无声息的出问题还是挺恐怖的
然后我立马看了下服务器的情况服务器没有报警也可以ping通就是服务接口确实访问不了了 然后还给我竖了个中指。。。。
好好好现在都是这么折磨打工人的是吧。 随后我又看了下数据库的使用率也没打满 然后随即查看对外提供接口的性能监控情况除了9点15那会有点慢其他一切正常而且这个接口本身调用量不高的系统完全可以hold住为什么还是有问题
于是怀疑是不是9点15那会接口慢了导致的。询问调用方之后说超时连接时间设置的是5s。那这个接口完全可以在5s内返回。 随后我又找调用方拿到了这个日志信息 RPC框架抛出异常cause: java.util.concurrent.RejectedExecutionException: Biz thread pool of provider has bean exhausted 它的意思是说线程池已经耗尽了所以导致系统异常了。
目前系统最大设置的线程数量是300我将配置提升到400
随后对日志中这个关键词Biz thread pool of provider has bean exhausted 做监控之前都是系统CPU、TCP连接、内存、磁盘、以及方法调用时长以及可用率的报警但是这些报警配置没办法监控到此情况的发生。于是当系统报线程池满了之后就需要赶紧调整下配置。
当然线程池的最大线程数也不是能无限增加的这取决于系统负载能力。最大线程数越大系统负载也会增大数据库压力也会越大如果慢sql较多很可能数据库马上cpu就打满了所以关键还是要从代码层面解决一些长链接的慢sql长事物。
具体可以参考下这篇线程池队列已满时会发生什么如何解决这个问题 希望我的悲惨经历能给其他人排查问题带来一点思路吧…