0

我正在尝试使用我的所有线程来实现 3 TPS 的目标。我使用过Constant Throughput Timer,但不知何故它不能提供恒定的 TPS。它确实超过了 3 TPS,比如有时 10 TPS。


测试场景

线程组 1

  • 该线程组在服务器上提交 XML 并检查状态。
  • 我在此提交报价操作下放置了常量 Timer,并将值设置为每分钟 3 个。
  • 每次报价提交后,我都会执行一些操作。

线程组 2

  • 该线程组在服务器上提交 XML 并像第一个线程组一样检查状态,但其余操作与第一个不同。
  • 我在此提交报价操作下放置了常量 Timer,并将值设置为每分钟 3 个。

线程组 2

  • 此线程组在服务器上提交 XML 并检查状态,如第一个和第二个线程组,但其余操作与第一个和第二个不同。
  • 我在此提交报价操作下放置了常量 Timer,并将值设置为每分钟 3 个。

我需要来自所有这些线程组的 3 TPS 来提交报价步骤,我能够在一定程度上实现这一点,但它不是恒定的。 在此处输入图像描述

有人可以帮忙管理 TPS 吗?

下面是图表,您可以看到一些高交易: 在此处输入图像描述

4

2 回答 2

0

CTT 将在一段时间后为您提供“恒定”的吞吐量,而不是像您的测试显示的那样缩短时间。

您看到的峰值来自服务器响应时间的变化。

也许你可以试试这个方法:

配置线程组:

  • 循环计数 = 1

  • 加速期 = 测试时间(我的示例为 3600 秒)

  • 延迟线程创建直到需要 = true

  • 调度程序持续时间 = 3600 秒

  • 调度程序启动延迟 = 0

  • 如果运行 1 小时,要达到每分钟 3 Trans,请将线程数设置为 180。

于 2014-08-09T06:16:13.883 回答
0

通过将操作分成多个线程,我可以在一定程度上对其进行管理。在我之前在线程 1 中的示例中,我正在执行一些影响 CTT 的操作。为了解决问题,我正在使用队列概念。 在此处输入图像描述

  • 首先分离你的线程,如果你的任何动作需要时间将它们移动到单独的线程。在下面的示例操作 QuoteStatus 和进一步是我的线程 1 的一部分,由于服务器响应缓慢,它不允许我 CTT。

在此处输入图像描述

如果您查看线程一的上述响应时间,它非常恒定,具有多个操作是一个线程导致问题。如果您的目标是保持恒定的吞吐量,最好每个线程保持一个动作,然后使用 Inter_Thread 通信在其他线程中传递数据。

于 2014-08-15T18:02:57.917 回答