Java 程序员必须了解的 7 个性能指标

2023-10-26

640


来源:王韵菲 

www.evget.com/article/2015/11/16/22990.html


本文中,小编搜集了7个最有影响的衡量标注,让你可以不依赖日志文件来了解应用程序。现在,让我们看看这些性能指标,并了解如何查看并收集它们:


1.响应时间和吞吐量


根据应用程序的响应时间可以知道程序完成传输数据所用的时间。也可以从HTTP请求级别,或者成为数据库级别来看。对那些缓慢的查询你需要做一些优化来缩短时间。吞吐量是另一个角度衡量传输数据的指标,是指单位时间内系统处理的客户请求的数量。


我们可以使用APMs(例如New Relic或AppDynamics)来衡量这些指标。使用这些工具,你可以在主报告仪表板中将平均响应时间与昨天的甚至上周的直接进行对比。这有助于我们观察新的部署是否会影响到我们的应用程序。你可以看到网络传输的百分比,测量HTTP完成请求需要多长时间。你也可以看看这篇:网站性能测试指标(QPS,TPS,吞吐量,响应时间)详解


推荐工具:


  • AppDynamics

  • New Relic

  • Ruxit


New Relic报告:Web传输百分比和吞吐量


2.平均负载


第二个应用广泛的指标是平均负载。我们习惯上会把平均负载分为这三步测量,分别是第5分钟、第15分钟和最后1分钟。要保证数量低于机器的内核数。一旦超过内核数,机器就会运行在压力状态下。


除了简单测量CPU使用率,还需要关注每个内核的队列中有多少进程。在内核使用率都是100%的情况下,队列中只有1个任务和有6个任务有很大不同。因此,平均负载不能只考虑CPU使用率。


推荐工具:


  • htop


3.错误率


大多数开发人员判断错误率是根据HTTP传输总失败百分比。但是他们忽略了一个更深层的东西:特定传输的错误率。这直接影响到您应用程序的运行状况。这可以显示出代码方法的错误以及错误或异常出现的次数。


但单纯的错误率数据对我们没有多大帮助。最重要的是我们要找到它们的根源并解决问题。随着Takipi的运行,我们要在日志文件中需找线索。你可以找到所有关于服务器状态的信息,包括堆栈跟踪、源代码和变量值。


推荐工具:


  • Takipi


4.GC率和暂停时间


异常行为垃圾收集器应用程序的吞吐量和响应时间采取深潜的主要原因之一。了解GC暂停频率和持续时间的关键是分析GC日志文件。要分析它们,你需要收集GC日志和JVM参数。你要注意观察不同指标之间的数据是如何相互影响的。


推荐工具:


  • jClarity Censum

  • GCViewer


5.业务指标


应用程序的性能不完全取决于响应时间和错误率。业务指标也是一方面,例如收益、用户数。


推荐工具:


  • Grafana

  • The ELK stack

  • Datadog

  • Librato


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


这一指标奠定了整个应用程序性能的基础。不仅可以当做一个提醒指标,也可以让你定义一段时间内的SKA。我们可以使用Pingdom的servlet功能进行运行状态检查。我们可以查到应用程序的所有传输,包括数据库和S3。你也可以看看这篇:SLA服务可用性4个9是什么意思?怎么达到?


推荐工具:


  • Pingdom


7.日志大小


日志有一个缺点,它是一直在增加的。当您的服务器启动塞满了垃圾,一切都慢下来。因此,我们需要密切的关注日志大小。


目前通常的解决办法是使用logstash划分使用日志,并将它们发送并存储在Splunk、ELK或其他的日志管理工具中。


推荐工具:


  • Splunk

  • Sumo Logic

  • Loggly


推荐阅读

高级面试:JAVA内存模型

Java 程序员必备的高效 Intellij IDEA 插件

