gpt4 book ai didi

性能监控系统的所有层

转载 作者:行者123 更新时间:2023-12-04 14:42:30 26 4
gpt4 key购买 nike

我使用多种负载测试工具(Loadrunner、JMeter、NeoLoad)对不同的应用程序进行性能测试。我想知道是否有可能监控应用程序堆栈的所有层,例如。假设我有以下数据链。

负载均衡器 <-x-> 应用程序服务器 <-x-> RMI <-x-> Java 应用程序 <-x-> MQ <-x-> 遗留应用程序 <-x-> 数据库

我在我感兴趣的链中标记了 x 的地方,例如平均响应时间。

显然,我们可以简单地在所有端点上创建一个包装器,它会为我们收集统计数据,也许我们可以将其导入 loadrunner 或其他负载测试工具,并使用内置性能统计工具的副业,但也许有工具/应用程序可以已经这样做了吗?

如果不是,我们应该如何进行才能收集此类统计数据?

最佳答案

这个标准应该是Application Response Measurement (ARM) .它是一组跨语言的 API,可以满足您的需求。问题在于,实现该规范的产品往往都是大型、昂贵的“企业”级监控工具。想想多周的安装、顾问、更多的基础设施和大量的流行语。

不过,如果这是一个具有关键任务预算的关键任务应用程序,这可能就是您所需要的。但是您可以构建自己的功能而无需太多努力。快速搜索至少会找到一个 open source ARM implementation如果您仍想使用该 API。

另一种选择是简单地让您可以针对系统的每一层运行事务以检查总体响应能力。例如,您可以在 LB 上有一个静态网页,在应用程序服务器上有一个无操作 tx,在 Java 应用程序上有一个“hello”servlet,将消息直接放在队列中,等等。在性能/负载测试期间,这些可能会被负载测试工具直接命中,或者您可以编写一个包装器 servlet/应用程序调用,将其作为单个 HTTP(RMI?)调用来执行。每分钟运行几次这些不会给系统增加太多负载,但它应该可以帮助您查明哪个层较慢。这种方法的好处在于它也适用于生产环境,只需注意安全问题。

对于单用户类型的测试,你知道你有问题(例如,这个 tx“慢”),我在网络跟踪方面也很幸运。这非常乏味,但是当您不确定哪个层慢时,在几台机器上启动网络跟踪并运行单个 tx 通常可以很好地了解系统正在做什么。

关于性能监控系统的所有层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6107744/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com