搜课云网 > 北大青鸟 > 资讯总汇 > Java应用发布后,需要关注的7个性能指标

Java应用发布后,需要关注的7个性能指标

机构:北大青鸟 时间:2015-12-18 11:31:59 点击:702

  当软件被发布后,开发者是没有方法去了解它在生产环境中的运行情况;而现在,几乎任一个你可以想到的指标都可以被监测和报告。时下,开发者面临的问题并不是缺乏信息,而是信息过载、过大。因此在数百台服务器同时工作的情景下,跟踪记录信息就变得越来越困难,虽然多数开发者为了深刻理解产品系统仍旧需要利用日志文件,但依然阻挡不了它们逐步被取代的命运。

  数字至上

  在逐个讨论指标之前,先来强调一个重要问题。有这样一个观点:如果某个观点可以得到数字支持,那么它一定是毋庸置疑的。但是这里存在的问题是,当给你呈现时,很多因素会歪曲你对数据的理解。这么说可能有点抽象,这里可以对比这两个测量用例:首先,在一个简单的时间序列中,观察某一个特定基本指标如何随着时间推移而变化;其次,从不同的角度观察数据,并保存关注的性能百分比,底线就是一定要关心留意的那个指标所产生的影响,并给以完整性检查以便对其评估。

  2. 平均负载

  第二个广泛使用的衡量指标就是服务器的平均负载。平均负载习惯上分成 3 部分,在最后的1、5 和 15 分钟(从左到右)显示其结果。只要分数低于机器内核的数量,就是无压力状态,一旦超过内核数,就意味着机器处于压力状态。

  平均负载除了可以简单测量 CPU 利用率,更着重于考量每个内核目前在队列中有多少进程。某内核利用率达 100%,但是却即将结束任务,而另一内核在队列中还有 6 个进程要处理,这两种情况是截然不同的。CPU 这一概念并没有涵盖其区别,但是平均负载却可以从大局中考虑此问题。

  若在 linux 系统上跟踪平均负载情况,一个极好的方式就是通过 Hisham Muhammad 利用 htop 完成。丰富的色彩加上生动的视觉化效果,瞬间使得命令行有了 NASA 仪表板的即视感。

  3. 错误率(及如何处理)

  错误率观测有多种方法,而多数开发人员都利用高层次标准——在整个应用层考察错误率,比如在所有 HTTP 请求中考察失败的 HTTP 处理总数。但是还有一个经常被忽视的具体点:特定事务的错误,这与应用程序的运行状况有直接的影响。代码中某一特定方法失败、生成日志错误及发生异常的次数占总调用次数的比重,也要予以显示。

  4. GC 率和中止时间

  垃圾回收器行为异常,是导致应用吞吐量和响应时间突然下降的主要原因之一。读者想要了解关于垃圾回收过程的更多知识和相关的标准,可阅读 深入理解 Java 虚拟机(第 2 版)。

  分析 GC 日志文件是理解 GC 中止时间和频率的关键。如果不自行分析,或者使用类似于 jClarity 的工具,这种指标是没有办法直接使用的。所以要确保使用合适的 JVM 参数打开 GC 日志采集,以便分析。

  5. 业务指标

  应用的性能不是仅仅依赖于快速响应,也非错误率,另一个方面就是业务指标。其业务责任也不是只由产品/销售人员全权负责。收入、用户数、与应用中特定区域的互动等,这些都对理解软件的运行极为关键。若要从业务角度观察,你所配置的修复方法和新功能是如何影响底线的,以上因素与新部署的时间标记一起作用这一点至关重要。我们固然希望情况向好的方向发展,但假如事态恶化,一旦你把所有数据都存在同一位置,要想知道哪里出了问题需要修复,这就相当容易了。

  此外,将业务指标与错误率、延时等数据实时连接起来,这种能力是极有力度的。然后会让人不由自主地深入研讨到底是什么错误或异常造成了这次最主要的问题,接着就可以按照对业务目的影响优先考虑它们。想要搞清楚遍布各处的所有异常及日志错误,就得使用集成开放的监测工具。所以,保持数据开放,使其可以输出到选择服务中,这是极其重要的。

  6. 正常运行时间和服务运行状况

  该指标为整体的工作定下基调。除用作警示媒介外,它还可用于在一段时间内自定义 SLA,以便观察当为用户提供功能完备的服务时所用时间的百分比。

  7. 日志规模

  以上讨论到的指标除了 GC 都没有提到日志,但这个仍然不可忽略。日志文件的副作用就是它们一直在增长,如果不留意其大小以及抑制,那么后果不堪设想。当日志不受控制,磁盘驱动器很可能被撑爆,服务器中会充斥着垃圾文件,运行缓慢,因此,一定要密切关注日志规模,否则随时会崩溃。

  更多资讯:武汉软件开发培训学校

师资介绍