一张JVM图,总结Java 程序员必须清楚的性能指标及调优参数

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

 


而除了这几个方面之外,关于调优,还有其他相应的要注意,但是其实,所谓的调优,最主要的就是对于知识的掌握程度,这是我关于jvm整理的一些知识点

一张JVM图,总结Java 程序员必须清楚的性能指标及调优参数_第1张图片

 

常用调优参数

一张JVM图,总结Java 程序员必须清楚的性能指标及调优参数_第2张图片

 

需要这份思维导图资料的,关注+转发后哦,私信“资料”即可查看获取方式

不知道大家平时的业务怎么样,反正我是正常的业务调优够用了,不能解决的,我就只能靠各种搜索引擎了,哈哈哈哈,不过, 大家也可以把自己常用的一些调优参数整理一下,记录出来,这样,后期会省去你很多的功夫

而我这张知识图谱的整理,除了平时工作遇到的问题之外,还有一份参考手册也帮了我大忙

目录

一张JVM图,总结Java 程序员必须清楚的性能指标及调优参数_第3张图片

 

 

一张JVM图,总结Java 程序员必须清楚的性能指标及调优参数_第4张图片

 

一张JVM图,总结Java 程序员必须清楚的性能指标及调优参数_第5张图片

 

一张JVM图,总结Java 程序员必须清楚的性能指标及调优参数_第6张图片

 

 

一张JVM图,总结Java 程序员必须清楚的性能指标及调优参数_第7张图片

 

需要这份文档资料的,关注+转发后哦,私信“学习”即可查看获取方式

公众号:Java架构师联盟,每日更新技术好文

你可能感兴趣的:(java,架构,java,linux,编程语言)