Ibm mobilefirst IBM Mobilefirst 7.1性能问题,用于从其适配器转移呼叫

Ibm mobilefirst IBM Mobilefirst 7.1性能问题,用于从其适配器转移呼叫,ibm-mobilefirst,websphere,mobilefirst-adapters,mobilefirst-server,Ibm Mobilefirst,Websphere,Mobilefirst Adapters,Mobilefirst Server,我们在IBM Mobilefirst适配器中面临性能问题。我们使用的是IBM Mobilefirst版本7.1.0.0-IF201807271401。当用户强度增加到1000时,适配器将花费50秒以上的时间来命中ESB服务,当用户强度小于20时,适配器将在一秒钟内命中ESB 请查看以下详细信息以了解更多信息 应用程序架构: 应用程序适配器ESB数据库 我们为这个项目做了最好的硬件设置。RAM或CUP没有问题。我们还观察到,当用户强度达到1000时,CPU利用率低于15% 请让我们知道为什么适配器

我们在IBM Mobilefirst适配器中面临性能问题。我们使用的是IBM Mobilefirst版本7.1.0.0-IF201807271401。当用户强度增加到1000时,适配器将花费50秒以上的时间来命中ESB服务,当用户强度小于20时,适配器将在一秒钟内命中ESB

请查看以下详细信息以了解更多信息

应用程序架构:

应用程序适配器ESB数据库

我们为这个项目做了最好的硬件设置。RAM或CUP没有问题。我们还观察到,当用户强度达到1000时,CPU利用率低于15%


请让我们知道为什么适配器在用户强度增加时获得更多时间,以及相同的分辨率

您似乎偶然发现了一个典型的资源争用案例。您没有提到您正在使用哪种适配器和您的应用程序服务器,特别是有多少个节点

假设Javascript HTTP适配器(您正在连接到ESB),请注意它的默认并发性为50。这意味着从适配器最多可以打开50个到后端的并发连接。另外,假设有两个应用服务器节点部署了运行时,那么这将成为到ESB的100个可能的并发连接。这适用于所有JavaScript HTTP适配器

当1000个用户登录并且所有用户都调用同一个适配器时,从该适配器到ESB只能进行100个并发连接。这意味着其余的将不得不等到现有连接完成。您没有提到ESB可以支持的最大并发性。还有,你的后端。如果ESB不能支持100个并发用户,那么ESB上的连接将受到限制。同样的情况也可能发生在后端。这意味着来自移动设备的实际请求正在等待。现在,并非所有用户都将调用同一个适配器。请求可能分布在所有适配器上,如果所有适配器都通过同一个ESB,那么ESB将一直被加载,并且可能没有足够的可用连接

您自己的观察表明,该系统在20个并发用户下运行良好,但无法扩展到支持1000个。仅在最好的硬件上部署是不够的。您需要配置应用服务器、适配器、后端和ESB以实现高并发性


验证ESB可以支持多少并发连接。计算后端响应所需的时间。查找到后端和负载下返回的请求的总周转时间。然后适当调整大小和音调。如果您在适配器中为“maxConcurrentConnectionsPerNode”属性设置了一个非常高的值,则将其降低以匹配ESB的功能。另外,为适配器分析并设置适当的连接和读取超时值,以便等待时间过长的连接将超时,并且可以释放Webcontainer线程

maxConcurrentConnectionsPerNode在每个节点上设置为600,即每秒1200个请求,设置为600,两个节点表示为1200个并发连接。它仍然需要与后端一样多的时间。它不是每秒1200个请求。您的ESB能否支持1200个并发连接?还有,其他适配器呢?如果在所有适配器中设置高值,并且它们都使用相同的ESB,那么您的ESB和后端也会出现严重的争用
Case 1: Users strength is less then 20 users
Request made in App: 10:15:00 AM
Request reached in Adapter: 10:15:00 AM  
Request reached in ESB: 10:15:00 AM

Case 2: Users strength is increased towards 1000
Request made in App: 10:15:00 AM
Request reached in Adapter: 10:15:00 AM  
Request reached in ESB: 10:15:55 AM