Performance Grinder-如何从文件分发URL调用
我们有大量不同的URL(~500K-~1M URL)。Performance Grinder-如何从文件分发URL调用,performance,scalability,load-testing,grinder,Performance,Scalability,Load Testing,Grinder,我们有大量不同的URL(~500K-~1M URL)。 我们希望使用Grinder 3将这些url分发给工作人员,使每个工作人员都能调用一个不同的url。 在JY脚本中,我们可以: 每个代理读取文件一次 为每个代理分配行号范围 每个工作者都将根据其代理行号范围中的运行id获取一行/url 这仍然意味着将一个巨大的文件加载到内存中,并编写一些代码来解决许多人可能遇到的问题 对于一个更简单/现成的解决方案有什么想法吗?我不久前以类似的方式使用了Grinder,并编写了一个实用程序,用于多线程一次
我们希望使用Grinder 3将这些url分发给工作人员,使每个工作人员都能调用一个不同的url。
在JY脚本中,我们可以:
- 每个代理读取文件一次
- 为每个代理分配行号范围
- 每个工作者都将根据其代理行号范围中的运行id获取一行/url
对于一个更简单/现成的解决方案有什么想法吗?我不久前以类似的方式使用了Grinder,并编写了一个实用程序,用于多线程一次性从一个大文件中摄取URL 请特别参阅顺序读取器
我建议在执行Grinder运行之前,使用
split
命令行实用程序(或类似工具)将主文件的各个部分分别提供给每个代理。如果您愿意,我会采取不同的方法,因为它是一个大文件,
您计划生成多少线程。我相信您已经知道可以获取Grinder.ThreadNo来获取当前正在执行的线程。
实际上,您可以使用具有相同记录数的预处理器将文件划分为线程数,并将它们命名为0、1、2等,这与线程名匹配
我之所以建议这样做,是因为处理文件看起来像是一项预任务,重要的是它的内容。执行线程时,文件处理不应干扰
所以现在每个线程都有自己的文件,没有冲突
但是,对于例如20个线程20个文件,您的线程数应该仔细选择,可能是峰值+50%。这肯定有助于实际读取文件,但我们仍然认为有一个标准代码用于将工作分发给代理和工作人员。