【发布时间】:2016-09-14 14:24:57
【问题描述】:
两次运行 jmeter 测试之间特定事务的响应时间增加。这种情况下如何检测瓶颈?
【问题讨论】:
标签: jmeter performance-testing
两次运行 jmeter 测试之间特定事务的响应时间增加。这种情况下如何检测瓶颈?
【问题讨论】:
标签: jmeter performance-testing
嗯,对于每个架构平台和您正在使用的每种软件类型,您所要求的内容都可以填满。有一些经验法则可以提炼出您遇到的问题。
最终的可扩展性是资源及其在机器中的使用问题,尤其是有限资源……当你分配它们时……你使用了多少……当你释放它们时……顶层核心有限资源是 CPU、磁盘、内存和网络。您可以从中派生数百个子资源,例如内存下的文件句柄、磁盘下的交换利用率、CPU 下的系统和应用程序、网络下的错误重传等......
要了解瓶颈所在的位置,首先要确定在减速时受到影响的资源。从那里了解在相关窗口期间访问所述资源的代码,然后最终了解哪段代码是关键部分。 Dynatrace、NewRelic、Wiley 等工具已经形成了一种商业模式,可以帮助跟踪应用程序的内部细节,但您仍然需要将时钟和响应时间排好。
监控是关键和关键。不幸的是,这是一个在许多开源世界中一直缺乏的领域。让我们扔负载!综合监控?好吧,去买一个插件,把它装进去。这是商业工具拥有所有开源工具的领域。然后进行分析,查看监控数据与响应数据的整合情况……
由于您在测试中查看一个特定的响应时间,这确实变得更容易一些。如果您不参与开发,请前往开发团队并索取您上次测试构建的所有代码更改的列表。接下来,您需要在此列表中突出显示在您的特定定时事件期间调用哪些事件,该事件随时间增加。从那里,如果您知道哪些资源增加了,那么您可以快速扫描代码以查找与特定资源的使用直接相关的项目。例如,如果 DISK 增加了,那么也许有人签入了启用 DEBUG 级别日志记录的代码,并且您有一个写入磁盘的拖动锚。可能是某个对象的连接句柄没有被清理得那么快,因此您遇到了内存问题。
希望这为您提供某种途径来检查可能性
【讨论】: