问题标签 [wrk]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wrk - 如何发送请求(而不是发送持续时间秒)
当前的 wrk 配置允许发送持续数秒的请求(持续时间参数)。
有没有办法使用 wrk 发送请求然后退出。
我的用例:我想创建大量线程 + 连接(例如,1000 个线程,每个线程有 100 个连接)并向服务器发送瞬时突发。
jenkins - 从 wrk 输出中提取文本
我正在使用 wrk2 作为 Jenkins 的工作运行负载测试。我想将负载测试的结果发送到 Graylog,但我只想存储 Requests/Sec 和平均延迟。
这是输出的样子:
有谁知道我可以如何提取请求/秒(在底部)和延迟平均值作为 JSON 参数发送?
预期的输出将是:"latency": 16.2, "requests_per_second": 4.33
http - 使用 wrk,以文件为主体执行 HTTP PUT 的最有效方法是什么?
我想通过执行许多包含文件正文的 HTTP PUT 请求来对应用程序进行基准测试。我有很多文件,每个文件只需要发送一次。
现在我正在尝试使用 WRK 来做到这一点。我找到的一种方法是将我的数据拆分为几个 repo,给每个 WRK 线程一个 repo。但我的大问题是如何将文件作为 PUT 参数传递(基本上是做一个 curl -T)。现在,我通过在 LUA 脚本中重新编辑文件并将内容放入 wrk.body 中来做到这一点,这不是很高效(太慢)。
这是我用来使用文件参数执行 PUT 的部分代码:
我只想知道是否有更有效的方法可以使用 WRK 将文件添加为 PUT(或 POST)HTTP 请求。
scala - 命中数超过总请求数
所以我开始学习 Scala 和 Akka actor,Akka-Http。我尝试使用 Akka Http 实现一个简单的点击计数器,它计算本地主机页面上的每次点击。我使用 wrk 工具运行 10 个线程和 100 个连接,之后计数和总请求数不匹配(见 wrk)。
这是我的代码:
请原谅我不成熟/业余的编码技能。我还在学习,我知道这与并发有关。但我还找不到解决方案。请帮忙。
编辑#1:我也尝试过 AtomicInteger。那没有帮助。编辑#2:我也尝试了完整的 akka-http 方式,询问和等待。这也无济于事。
lua - 如何为 wrk2 安装 Lua 模块(json、uuid 等)
我已经通过 Mac OS 上的自制软件安装了 wrk2。(https://github.com/giltene/wrk2/wiki/Installing-wrk2-on-Mac)
我能够运行 wrk2 命令并且简单的负载测试工作正常。但是,我想为需要 json 和 uuid 库的请求正文做更复杂的事情。
在我的终端中,我似乎没有安装 lua
当我导入 uuid 或 json 模块时,我在运行 wrk 时看到此错误
我可以为 wrk2 获取这些模块的最佳方式是什么?
kubernetes - 为什么clusterip(iptables)的性能这么差?是不是我的配置有问题
我用wrk测试集群性能,wrk和pod(nginx)都在同一个vm上。</p>
1、wrk->podIp
2、wrk->ClusterIp->pod(只有一个pod)
性能下降 10%
2、wrk->ClusterIp->pod(2个pod)
性能下降 30%。理论上,Requests/sec 应该接近 17206(8603 * 2)
我的配置:在 /etc/sysctl.conf
/etc/security/limits.conf
lua - 与 wrk2 基准测试工具有关的延迟和请求问题
我有一些与 wrk2 基准测试工具相关的问题。我对它们进行了很多搜索,但没有找到与它们相关的答案。如果您对它们了解不多,请帮助我。
- 详细百分比谱中的“计数”列代表什么?示例他们是否显示了延迟在“值”(列名)范围内的请求总数?如果我错了,请纠正我。
- wr2 和 wrk 提供的 done 函数中的“latency(i)”和“requests”代表什么?以及如何获得该值?done_function
- 如何获取每分钟生成的请求总数及其延迟?“latency(i)”和“requests”会给我一些关于它们的信息吗?
- wrk 中的“-B(批量延迟)”选项有什么作用?无论我是否使用此选项,我的输出都保持不变。批
- 在 wrk2 readme.md 中,我不明白这些行。你能解释一下吗?
gatling - Wrk vs Gatling 基准测试比较
使用 wrk,我运行以下命令:
结果,我获得 Requests/sec: 15000 并且没有错误
我正在尝试用 Gatling 重现相同类型的测试。所以我尝试了以下方法:
但结果,我得到了错误:
---- 错误 --------------------------------------------- ----------------------
incAbstractChannel$AnnotatedSocketException: Can't assign r 573 (42,44%) equested address: localhost/127.0.0.1:8080 incAbstractChannel$AnnotatedSocketException: Resource tempo 530 (39,26%) rarily available: localhost/0:0:0: 0:0:0:0:1:8080 jiIOException:过早关闭 247 (18,30%)
从 wrk,我相信我的服务器可以处理 15000 个请求/秒,但对于 Gatling,情况似乎并非如此。你知道为什么会有这样的差异吗?
jmeter - 比较 CPU 架构之间的应用程序性能
我有一个基于 Java Servlet 的应用程序在 Apache Tomcat 上运行在两台不同的机器上,它们具有相似的硬件(RAM、SSD 磁盘、网络接口和带宽),但 CPU 架构不同:
- x86_64
- aarch64
我有使用 Yourkit、JProfiler 和 Async Profiler 等工具分析 Java 应用程序的 CPU 和内存使用情况的经验。而且我想我已经在我们的应用程序中发现了所有明显的与性能相关的问题。使用 Apache JMeter (5.3.0) 我创建了一个模拟真实案例加载的测试计划:9000 个虚拟用户导航应用程序,包括思考时间、加速时间等。两台机器的 JMeter 报告看起来非常相似——毕竟通过这个 JMeter 计划,我能够达到每秒 1200 个请求。如果我增加虚拟用户的数量或减少思考时间,那么 JMeter 开始报告主要与超时相关的错误(连接和读取超时)。
所以我决定使用wrk。有了它,客户端机器(运行负载测试客户端的机器)使用更少的资源,我能够获得更好的吞吐量:
- 在 x86_64 机器上执行时大约 40000 req/s
- 对 aarch64 机器执行时大约 20000 req/s
现在,我的问题是:如何找出使 x86_64 机器的性能比 aarch64 高两倍的原因?你会使用什么样的工具来找出不同之处?
我已经尝试过使用perf工具,但到目前为止我还不能真正掌握如何阅读和解释它的记录。
我确定的一件事是它不是网络带宽,因为使用iperf我可以获得 5.48 Gbits/sec,而wrk
最多达到 220 MBit/sec(根据nload)。如果我没记错的话,这大约比最大吞吐量低 5 倍。
所有机器都在 Ubuntu 18.04.4 上运行
tomcat - wrk2 和 Apache Benchmark(即 ab)工具有什么区别?
wrk2 和 Apache 的 Benchmark(即ab)用于测试多线程请求有什么显着区别吗?如果有它们是什么?
我是根据这个答案问这个的,因为我必须测试用SpringBoot(使用Apache Tomcat Web 服务器)、Dropwizard(使用Jersey Web 服务器)和Vert.X(Web 服务器是它的一部分)编写的 Java RESTful Service Web CRUD 应用程序据我所知,自己的实现,如果我错了,请纠正我)使用并发 HTTP 请求。
非常感谢任何建议/帮助。