java应用性能指标

再想一想。

性能和可靠性相关吗? 还是这些东西相互排斥? 我认为是后者。 如今,现实是IT部门将应用程序的性能和可靠性视为同一事物,但这离事实还差得远。

让我们看看一级方程式车队如何管理性能和可靠性。

上赛季迈凯轮本田车队既慢又不可靠。 法拉利本赛季在排位赛中表现很快,但是在比赛中并不可靠。 另一方面,梅赛德斯在过去的两年中一直超级敏捷,超级可靠,这让所有人都望而却步。

性能

F1赛车通常受以下三个因素影响:动力单元,发动机映射和空气动力阻力/下压力。

引擎图指示了动力单元从可用资源(空气,燃料和电力)中消耗了多少资源。 空气动力阻力/下压力由汽车周围的气流管理方式决定。

更大的功率和更低的阻力意味着更少的阻力,更快的加速度和更高的顶端速度。

下压力越大,拐角处的抓地力/速度越大。 性能就是F1赛车在赛道上跑得有多快。 F1车队在一个典型的周末将对汽车的设置进行数百次更改,希望每十分之一秒都能解锁一次,这样他们就可以超越排位赛并参加比赛。

同样,应用程序性能受三件事影响:JVM运行时,应用程序逻辑和事务流。

应用程序逻辑消耗了JVM运行时的资源(线程,cpu,内存等),并且事务流由每个事务必须跨越基础结构组件或第三方Web服务进行的跃点数决定。

性能与计时最终用户请求(页面/事务)以及了解应用程序逻辑和事务流之间的端到端延迟有关。 像F1工程师这样的开发人员将进行数百项更改,希望优化最终用户体验,从而使业务受益。

性能的主要度量单位是响应时间,因此,在管理此性能时,诸如AppDynamics,New Relic和Dynatrace之类的Application Performance Monitoring(APM)解决方案是头等大事。

可靠性

F1赛车通常受其工程组件,赛车ECU和百万传感器输入,参数和功能的质量影响。

一些意外参数,赛车将立即停止。 去年,尼科·罗斯伯格(Nico Rosberg)两次发生事故,当时他的方向盘和电子设备停滞不前。

对F1汽车的性能进行故障诊断与对其可靠性进行故障诊断有很大不同,它们是有些不同的用例,需要不同的遥测,工具和观点。 可靠性是关于了解事情为什么破裂以及事情为什么运行缓慢的原因。

对应用程序的处理相同,只是当应用程序崩溃时,这是因为应用程序逻辑在某处发生故障,从而引发了错误或异常。 这与运行缓慢的应用程序逻辑有很大不同。

应用程序逻辑接受输入,对其进行处理并创建某种输出。 与F1赛车一样,应用程序具有成千上万个具有数百万行代码的组件(功能),每个代码行可同时处理数十万个参数(对象和变量)。 没有可靠性,性能无关紧要。 日志文件是错误和异常所在的地方。

问题:慢航班搜索比航班预订错误重要吗?

答案:它们都会杀死企业,因此您需要同时管理两者。

航班预订失败

欢迎来到废话数据世界

假设这些APM解决方案在管理性能方面做得很好。 我们的行业仍然坚信,日志文件(或某些供应商称之为大数据)是理解应用程序失败原因的答案。 我实际上将这种方法称为“废话数据”。

日志文件缺乏深度,上下文和洞察力,对于任何真正想找到应用程序故障的真正根本原因的人来说。 当然,日志文件总比没有好,但是让我们看一下开发人员需要哪些数据才能始终找到根本原因:

  1. 应用程序堆栈跟踪 –显示哪个应用程序组件(类/方法)是故障的一部分
  2. 应用程序源代码 –显示导致失败的代码行
  3. 应用程序状态 –显示组件/源代码处理的应用程序参数(对象,变量和值)

今天,大多数日志文件将包含数百万个重复的应用程序堆栈跟踪。 这就是Splunk之所以价值60亿美元的原因,因为每条重复的堆栈跟踪信息都会花费$$$来解析,索引,存储和搜索。

是的,开发人员可以自定义应用程序日志以将所需的任何数据放入其中。 坏消息是,由于开销,开发人员无法记录所有内容,而创建有意义的日志通常需要知道将在应用程序中破坏什么。

没有水晶球,就不可能创建有效的日志文件,这就是为什么团队仍然要花费数小时或数天来寻找大海捞针的原因。 没有应用程序源代码或状态意味着操作和开发必须猜测。 这不好。 不幸的是,堆栈跟踪是不够的。 在F1中,这就像梅赛德斯维修站工作人员告诉他们的工程师“我们的遥测技术刚刚确认Nico的方向盘坏了,这是我们仅有的遥测技术–您能找出原因并尽快修复它”。

您能想象工程师会怎么想吗? 不幸的是,这是大多数开发人员今天在得知应用程序出现故障时的想法。

好消息是,现在可以知道生产中何时以及为何中断应用程序代码。 欢迎来到塔基皮 。

现在,不可能的事情成为可能,并且日志文件到此结束。

