WSO2 ESB.5.0.0开放并行连接限制

WSO2 ESB.5.0.0开放并行连接限制,wso2,wso2esb,wso2carbon,Wso2,Wso2esb,Wso2carbon,我们有wso2esb-5.0.0,我们可以看到服务器间歇性地获得高CPU使用率,并开始逐渐增加,然后使API运行缓慢,最后停止响应,为了使其工作,我们重新启动ESB服务器,它将恢复正常工作状态。有人能告诉我可能是什么问题吗 ESB每秒只能处理x数量的API调用,每秒只能处理x数量的开放连接,这有什么限制吗?任何意见和建议都会很有帮助 配置- 我们有2个ESB和2 MB在集群模式下运行。这个问题在ESB的两个方面都可以看到。 ESB-16GB RAM,缓存8GB 根据传入请求的数量,我们可以看到建

我们有wso2esb-5.0.0,我们可以看到服务器间歇性地获得高CPU使用率,并开始逐渐增加,然后使API运行缓慢,最后停止响应,为了使其工作,我们重新启动ESB服务器,它将恢复正常工作状态。有人能告诉我可能是什么问题吗

ESB每秒只能处理x数量的API调用,每秒只能处理x数量的开放连接,这有什么限制吗?任何意见和建议都会很有帮助

配置-

我们有2个ESB和2 MB在集群模式下运行。这个问题在ESB的两个方面都可以看到。 ESB-16GB RAM,缓存8GB

根据传入请求的数量,我们可以看到建立的连接值从100到500不等


谢谢

ESB服务器可以处理的请求数量有限制。这取决于许多因素,如后端延迟、中介实现、请求薪资水平等

例如,考虑一个场景,其中使用一个中介器(如脚本中介器)来处理一个大的有效负载(不推荐)。在这种情况下,转换可能需要相当长的时间,导致线程在脚本中介器处阻塞。默认情况下,直通消息处理器线程池定义为500。因此,它可能导致没有线程处理新请求的情况,从而导致响应延迟,最坏的情况是内存不足

因此,根据现有信息,我们无法确定问题的确切原因。但是从上面的描述中,我们可以怀疑可用线程存在问题(由于响应缓慢)。您可以捕获环境中的线程转储和线程使用情况,并分析问题的可能原因。请参阅文档[1]、[2]以确定如何捕获线程转储和线程使用情况。请参考[3]以澄清线程使用分析

另外,捕获并分析环境中的堆转储

[1]-https://docs.wso2.com/display/CLUSTER420/Troubleshooting+在+生产+环境中 [2]-https://gist.github.com/bsenduran/02e8bf024fcaaa7707a6bb2321e097a8
[3]-https://medium.com/@prabushi/analysis-thread-dump-with-process-instructions-c5490b97e2d1

感谢您的评论和信息。我们已经进行了线程转储并进行了分析,可以看出是Java进程消耗了更多的CPU,我们只有使用Java的ESB应用程序,没有任何其他应用程序。我们还可以看到netstat-an | grep-builded | wc-l的输出给了我们200以上的值,每当这个值变高时,我们可以看到CPU使用率也会很高。因此,我们怀疑这是因为我们在ESB中提供了限制/配置,可以更改这些限制/配置来解决问题。如果ESB有任何限制,可以在单个时间点将x个连接数/秒设置为打开状态,如果可能,可以通过更改任何配置来更改这些限制/配置。ESB服务器对它可以建立的连接数(不是无限的,服务器将在某一点崩溃,这不是由于它建立的连接数,而是由于它接收的请求量、中介和有效负载)。但是,您需要进一步调查线程转储,以确定哪些线程占用更多的CPU,哪些线程需要更多的时间执行,哪些线程持续被卡住,以确定问题的原因。