- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的任务是对我的团队设计和构建的软件进行负载测试。它是一个 Java Web 应用程序,充当我公司制作的所有其他应用程序的 API。
这是系统的粗略轮廓:
1) Application 1 needs information from the database.
2) App 1 produces a request to a rabbit exchange (routing key for the queue that is consumed by the tool I'm testing).
3) My tool consumes the RabbitMQ queue that App1 pushed to
4) My tool executes the request sent from App1 via the Rabbit queue
5) My tool then sends the response back to App 1 via a Rabbit Exchange/Reply Queue.
6) App 1 then consumes from the reply queue and handles the response
这是一个非常低级别的 View ,因为每个应用程序都有很多实例发布到队列并使用队列。
我以前从未对任何东西进行过负载测试,所以我对可用的概念和工具很陌生。
现在我正在使用 jMeter 发起调用并使用回复(我让它像示例中的应用程序 1 一样运行,它通过兔子调用并使用回复)。
这是我的问题:
1) Is this a viable way to load test? Should I be testing the capacity of the server directly or should I continue going through rabbit since it's a closer to production use case?
2) What is the best way to adjust my rate of production? I've tried doing some throttling via jMeter but when I look at the rabbit graphs the publish rate seems to fluctuate wildly. Example: I tell jMeter to publish at 1000 messages/sec and the graph on the rabbit dashboard goes from 500/sec to 3000/sec. I don't feel like I can accurately get an idea of what we can handle if I can reliably adjust the rate.
我的计划是:
1) Find the rate at which my application can't pick things off the queue fast enough. (where the rate of publishing to the queue becomes faster than my application can consume them).
2) Once I know the fastest I can send stuff to the queue I can check the responses for error rate and processing time.
我在想,通过这样做,我可以计算出我们可以发布到队列的最大速率,同时仍处于可接受的错误率范围内,并了解周转时间是多少。
还有什么我应该寻找的吗?为了取得成功,我应该了解负载测试的任何“规则”?
谢谢!
最佳答案
我认为你应该考虑以下事情,
对于任何复杂系统(包括多个组件)的负载测试,请按组件(App1、Rabbit 队列、生产者、消费者)划分负载测试。
这背后的原因是在一次测试中你无法获得系统中的瓶颈,否则会导致不正确的结果。
在我的团队中,我们曾经有过这样的任务(发布者 - 消费者模型)。没有任何规则规定进行负载测试时您必须使用任何负载测试工具。可以充当负载生成器(发布者)的简单 java 代码和消耗负载(消费者)的简单 java 代码足以进行负载测试。
JMeter 是一个不错的选择(免费、可扩展、可靠、业界知名),但您可以检查 LoadRunner、Neoload 等。
恕我直言,您应该分离组件并单独测试它们,这将帮助您找到答案,例如什么是最大消费者速率和什么是最大发布者速率。一个简单的 java 代码就可以为您做到这一点。您不需要 JMeter 请求。这样您就可以更好地控制生产率和消耗率。
是的,你的计划是正确的,找到最大值。定价发布者和消费者可以为您提供的最大可能价格。系统吞吐量。执行此操作时,还要注意系统利用率。
最后,当您获得稳定系统的测量值时,您可以选择 2 个选项,
1. Stress test (when system breaks)
2. Tune the system to improve the performance and repeat the cycle for new measurements.
我希望现在一些困惑已经清楚了:)
关于java - 寻求设计负载测试的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27284001/
是否可以使用 av_seek_frame() 函数查找 I-Frame。 我面临的问题是,如果我在 AVC 文件中查找,如果我不刷新缓冲区,我会收到很多噪音。如果我刷新缓冲区,解码器不会返回一个帧,直
在我处理 SL3/SL4 应用程序并开始使用字体时,我发现缺乏有关字体策略的文档和最佳实践。例如: 是否有常见的后备字体 支持的字体集(Arial、Comic 无 MS 等)?是否有一组关于 Wind
是否有一个我可以运行而什么都不做(或很少做)而永远不会出错的命令? 我需要一些东西来测试海豚。 最佳答案 注释什么都不做(但如果根本没有命令,您的数据库驱动程序可能会提示): /* Hello, wo
我正在寻找与 Delphi (7) 一起使用的 FOSS SHA1 实现。 最好是一些小的东西,甚至可能是独立的 SHA1,而不是过去的一个巨大的库。易于安装和使用固然很好,但可靠性当然是第一位的。
团队, 我是 Azure 的初学者,对 Blob 存储日志有一些疑问 我指的是这个链接http://blogs.msdn.com/b/windowsazurestorage/archive/201
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭10 年前。 Improve th
我在周末发现了 Akavache,它看起来是一个强烈推荐的用于在 Win8 和 WP8 上缓存项目的解决方案。 但是,我找不到任何实际示例或如何使用它的文档! 有人可以分享任何示例项目或文档吗? 最佳
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 8 年前。 Improve this ques
Delphi XE2 和 MySql。 我的 previous question导致建议我应该使用 MySql 的 native TIMESTAMP 数据类型来存储日期/时间。 不幸的是,我似乎找不到
DDX 技术是为将资源与类成员链接起来而创建的(例如)。在我的解决方案中,我需要在不存在于类成员 CCtreeCtrl 的资源中的 myCCtreeCtrl(CCtreeCtrl 实例)之间建立连接。
我遇到了这个问题: A shoemaker has N jobs (orders from customers) to execute. The shoemaker can work on only
typedef union { float flts[4]; struct { GLfloat r; GLfloat theta; GL
我有两个我想组合的以下形状的数组。 数组: arr1 = [["apple", "aardvark"], ["banana", "beach"]] arr2 = ['A', 'B'] 期望的结果: [
这个问题已经asked before , 但每次接受的答案只是辞职,使用 Application.MacroOptions ( VBA6 ) ( VBA7 ) 提供功能描述,但此信息实际上并未显示为工
如标题所述,-ss命令不适用于某些设备,例如华为 Mate 10。 这是我正在使用的命令以及如何获取值: Format formatter = new SimpleDateFormat("00:" +
我被指派负责修订当前的报告服务身份验证流程。目的是保持必要的安全级别,并简化授予对各个报告的访问权限的维护/配置。 我无权访问域 Controller 以修改或创建新的 AD 组。我必须与当前存在的组
我正在尝试使用 ashx 处理程序作为 HTML5 视频源。我可以做到这一点,但我无法在已经缓冲的视频上进一步前进。 我可以在使用标准 MP4 源的网络选项卡上看到向前搜索会创建另一个请求,但使用处理
#include #include class Test { char name[10]; int data; public: void getData()
您是否知道任何具有外键约束和/或提供事务支持的 SQLite 替代方案(基于可移植/平面文件/无服务器)? 最佳答案 从版本 3.6.19 开始,SQLite supports foreign key
我正在寻找一个简单的脚本,我可以在 bash 文件中使用它来检查是否有任何可用的系统更新。 我从 #!/bin/bash clear updates=$(apt list upgradeable) i
我是一名优秀的程序员,十分优秀!