使用JMeter测试Cloudant连接池

问题描述 投票:0回答:1

我创建了两个应用程序(一个用Java,一个用NodeJS)连接到Cloudant的Bluemix实例,我正在尝试测试我的连接池设置。

使用Java,我使用带有和不带OkHttp依赖关系的java-cloudant库。我相信使用默认连接池的最大连接数为5.使用OkHttp时,我将最大连接数设置为1,5,200和1000.在JMeter中使用200,500,1000个线程进行测试,我得到了相同的结果使用默认连接池和使用具有不同最大连接设置的OkHttp之间的结果。

使用NodeJS,我使用的是nodejs-cloudant库,结果类似于Java。

我希望我的测试能够更快地连接池的大量连接,但它似乎并没有影响我的测试。有谁知道发生了什么?

java node.js jmeter ibm-cloud cloudant
1个回答
0
投票

您的假设是正确的,如果连接池低于请求将排队的传入请求数,性能将会降低。但是,当不会出现这种情况时,我至少可以看到两种情况:

  1. 你并不是真的在JMeter中模拟200,500等线程。根据您的配置,您可能会遇到某些线程已经完成其工作而某些线程尚未启动的情况。仔细检查你真正使用了多少线程,即Active Threads Over Time监听器或HTML Reporting Dashboard的等效图表。查看JMeter测试结果:Why the Actual Users Number is Lower than Expected,了解常见错误的详细说明。
  2. 您的应用程序无法处理那么多请求,即您到达系统的bottleneck,因此随着您增加虚拟用户数量,吞吐量增加到特定数量的线程,那么最高性能点就是saturation point ,然后吞吐量保持不变甚至降低。因此,请检查您的应用程序是否有足够的空间来运行资源(RAM,CPU,网络,磁盘) - 您可以使用JMeter PerfMon Plugin或使用profiling tools来确定应用程序花费时间的位置。
© www.soinside.com 2019 - 2024. All rights reserved.