Spark SQL用UDF实现按列特征重分区

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 程序员必须了解的 7 个性能指标 的相关文章

  • 浅拷贝与深拷贝

    目录 什么是拷贝 浅拷贝 前端浅拷贝方法 java后端深拷贝方法 深拷贝 前端深拷贝方法 java后端深拷贝方法 需要注意的事情 什么是拷贝 拷贝是指对对象进行复制的操作 是为了创建一个与原对象具有相同值的新对象 以便在不改变原对象的情况下
  • JAVA上机题(3道)

    题目一 从控制台中读入一个文件名 判断该文件是否存在你的某个盘下 如果该文件存在 则在原文件相同路径下创建一个文件名为 copy 原文件名 的新文件 该文件内容为原文件的拷贝 首先肯定是要判断该文件名到底存不存在 我们定义一个方法 用来判断
  • 多线程(三)

    Java 208 道面试题 多线程 35 并行和并发有什么区别 并行是指两个或者多个事件在同一时刻发生 而并发是指两个或多个事件在同一时间间隔发生 并行是在不同实体上的多个事件 并发是在同一实体上的多个事件 在一台处理器上 同时 处理多个任
  • 三太子敖丙-帅丙的文章目录

    三太子敖丙 帅丙的文章目录
  • Mybatis中的#号与$符号的区别

    1 变量名 可以进行预编译 类型匹配等操作 2 变量名 会转化为jdbc的类型 3 变量名 不进行数据类型匹配 直接替换 4 方式能够很大程度防止sql注入 5 方式无法方式sql注入 6 方式一般用于传入数据库对象 例如传入表名 7 尽量
  • 05-Mysql夺命三连问:什么是索引下推?什么是索引覆盖?什么是回表?【Java面试总结】

    Mysql夺命三连问 什么是索引下推 什么是索引覆盖 什么是回表 索引下推是mysql5 6 提出的一个查询优化方案 主要的目的是减少数据或查询中不必要的读取和计算 它的原理是将查询条件尽可能的推送到索引层面进行过滤 减少从磁盘读取的数据量
  • Mysql存储引擎

    目录 Mysql有哪些存储引擎 Mysql存储引擎IMyISAM与InnoDB区别 MyISAM索引与InnoDB索引的区别 InnoDB引擎的4大特性 如何选择存储引擎 一张表 里面有ID自增主键 当insert了17条记录以后 删除了第
  • 每日一道面试题之什么是C/S架构?什么是B/S架构?

    C S架构 Client Server架构 是一种分布式计算架构 其中客户端应用程序与服务器应用程序之间通过网络进行通信 在C S架构中 客户端负责用户界面和交互 而服务器负责处理业务逻辑和数据存储 例如 我们经常使用的数据库管理系统 如M
  • 计算机网络基础知识归纳总结整理

    计算机网络基础 基础知识 1 网络模型 OSI分层 7层 物理层 数据链路层 网络层 传输层 会话层 表示层 应用层 TCP IP分层 4层 网络接口层 网际层 运输层 应用层 五层协议 5层 物理层 数据链路层 网络层 运输层 应用层 每
  • 工程师事业的思考(分享一些好的面试题)

    题记 最近去参加了一场技术交流会 小圈子内的技术交流 有来自大厂的一些高层工程师 做技术嘛 这条路其实是木有尽头的 说到底还是得要基础好哇 我目前是在做区块链行业 做数字货币交易所 然后很多朋友就是觉得非常不理解了嘛 就像李笑来说的那样 可
  • get和post区别

    get和post区别 get参数通过url传递 post放在request body中 get请求在url中传递的参数是有长度限制的 而post没有 get比post更不安全 因为参数直接暴露在url中 所以不能用来传递敏感信息 get请求
  • 程序员工资大概组成【刚毕业的大学生看过来】

    一 程序员的薪资组成是什么样子的呢 薪资组成因人而异 受到很多因素的影响 如工作地点 工作经验 工作职责 专业领域等 一般而言 中国程序员的薪资组成包括基本工资 绩效工资 津贴和奖金等 在中国 程序员的平均薪资水平受到地区 行业和职业经验等
  • Java面试题及答案整理汇总(2023最新版)

    前言 面试前还是很有必要针对性的刷一些题 很多朋友的实战能力很强 但是理论比较薄弱 面试前不做准备是很吃亏的 这里整理了很多面试常考的一些面试题 希望能帮助到你面试前的复习并且找到一个好的工作 也节省你在网上搜索资料的时间来学习 第1 10
  • 十七、定时任务

    一 为什么需要定时任务 相关业务场景多 例如 1 凌晨一点进行相关数据同步 2 定时发送文章 3 半小时全量推送某些数据给用户 二 单机定时任务 Timer java util Timer是 JDK 1 3 开始就已经支持的一种定时任务的实
  • java中String、StringBuffer、StringBuilder的区别

    java中String StringBuffer StringBuilder是编程中经常使用的字符串类 他们之间的区别也是经常在面试中会问到的问题 现在总结一下 看看他们的不同与相同 三者共同之处 都是final类 不允许被继承 主要是从性
  • java内存区域简介以及GC机制

    目录 前言 1 java内存区域简介 1 1 方法区 Method Area 1 2 堆区 Heap 1 3 程序计数器 pc 寄存器 1 4 Java 虚拟机栈 JVM Stacks 1 5 本地方法栈 Native Mthod Stac
  • 抽象类和接口的区别,以及使用场景?

    抽象类 接口 抽象类和接口区别 Java 8中关于接口的改进 接口中的默认方法 抽象类和接口使用场景 抽象类是对一种事物的抽象 即对类抽象 而接口是对行为的抽象 抽象类是对整个类整体进行抽象 包括属性 行为 但是接口却是对类局部 行为 进行
  • java各类型String,int,char,long,StringBuilder,StringBuffer,Integer之间的转换总结

    String和char类型之间的转换 1 String char 因为String是字符串 而char是单个字符 只能把String 转化为char数组 方法为 char ch str toCharArray 2 char String 方
  • 第1章 Java基础(二)

    1 11 重写和重载的概念 难度 重点 白话解析 这道题它的重点不仅仅是在面试中 因为后续在做开发的时候会接触到大量的重写或重载 也正是因为他们 才实现了Java的多态特性 1 重写 好好理解下 就是本来父亲写好了一个方法 然后儿子觉得父亲
  • springboot自动装配原理

    目录 springboot自动装配详细原理 自动装配主要依靠三个核心的关键技术 引入starter 查找第三方配置类 动态加载 个人理解 还有不足的地方需要学习 写这篇帖子目的是为了记录自己的理解 springboot自动装配简单来说是sp

