Java JMeter为什么添加常量计时器后错误减少%

Java JMeter为什么添加常量计时器后错误减少%,java,spring,multithreading,spring-boot,jmeter,Java,Spring,Multithreading,Spring Boot,Jmeter,我正在使用JMeter进行性能测试。我已经邀请了大约20个虚拟用户,并运行了30分钟的PostRESTURL。我观察到有一些错误增加了%。(假设错误%=30%) 所以我所做的是:我添加了常数计时器(线程延迟)kepted大约2秒,现在错误%减少了很多。(假设错误%=2%) 1)从技术上讲,我可以知道为什么在添加常量计时器(线程延迟)后,错误率降低了% 2)当请求不断通过JMeter到达服务器时,为什么会出现错误?(未添加恒定计时器或线程延迟时) 3)CPU创建每个线程需要多少时间?我问becoz

我正在使用JMeter进行性能测试。我已经邀请了大约20个虚拟用户,并运行了30分钟的PostRESTURL。我观察到有一些错误增加了%。(假设错误%=30%)

所以我所做的是:我添加了常数计时器(线程延迟)kepted大约2秒,现在错误%减少了很多。(假设错误%=2%)

1)从技术上讲,我可以知道为什么在添加常量计时器(线程延迟)后,错误率降低了%

2)当请求不断通过JMeter到达服务器时,为什么会出现错误?(未添加恒定计时器或线程延迟时)

3)CPU创建每个线程需要多少时间?我问becoz的原因是,我在JMeter中没有看到像530000这样的示例/请求(当运行15个虚拟用户时)。据我所知,只有4个线程并行运行(如果cpu有4个内核)。那么,我的CPU如何能够在30分钟内创建530000个请求呢

4) 在1秒内,CPU可以创建多少个线程?(假设CPU有4个核)

  • 常量计时器在请求之间添加“思考时间”,如果您将计时器添加到与所有请求相同的级别(有关更多详细信息,请参阅)-这意味着JMeter将在计时器范围内的每个采样器之前“睡眠”2秒。若你们有定时器,你们会产生更少的负载,所以应用程序有更多的机会正确响应
  • 最可能的情况是应用程序过载,即您发现
  • 它主要取决于线程正在做什么、请求的大小、响应、前置/后置处理器的数量。只要确保JMeter在CPU、RAM、网络和磁盘方面有足够的空间来运行,JVM有足够的堆空间,并且不会频繁地执行垃圾收集。您可以使用内置的操作系统监视工具或
  • 常量计时器在请求之间添加“思考时间”,如果您将计时器添加到与所有请求相同的级别(有关更多详细信息,请参阅)-这意味着JMeter将在计时器范围内的每个采样器之前“睡眠”2秒。若你们有定时器,你们会产生更少的负载,所以应用程序有更多的机会正确响应
  • 最可能的情况是应用程序过载,即您发现
  • 它主要取决于线程正在做什么、请求的大小、响应、前置/后置处理器的数量。只要确保JMeter在CPU、RAM、网络和磁盘方面有足够的空间来运行,JVM有足够的堆空间,并且不会频繁地执行垃圾收集。您可以使用内置的操作系统监视工具或

  • 请在下面找到您问题的答案

    我是否可以从技术上知道,为什么在添加了常量计时器(线程延迟)后,错误率降低了?

    这是因为常数计时器为每一个后续项保持测试 请求2秒,通过这样做,JMeter创建了一种机制 那个请求不会堆积起来,最终会出错,这就是为什么你会看到 错误百分比的减少

    当请求不断通过JMeter到达服务器时,为什么会出现错误?

    使用多个线程不断命中请求可能会导致错误 在输出方面。这是因为当jmeter创建请求时 在收到响应之前,我们正在创建另一个线程和 这一过程持续进行,造成网络拥塞并返回 错误。建议始终创建一个真实的性能或 负载测试计划,以便分析系统的实际行为

    CPU创建每个线程需要多少时间?我问becoz的原因是,我在JMeter中没有看到像530000这样的示例/请求(当运行15个虚拟用户时)。据我所知,只有4个线程并行运行(如果cpu有4个内核)。那么,我的CPU如何能够在30分钟内创建530000个请求呢?

    这完全取决于您的系统资源和I/O操作。如果你 已经创建了一个像10000个线程这样的计划,启动时间像360个线程 秒。这意味着您将在一段时间内每秒加载27.77个请求 特定请求,它是该特定请求的吞吐量。 现在想象一下,如果您的测试计划中有20个请求,而不是这10000个 线程将对所有20个请求执行,总吞吐量为 27.77*20=555.44/秒,在理想情况下,这完全取决于您的服务器、网络和应用程序体系结构的资源 测试

    在1秒内,CPU可以创建多少线程?(假设CPU有4个内核)

    线程只是一个占用内存的进程,您可以创建尽可能多的线程 线程,但在指定的内存和 系统的堆大小。就像你的机器上有4GB内存 您正在尝试创建10000个线程,系统将停止 响应,因为4GB内存中有一部分 已分配给中安装的其他进程和应用程序 你的操作系统。您可以随时检查并尝试从小到大的数字到 创建您的测试计划,以及您的客户将如何支持该测试计划 机器


    希望您能得到您问题的答案。

    请在下面找到您问题的答案

    我是否可以从技术上知道,为什么在添加了常量计时器(线程延迟)后,错误率降低了?

    这是因为常数计时器为每一个后续项保持测试 请求2秒,通过这样做,JMeter创建了一种机制 那个请求不会堆积起来,最终会出错,这就是为什么你会看到 错误百分比的减少

    当请求不断通过JMeter到达服务器时,为什么会出现错误?

    使用多个线程不断命中请求可能会导致错误 在里面