翻译自: https://www.javacodegeeks.com/2016/04/performance-vs-reliability-java-apps-like-f1-cars.html

java应用性能指标

java应用性能指标_性能与可靠性:Java应用为何像F1汽车相关推荐

  1. java必读书籍_最佳5本Java性能调优书籍–精选,必读

    java必读书籍 为什么Java开发人员应该阅读有关性能调优的书? 当我很久以前第一次面对这个问题时,我以为以后会做,但是我很长一段时间都没有回过头来. 仅当我在用Java编写的任务关键型服务器端财务 ...

  2. java python算法_用Python,Java和C ++示例解释的排序算法

    java python算法 什么是排序算法? (What is a Sorting Algorithm?) Sorting algorithms are a set of instructions t ...

  3. 做Java头发少_这35个Java代码优化细节,你用了吗

    链接:https://www.jianshu.com/p/6e472304b5ac 前言 代码 优化 ,一个很重要的课题.可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有 ...

  4. java 判断类型_如何快速入门Java编程学习(干货)

    一.初识Java 1.生活中的程序: 从起床到教室上课的过程 穿衣打扮>起床>洗漱>出宿舍>>吃早餐>到教室 按照特定的顺序去完成某一件事的过程我们叫做生活中的程序 ...

  5. 支持java虚拟主机_为何缺乏支持Java的虚拟主机

    现在很多站长们,都青睐于香港虚拟主机建站.现在常见的是asp和PHP的程序空间很多,但是Java的少之又少,下面小编我给大家聊一聊! 一.香港Java虚拟主机成本高 使用Java程序建站,就必须要用支 ...

  6. java future用法_纯干货:Java学习过程中的21个知识点和技术点

    我们在Java学习过程中要学会抓重点,善于总结,Java学习过程中常见的21个知识点和技术点你知道吗?下面和千锋广州小编一起来看看吧! 1. JVM相关 对于刚刚接触Java的人来说,JVM相关的知识 ...

  7. java架构师_成为一名Java高级架构师究竟要学哪些东西??

    Java架构师,应该算是一些Java程序员们的一个职业目标了吧.很多码农码了五六年的代码也没能成为架构师.那成为Java架构师要掌握哪些技术呢,总体来说呢,有两方面,一个是基础技术,另一个就是组织能力 ...

  8. java实现报表_用存储过程和 JAVA 写报表数据源有什么弊端?

    用存储过程和 JAVA 写报表数据源有什么弊端?跟着小编一起来一看一下吧! 我们在报表开发中经常会使用存储过程准备数据,存储过程支持分步计算,可以实现非常复杂的计算逻辑,为报表开发带来便利.所以,报表 ...

  9. 学java 的要点_零基础学Java,掌握Java的基础要点

    对于程序员群体来说,了解一定的技巧会对学习专业技能更有帮助,也更有助于在自己的职业发展中处于有利地位,无限互联Java培训专家今天就为大家总结Java程序员入门时需要掌握的基础要点: 掌握静态方法和属 ...

最新文章

  1. Materials Studio 做分子动力学MD(CO2为例)
  2. 【PAT (Advanced Level) Practice】1124 Raffle for Weibo Followers (20 分)
  3. Subset-Sum Problem 子集和问题
  4. thinkphp-条件判断-范围判断-NOTBETWEEN
  5. SAP BDT业务数据工具集的开发原理及应用实例
  6. python3--htmltestrunner 日志显示_实时日志:Serverless Python 运行时支持日志实时输出...
  7. DHCP Option 60 的理解
  8. 【渝粤题库】国家开放大学2021春4988电子政务概论题目
  9. [LeetCode]Balanced Binary Tree
  10. centos java jdk 升级_centos jdk 升级到1.7.0_45方法
  11. man ifconfig时提示:-bash: man: command not found
  12. 不胜唏嘘!衰落的苹果与崛起的荣耀
  13. 第二个暴力猴脚本- 改写后用iframe抓取携程某个城市所有起飞、到达航班并保存
  14. Django文档4.0(通俗易懂)
  15. RocksDB 入门
  16. 全球最大智慧集装箱码头如何做到“空无一人”?
  17. ios13 微信提示音插件_ios13怎么改微信提示音
  18. C语言家族树管理系统
  19. android 仿微信 视频播放器,Android仿微信多媒体选择器 - SmartMediaPicker
  20. .net通过S7.net读写西门子PLC中,字符串,bool,整数,小数及byte型

热门文章

  1. 洛谷P3791:普通数学题(整除分块、前缀和)
  2. P3426-[POI2005]SZA-Template【KMP】
  3. 牛客-乃爱与城市拥挤程度【树形dp】
  4. P5007-DDOSvoid的疑惑【树形dp】
  5. nssl1248-B【点分治,平衡树】
  6. 「LibreOJ NOIP Round #1」旅游路线
  7. 北方大学 ACM 多校训练赛 第十五场 数字游戏
  8. 28、jdbc操作数据库(5)
  9. JavaFX UI控件教程(九)之Text Field
  10. Java开发2018年值得学习的10大技术