原文:8 Key Application Performance Metrics and How to Measure Them
作者:Matt Watson
翻译:雁惊寒
译者注:本文介绍了八个常见的应用程序性能指标及其度量方法,以帮助读者监控和分析应用程序性能,提升用户体验。以下是译文。
如果你想了解如何度量应用程序的性能,那么你来对地方了。本文将介绍一些你应该要跟踪的最重要的几个应用程序性能指标。
应用程序性能指数或Apdex分数已经成为跟踪应用程序相对性能的行业标准。
它的原理是跟踪一个特定Web请求或一个事务需要花费多长时间才能完成。
那些事务请求随后会被分成四种类型,分别为:满意的(快)、可以容忍的(有点慢)、太慢和失败。最后通过一个简单的公式计算得出范围在0到1之间的分数。
应用程序Retrace会帮你度量这些分数,它会自动跟踪每个应用程序和Web请求的满意度分数。然后将数字转换为0-100而不是0-1来表示,使其更容易理解。
让我先来说说平均值。我强烈建议使用上面提到的用户满意度Apdex分数作为跟踪整体性能的首选方式。也就是说,平均值仍然是一个有用的应用程序性能指标。
监控错误率是一项很关键的应用程序性能指标。
有三种不同的方式来跟踪应用程序错误率:
在应用程序中,通常会抛出并忽略数千个异常。隐藏在内的应用程序异常可能会导致很多性能问题。
如果你的应用程序在云上进行规模的扩大或缩小,那么你一定要知道运行的服务器或应用程序实例的数量。自动化的伸缩可以帮助你确保应用程序的规模满足需求,并在非高峰时段节省你的金钱。同时,这也带来了一些独特的监控挑战。
例如,如果你的应用程序根据CPU使用率自动扩展,你可能看不到CPU使用率变高。但是你会看到服务器实例的数量增多(更不用说你的主机帐单变多了!)。
应用程序接收数据的流量大小会影响你的应用程序的成功。所有其他应用程序的性能指标都会受到流量增加或减少的潜在影响。
请求速率可以跟其他的应用程序性能指标相关联,以了解应用程序扩展的动态情况。
监控请求速率也可以很好地观察峰值。如果某个平时繁忙的API突然之间没有流量了,这可能是一件非常糟糕的事情,要引起注意了。
有一个类似但略有不同的指标是跟踪并发用户的数量。这是另一个有趣的指标,可以看看它的相关性是怎么样的。
如果服务器上的CPU使用率非常高,你可以确定应用程序的性能出现问题了。服务器和应用程序的CPU使用情况是一个基本并且关键的指标。
几乎所有的服务器和应用程序监控工具都可以跟踪CPU使用情况并提供监控警报。对每个服务器进行跟踪是很重要的,同时也要对所有独立部署的应用程序实例的聚合进行跟踪。
监控和度量应用程序是否在线并且可用是你应该跟踪的关键指标。大多数公司使用这个指标来衡量服务水平协议(SLA)的正常运行时间。
如果你有一个Web应用程序,则可以通过简单的周期性的HTTP检查来监视应用程序的可用性。
Retrace可以每分钟都为你运行这些类型的HTTP“ping”检查。它能够监控响应时间、状态代码甚至查找页面上的特定内容。
如果你的应用程序是用.NET、C#或其他使用垃圾回收的编程语言编写的,那么你可能会意识到性能问题就可能来自于垃圾回收。
垃圾回收发生时,可能会导致你的进程挂起,并可以使用很多的CPU。
在考虑关键应用程序性能指标时,垃圾回收指标可能不是你考虑的首要事情。这可能是一个隐藏的性能问题,所以请始终留意一下这个指标。
对于.NET来说,你可以通过“% GC时间”这个性能计数器来监视。Java通过JMX指标也具有类似的功能。 Retrace可以使用自己的应用程序指标 功能来监控这些。