前言

高性能一直是我们作为程序员..孜孜不倦的追求..

有的时候甚至会为了一句代码吵上几天..

那么到底应该如何评估我们的性能指标来判断是否需要优化呢?

今天就来讲一下这个..

说明一下,本篇是译文.

原文地址:https://stackify.com/application-performance-metrics/

下面我们就正式开始

正文

1.用户满意度/ Apdex分数

Apdex 全称是 Application Performance Index,是由 Apdex 联盟开放的用于评估应用性能的工业标准。Apdex 联盟起源于 2004 年,由 Peter Sevcik发起。Apdex 标准从用户的角度出发,将对应用响应时间的表现,转为用户对于应用性能的可量化为范围为 0-1 的满意度评价。

Apdex 定义了应用响应时间的最优门槛为 T,另外根据应用响应时间结合 T 定义了三种不同的性能表现:

  • Satisfied(满意):应用响应时间低于或等于 T(T 由性能评估人员根据预期性能要求确定),比如 T 为 1.5s,则一个耗时 1s 的响应结果则可以认为是 satisfied 的。

  • Tolerating(可容忍):应用响应时间大于 T,但同时小于或等于 4T。假设应用设定的 T 值为 1s,则 4 * 1 = 4 秒极为应用响应时间的容忍上限。

  • Frustrated(烦躁期):应用响应时间大于 4T。

公式如图:

其中 Satisfied Count 就是指定采样时间内响应时间满足 Satisfied 要求的应用响应次数;而 Tolerating Count 就是指定采样时间内响应时间满足 Tolerating 要求的应用响应次数;最后的 Total Samples 就是总的采样次数总数。从公式可以看出,应用的 Apdex 得分与采样持续时间无关,与目标响应时间 T 相关(在采用总数固定的情况下,T 通过影响 Satisfied Count以及 Tolerating Count的值间接影响最终的得分)。

假设你的应用期待的响应时间能够在 1000 ms 内,在 100 次采样中,有 50 次应用响应时间低于 1000 ms,30 次应用响应时间处于 1000 ms 到 4000 ms( 4 * 1000ms) 之间,剩下 20 次响应时间长于 4000 ms,那么,该应用在 T = 1000ms 的情况下的 Apdex 值为:

(50 + 30 / 2) / 100 = 0.65

2.平均响应时间

这个,就不做过多解释了 - - ,嗯..字面意思很明白.

3.错误率

监控错误率也是关键的应用程序性能指标~

我们一般有三种不同的方式来跟踪应用程序错误:

  • HTTP错误百分比 - 以错误结束的Web请求数量占的比例.

  • 已记录的异常 - 应用程序中未处理和记录的错误的数量

  • 抛出的异常-所有已被抛出的异常

在应用程序中,我们可能会抛出并忽略数千个异常。

然而这些隐藏的应用程序异常通常会导致很多性能问题。

4.应用实例计数

如果我们的应用程序在云中升级并使用了伸缩弹性扩张服务.

请务必知道运行的服务器/应用程序实例数量。

伸缩弹性扩张服务确实可以帮助我们确保应用程序的扩展以满足需求,并在非高峰时间节省很多成本.

但是,这也带来了一些独特的监控挑战。

举个栗子,如果我们的应用程序根据CPU使用率自动升级,我们可能看不到CPU变高。但是我们会看到服务器实例的数量变高。(更不用说我们的主机帐单..正在嗖嗖嗖...烧钱!)

5.Request请求率

了解我们的应用程序获得的流量会影响我们的应用程序的成功与否。

请求率的增加或减少或多或少都会影响到其他各项性能指标.

Request请求率可以于与其他应用程序性能指标相关联,以了解应用程序扩展的动态。

监控请求率也可以很好地观察峰值和一些不活动的API。如果你有一个请求量很大的API突然没有请求率,这应该是一件非常糟糕的事情,要注意。

当然你也可以根据这些数据来跟踪和发现自己的并发用户数量.

6.应用程序和服务器CPU

如果我们的服务器上的CPU使用率非常高.

我们可以保证我们的应用程序性能出现了的问题。(这是句废话 - -,)

所以监控应用程序服务器CPU的使用情况是一个基本和关键的指标。

几乎所有的服务器和应用程序监视工具都可以跟踪我我们的CPU使用情况并提供监控警报。

因为每个服务器它们是很重要的.

7.应用可用性

监控和测量我们的应用程序是否在线并且可用也是我们应该跟踪的关键指标。

大多数公司使用它来衡量服务级别协议(SLA)的正常运行时间。

如果您有Web应用程序,则通过简单的定时HTTP检查小程序,来监视应用程序可用性是最简单的方法。

你可以每分钟为你运行这些类型的HTTP“ping”检查。

它可以是监视响应时间,状态代码,也可以是查找页面上的特定内容。

8.垃圾回收

如果我们的应用程序是用.NET,C#或其他使用GC编程语言编写的,

那么我们要提前会意识到可能会产生的性能问题。

垃圾回收发生时,可能导致我们的进程挂起并占用很多CPU。

垃圾回收指标虽然不是我们对关键性能指标的首选项。

但是这可能是一个隐藏的性能问题,始终是一个很好的主意,要注意。

对于.NET,您可以通过性能计数器“% GC Time”来监控这一点。Java通过JMX指标具有类似的功能。Retrace可以通过其应用程序指标功能监视这些内容。

结束语

