Performance 性能监视系统的所有层

Performance 性能监视系统的所有层,performance,jmeter,performance-testing,loadrunner,Performance,Jmeter,Performance Testing,Loadrunner,我使用几种负载测试工具(Loadrunner、JMeter、NeoLoad)对不同的应用程序进行性能测试。例如,我想知道是否可以监视应用程序堆栈的所有层。假设我有以下数据链 Loadbalancer应用服务器RMI Java应用程序MQ遗留应用程序数据库 我在我感兴趣的监控链中标记了x,例如平均响应时间 显然,我们可以简单地在所有端点上创建一个包装器,为我们收集统计数据,也许我们可以将其导入loadrunner或其他负载测试工具中,并使用内置的性能统计数据作为工具的边线,但也许有工具/应用程序已

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

Loadbalancer应用服务器RMI Java应用程序MQ遗留应用程序数据库

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

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


如果没有,我们应该如何着手收集此类统计数据

这方面的标准应该是。它是一组跨语言的API,可以满足您的需求。问题是,实现此规范的产品都倾向于大型、昂贵的“企业”级监控工具。想想几周的安装、顾问、更多的基础设施和大量的流行语

尽管如此,如果这是一个具有关键预算的关键任务应用程序,这可能是您所需要的。但是,你可能可以建立自己的,没有太多的努力就足够了。如果您仍然希望使用该API,则快速搜索至少会显示一个

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


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

我过去曾用多种方法处理过这种分解。第一种方法是在非常低的级别上使用协议分析器转储的数据来查找会话离开第X层进入第Y层的时间点。第二种方法是通过对各个层使用日志检查。在本例中,可以使您的检查非常有用的是一个用于所有组件(syslog、Rsyslog等)的通用日志服务器和一个很好的日志解析工具,例如免费提供的Microsoft Logparser。第三种方法是利用数据库中存储的应用程序的审计跟踪。在使用enterprise services总线样式的应用程序时,您可能会发现这一点,这些应用程序具有消费者/生产者模型和传递信息的总线,而不是直接连接。我看到的审计跟踪通常存储在数据库中,允许通过整个应用程序基础结构跟踪单个事务。您的负载平衡器作为一个网络设备,可能在这台设备上找不到

注意,如果使用协议分析器或日志路由,请确保将所有源信息设备同步到公共时间服务器。当你进入分析阶段时,在时间戳的基础上关闭你的一个收集器(分析器、应用程序日志)真的是一次令人毛骨悚然的体验

至于如何将收集到的数据移动到LoadRunner,这一部分非常机械。分析程序支持导入外部数据点的接口。格式非常具体,并记录在帮助和在线文档中。这个导入过程工作得很好,因为我经常不得不使用它来收集来自主机的统计数据,这些主机我没有直接的监控访问权限,但需要作为监控测试基础结构的一部分包含在其中

詹姆斯滑轮

主持人(YahooGroups LoadRunner,Advanced LoadRunner;GoogleGroups lr LoadRunner;Linkedin LoadRunner,LoadRunnerByTheHour;SQA论坛LoadRunner,WinRunner)