1.您能告诉我在JMeter 2.4中进行负载测试时可以使用的线程数的最大限制吗?1.在单个循环中使用所有线程,或者使用较少数量的线程并初始化循环以实现相同数量的用户/线程,这两者之间是否有区别?示例:
No. of threads=500 Ramp up=1000 Loop=1
是否与
No. of threads=50 Ramp up=100 Loop=10
或者在结果上有什么不同?
8hhllhi21#
1.线程的最大数量由许多因素决定,请参见此答案https://stackoverflow.com/a/11922239/460802
理论上,您得到的结果数相同(500),但您访问服务器的方式却截然不同。
o0lyfsai2#
最大用户数取决于您的操作系统,免费的内存和连接。Win XP被限制为3000个进程在同一时间。在Linux上是超过3000,但我不知道多少。小心,你测试服务器,如果你启动3000线程在你的机器上需要大量的资源,测试将是不真实的。我喜欢启动最大300用户每台机器。如果你想增加用户数量那么就使用分布式测试(使用更多的机器作为DoS攻击).理论上是同样数量的请求但是时间复杂度是不一样的。
ecfdbz9o3#
在创建场景和测试用例后,这是非常常见的,我们需要使用JMeter运行,并且我们必须确定在JMeter线程组中允许使用多少用户或线程的值。我们不想限制负载生成器或JMeter示例。因此,基本上,在这两种情况下都需要调整。否则,测试的结果将毫无价值,我们将损失几个小时的时间。因此,以下是我们需要考虑的事情:
*JMeter是一个Java工具,它与JVM一起运行。要获得最大的性能,我们需要在执行期间为JMeter提供最大的资源。首先,我们需要增加堆大小(在JMeter bin目录中,我们得到jmeter.bat/sh)
HEAP=-Xms512m –Xmx512m
这意味着默认分配的堆大小是最小512 MB,最大512 MB。根据您自己的PC配置进行配置。请记住,操作系统也需要一定数量的内存,所以不要分配所有的物理RAM。
NEW=-XX:NewSize=128m -XX:MaxNewSize=512m这意味着内存将以这个速率增加。您应该小心,因为,如果您的负载生成在开始时非常高,这可能需要增加。请记住,如果范围太宽,它将使JVM内的堆空间碎片化。如果是这样,垃圾收集器需要更努力地清理。
NEW=-XX:NewSize=128m -XX:MaxNewSize=512m
总之,如果JMeter脚本中不包含监听器,运行JMeter服务器内部不进行监控,网络开销/障碍和JMeter脚本都得到优化,那么这里是一个粗略的计算:
一个月一个月
您必须仅根据您的负载方案来估计您的并发用户/线程(活动线程)数。此外,您还需要监视服务器Memory consumption、CPU usages的运行是否低于80%。如果这些使用率超过80%,则认为这些测试与报告一样不可靠。为了更好更详细地理解这两个博客How many users JMeter can support?和9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure必须有所帮助。
Memory consumption
CPU usages
sdnqo3pr4#
一句话:当然,这在很大程度上取决于运行JMeter的机器,但是如果有必要的话,我可以给予您一些提示。JMeter允许您在同一个机器中运行多个进程,并且通常非常可靠,每个JMeter示例最多可以生成200个线程。如果您需要更多的线程,我建议使用多个JMeter示例。一台现代机器经过一些调整可以轻松地生成500到1000个线程。使用Linux,您可能需要增加文件描述符的最大数量(see here)中的一个。在没有GUI的情况下运行JMeter,将报表/图形数据写入一个文件中,以便稍后呈现,这会有很大的帮助。您还必须注意您的网络限制。对于Gbps网络中的服务器来说,生成数千个请求是很容易的,但共享54 Mbps路由器的笔记本电脑将受到更多限制。尝试将您与服务器的实际连接除以请求的大小。然后您就会知道带宽是否会限制您。要特别注意JMeter的配置,以下载或不下载HTML响应中引用的文件。希望我能帮上忙。2.这正是BlackGaf所解释的:“500个线程,循环1“表示500个线程同时执行一次循环。“50个线程,循环10”表示只有50个线程同时执行十次循环。
tv6aics15#
Jmeter中的线程执行没有限制。因为它是基于java的工具,所以它使用java线程功能。在并发线程执行的情况下,我们需要注意机器配置(即内存大小和CPU)。要避免OutOfMemory问题,请尝试在apache-jmeter/bin/jmeter内的jmeter脚本中使用自定义java运行时参数在NON-GUI模式下运行jmeter。默认值为512 MB。
Jmeter
OutOfMemory
apache-jmeter/bin/jmeter
jmeter
NON-GUI
8wigbo566#
1.我不认为JMeter本身有任何线程限制,只要你的机器可以处理它。测试的基本思想应该是,线程的切换和等待时间不应该对实际性能指标有太大的影响。1.这两种情况有很大的不同。在第一种情况下,最坏的情况是有500个并发用户。在第二种情况下,最大并发用户数为50。情况1的平均时间将大于情况2的平均时间。
6条答案
按热度按时间8hhllhi21#
1.线程的最大数量由许多因素决定,请参见此答案https://stackoverflow.com/a/11922239/460802
理论上,您得到的结果数相同(500),但您访问服务器的方式却截然不同。
o0lyfsai2#
最大用户数取决于您的操作系统,免费的内存和连接。Win XP被限制为3000个进程在同一时间。在Linux上是超过3000,但我不知道多少。小心,你测试服务器,如果你启动3000线程在你的机器上需要大量的资源,测试将是不真实的。我喜欢启动最大300用户每台机器。如果你想增加用户数量那么就使用分布式测试(使用更多的机器作为DoS攻击).理论上是同样数量的请求但是时间复杂度是不一样的。
ecfdbz9o3#
在创建场景和测试用例后,这是非常常见的,我们需要使用JMeter运行,并且我们必须确定在JMeter线程组中允许使用多少用户或线程的值。我们不想限制负载生成器或JMeter示例。因此,基本上,在这两种情况下都需要调整。否则,测试的结果将毫无价值,我们将损失几个小时的时间。因此,以下是我们需要考虑的事情:
*JMeter是一个Java工具,它与JVM一起运行。要获得最大的性能,我们需要在执行期间为JMeter提供最大的资源。首先,我们需要增加堆大小(在JMeter bin目录中,我们得到jmeter.bat/sh)
这意味着默认分配的堆大小是最小512 MB,最大512 MB。根据您自己的PC配置进行配置。请记住,操作系统也需要一定数量的内存,所以不要分配所有的物理RAM。
NEW=-XX:NewSize=128m -XX:MaxNewSize=512m
这意味着内存将以这个速率增加。您应该小心,因为,如果您的负载生成在开始时非常高,这可能需要增加。请记住,如果范围太宽,它将使JVM内的堆空间碎片化。如果是这样,垃圾收集器需要更努力地清理。
*禁用所有监听程序:在测试运行期间。它们仅用于调试和设计所需的脚本。
侦听器应在负载测试期间禁用。启用侦听器会导致额外的开销,这会消耗测试中更重要的元素所需的宝贵资源。
总之,如果JMeter脚本中不包含监听器,运行JMeter服务器内部不进行监控,网络开销/障碍和JMeter脚本都得到优化,那么这里是一个粗略的计算:
一个月一个月
您必须仅根据您的负载方案来估计您的并发用户/线程(活动线程)数。
此外,您还需要监视服务器
Memory consumption
、CPU usages
的运行是否低于80%。如果这些使用率超过80%,则认为这些测试与报告一样不可靠。为了更好更详细地理解这两个博客How many users JMeter can support?和9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure必须有所帮助。
sdnqo3pr4#
一句话:当然,这在很大程度上取决于运行JMeter的机器,但是如果有必要的话,我可以给予您一些提示。JMeter允许您在同一个机器中运行多个进程,并且通常非常可靠,每个JMeter示例最多可以生成200个线程。如果您需要更多的线程,我建议使用多个JMeter示例。一台现代机器经过一些调整可以轻松地生成500到1000个线程。使用Linux,您可能需要增加文件描述符的最大数量(see here)中的一个。
在没有GUI的情况下运行JMeter,将报表/图形数据写入一个文件中,以便稍后呈现,这会有很大的帮助。您还必须注意您的网络限制。对于Gbps网络中的服务器来说,生成数千个请求是很容易的,但共享54 Mbps路由器的笔记本电脑将受到更多限制。尝试将您与服务器的实际连接除以请求的大小。然后您就会知道带宽是否会限制您。要特别注意JMeter的配置,以下载或不下载HTML响应中引用的文件。
希望我能帮上忙。
2.这正是BlackGaf所解释的:“500个线程,循环1“表示500个线程同时执行一次循环。“50个线程,循环10”表示只有50个线程同时执行十次循环。
tv6aics15#
Jmeter
中的线程执行没有限制。因为它是基于java的工具,所以它使用java线程功能。在并发线程执行的情况下,我们需要注意机器配置(即内存大小和CPU)。要避免
OutOfMemory
问题,请尝试在apache-jmeter/bin/jmeter
内的jmeter
脚本中使用自定义java运行时参数在NON-GUI
模式下运行jmeter
。默认值为512 MB。8wigbo566#
1.我不认为JMeter本身有任何线程限制,只要你的机器可以处理它。测试的基本思想应该是,线程的切换和等待时间不应该对实际性能指标有太大的影响。
1.这两种情况有很大的不同。在第一种情况下,最坏的情况是有500个并发用户。在第二种情况下,最大并发用户数为50。情况1的平均时间将大于情况2的平均时间。