前面说了这么多....那么作为我们.NET er 的新宠.. .NETCore我们如何监控他的8项性能指标呢?

监视效果如下:

我们下一篇就来讲..如何监控.Net Core应用程序..尽请期待..

相关文章:

  • 互联网级监控系统必备-时序数据库之Influxdb技术

  • 互联网级监控系统必备-时序数据库之Influxdb集群及踩过的坑

原文地址:http://www.cnblogs.com/GuZhenYin/p/7161480.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

应用程序的8个关键性能指标以及测量方法相关推荐

  1. AI大厂算法测试心得:人脸识别关键性能指标有哪些?

    仅仅在几年前,程序员要开发一款人脸识别应用,就必须精通算法的编写.但现在,随着成熟算法的对外开放,越来越多开发者只需专注于开发垂直行业的产品即可. 由调查机构发布的<中国AI产业地图研究> ...

  2. SDN控制器关键性能指标及测试方法—Vecloud

    在SDN技术中,Controller是重中之重的产品.Controller的主要功能,通过南向接口管理下面连接的设备资源(VM.vSwitch.NFV),通过北向接口根据租户的需求,划分不同的资源给某 ...

  3. mysql单库tps_MySQL数据库三个关键性能指标--TPS\QPS\IOPS

    今天主要介绍MySQL数据库,或者说所有数据库的三个关键性能指标: qps 每秒处理的查询数 tps 每秒处理的事务数 IOPS 每秒磁盘进行的I/O操作次数 一.TPS(适用innodb) 1. 概 ...

  4. 技术分享|前端性能 关键性能指标以及测量工具介绍

    源宝导读:对于一款商业软件产品而言,其性能表现往往会直接关系到它的生死存亡,这种说法一点也不夸张,数据显示,40%的人放弃了加载时间超过3秒的网站.但是一个网页的加载时间,响应时间的"快&q ...

  5. 原来程序员成长的关键竟然是它?!

    就目前的IT大环境而言,程序员的日子不是很好过,无论是正在找工作的还是已经入职的,压力都非常大,似乎处处充满危机.但是究其原因,他们之间大部分都缺乏同一种东西--项目经验.没错,在我看来,项目经验就是 ...

  6. 5g的八大关键指标_5G的七大关键性能指标5G对生活的改变新5G时代的来临身边巨变...

    为什么要发展5G 21 世纪初,第四代移动通信技术开始进入人们的生活,在其支撑下的移动数据传输,计算以及多媒体运作方面的应用大大得到了发展,推动了整个世界的发展.然而,随着世界的发展,大数据时代的来临 ...

  7. 程序员成才的关键——内在兴趣和善于发现

    文 / Peter Seibel 译 / 叶淮光 本文是Common Lisp专家Peter Seibel对计算机科学家Guy Steele的访谈,谈到了他程序人生开启的历程以及程序员成才的关键. 初 ...

  8. 项目实践:基于华为CCE环境下Tomcat的关键性能指标及监控方法

    CCE是华为公司提供的高度可扩展的.高性能的企业级Kubernetes集群,并能支持Docker容器生态. CCE可以轻松创建和管理多样化的容器工作负载,并提供容器故障自愈.监控日志采集.自动弹性扩容 ...

  9. 5g的八大关键指标_5G关键性能指标解析

    5G 关键性能指标解析 李洪城,朱 峰,卢彩玲 [摘 要] 摘要:针对< 5G 技术研发试验总体方案>所要求的 5G 关键性能指 标,借助 IMT-2020 推进组的 5G 白皮书. IT ...

最新文章

  1. Linux 库函数与系统调用的关系与区别
  2. ldap导入mysql_openLDAP 部署(亲测可用)
  3. panel中html怎么写,panel控件有什么用 请写出Panel控件的用途
  4. NET问答: 如何给 ASP.NET Core 配置指定端口 ?
  5. [hadoop读书笔记] 第十五章 sqoop1.4.6小实验 - 将mysq数据导入hive
  6. python--gevent协程及协程概念
  7. Spring RestTemplate的使用(解决put,delete方法无返回值问题)
  8. 面向对象组合及三大特性
  9. 《SilverLight2快速入门》之Hello SilverLight
  10. 使用xcap进行更改报文并进行回放以及回放报文只能看到请求流量看不到响应流量的问题
  11. 功能测试转测试开发的正确姿势
  12. 计算机高手纯键盘操作,没有鼠标,高手是如何纯键盘操作电脑的?
  13. 考研二战上岸985的经验教训分享
  14. npm设置为淘宝镜像地址
  15. 【Unity3D】个人开发台球小游戏
  16. dism 错误 14
  17. Tableau学习(一)
  18. python风变编程培训骗局
  19. 官方示例(十):网页开发3D粒子系统实现降雨效果 ThingJS
  20. 银行网点WLAN无线认证解决方案

热门文章

  1. OutLook2016修改注册表迁移.ost文件数据
  2. Spring学习笔记十二---泛型依赖注入
  3. 莫名其妙的主机名 VM_32_234_centos
  4. (译)Windsor入门教程---第三部分 编写第一个Installer
  5. WPF 实现截屏控件之移动(二)(仿微信)
  6. Avalonia跨平台入门第十篇之控件的锁定
  7. ABP vNext微服务架构详细教程——结束语
  8. Windows 11 上大招!正式支持安卓!
  9. 微服务组件记事本:Skywalking的ES索引 · 收藏篇
  10. .net core ——微服务内通信Thrift和Http客户端响应比较