随机推荐

  • 刷个宇宙题:剑指 Offer II 008 和大于等于target的最短子数组、 009. 乘积小于 K 的子数组

    008 题目 解题 用的双指针 没有理解前缀法 二分法 009 乘积小于 K 的子数组 解题 滑动窗口
  • SQL增删改操作

    一 增加插入 第一种形式无需指定要插入数据的列名 只需提供被插入的值即可 INSERT INTO table name VALUES value1 value2 value3 第二种形式需要指定列名及被插入的值 INSERT INTO ta
  • 28_计算机网络(Computer Networks)基础

    本篇介绍计算机网络的基础知识 文章目录 1 计算机网络历史 2 以太网 Ethernet 2 1 以太网 Ethernet 的简单形式及概念 2 2 指数退避解决冲突问题 2 3 利用交换机减少同一载体中设备 2 4 互联网 The Int
  • 基于 SpringBoot + MyBatis 实现点餐系统

    点餐系统的实现页面详情 1 管理员登录页面 2 管理员菜品页 3 管理员查看订单页 4 订单详情页 5 普通用户页面 6 普通用户下单页面 7 普通用户订单页面 1 创建数据库和表 CREATE DATABASE IF NOT EXISTS
  • 安卓手机安装google套件的详细步骤

    前言 谷歌三件套大概就是google service framework 谷歌服务框架 google play service google play store 这里介绍一下如何安装这三个软件 对华为手机可能无效 请谨慎尝试 三个软件各自
  • SpringBoot——整合MyBatis

    前情回顾 在开始介绍SpringBoot整合MyBatis之前 我们先来复习一下在Spring中整合MyBaits是如何来做的 其中的核心思想是将MyBatis中的SqlSession对象交给Spring去管理 并且Spring提供了一个M
  • ICLR 2023

    PaperWeekly 原创 作者 叶振辉 单位 浙江大学博士生 研究方向 语音合成 说话人视频合成 语音驱动的说话人视频合成 Audio driven Talking Face Generation 是虚拟人领域的一个热门话题 它旨在根据
  • 67.二进制求和 C++

    给你两个二进制字符串 a 和 b 以二进制字符串的形式返回它们的和 示例 1 输入 a 11 b 1 输出 100 示例 2 输入 a 1010 b 1011 输出 10101 提示 1 lt a length b length lt 10
  • stable diffusion图片资源分享和模型推荐,好用的模型有哪些呢?

    前言 这篇文章主要是分享我的图片和推荐一些好用的模型 模型不在多在于精 基于几个好的大模型适当下载一下LORA模型 就能画出非常好的图片 多话不说 图片分享 简单展示 详情请看 https space bilibili com 109890
  • 编程艺术 - 第二章 、俩个字符串是否包含问题以及扩展

    1 题目 假设这有一个各种字母组成的字符串 假设这还有另外一个字符串 而且这个字符串里的字 母数相对少一些 从算法是讲 什么方法能最快的查出所有小字符串里的字母在大字符串里 都有 比如 如果是下面两个字符串 String 1 ABCDEFG
  • 串联型PID,并联型PID与标准型PID简要说明

    串联型PID 并联型PID与标准型PID简要说明1 PID广泛应用于工业生产各个环节 然而对于不同PID结构会有一些差异 导致在调参时若按照常规的经验调试 结果将会有非常大的不同 串联型PID Serial PID 串联型PID的三个环节由
  • JMeter安装配置

    JMeter安装配置 安装小记 1 JMeter下载 2 环境变量配置 安装小记 1 JMeter下载 直接下载的链接 https download csdn net download weixin 43554548 80965649 官网
  • 一份简短又全面的数学建模技能图谱:常用模型&算法总结

    声明一下 下述内容的多数链接出自一本教材 司守奎 数学建模算法与应用 第二版的PDF版本 改成转载需要给出原创链接 实属无意冒犯 pdf版教材链接 百度网盘 https pan baidu com s 1TEYSW5ZImQU4Sy7Om2
  • 利用 Python 结合 UI 来模拟实现多人聊天

    一 界面功能展示 1 设置一个通信 用户1 2 设置通信 用户2 3 进入聊天功能界面 4 发送信息来实现实时通信 二 代码实现 1 服务器端 服务器需要能够与客户机进行直接通信 客户机之间不需要能够通信 服务器需要配置监听的IP 0 0
  • Qt5开发工具---常用Qt5开发工具(附下载地址)

    文章目录 一 简述 二 Qt界面开发工具 1 QT设计师 三 Qss控件美化工具 1 QSS Editor 2 Qss Stylesheet Editor 3 qtawesome icon broswer 四 官方文档 1 Qt官方文档 2
  • react如何实现数据渲染

    React数据渲染是指将组件中的数据映射到页面上 以展示出来 在React中 数据渲染通常是通过JSX和组件的state或props完成的 JSX是一个类似HTML的语法 可以在其中嵌入JavaScript表达式 在JSX中 可以使用 包裹
  • 关于数据库意向锁与封锁粒度若干问

    我们所说的加锁是谁对谁加锁 是事务T对某个封锁对象加锁 封锁对象的大小被称为封锁的粒度 这个对象可以是数据库 关系 也可以是元组 为什么要引入多粒度锁协议 封锁粒度大 系统被封锁的对象越少 并发度越小 系统开销越小 封锁粒度越小 系统被封锁
  • DB2:”因为未能分配专用虚拟内存,所以请求失败“错误的解决方法

    是在创建数据库的时候遇到的这个问题 解决方法作个记录 SQL1219N 因为未能分配专用虚拟内存 所以请求失败 SQLSTATE 57011 解决方法 1 DOS命令行中执行 db2set DB2 EXTSECURITY NO 2 重启DB
  • feign在DTO传参时GET请求自动转成POST请求

    文章目录 场景 解决 场景 1 网关请求发送到后端从GET变成了POST 2 代码如下 使用openfeign发请求时 发现GET请求转成了POST FeignClient name pd auth server fallback Reso
  • Java 程序员必须了解的 7 个性能指标

    来源 王韵菲 www evget com article 2015 11 16 22990 html 本文中 小编搜集了7个最有影响的衡量标注 让你可以不依赖日志文件来了解应用程序 现在 让我们看看这些性能指标 并了解如何查看并收集它们 1