一、调优指标


  • 首先列出性能调优指标,对于所有性能监控和管理来说,有三个维度是通用的
  1. 延迟(Latency)--如:所有交易必须在10秒内得到响应。
  2. 吞吐量(Throughput)--如:每天必须能处理100万个订单。
  3. 系统容量(Capacity)--如:必须能部署在4核8G内存上。

 二、工具查看log


1.JMX API 

  •  JMX是获取JVM内部运行时状态信息的标准API。可以编写程序代码,通过JMX API 来访问本程序所在的JVM,也可以通过JMX客户端执行(远程)访问。

最常见的JMX客户端是 JConsole 和JVisualVM(可以安装各种插件,十分强大)。

三、调优方式

JVM调优核心为调整年轻代、年老代的内存空间大小/堆内存大小及使用GC算法

        -Xms4G 是指:JVM启动时整个堆(包括年轻代、年老代)的初始化大小。
        -Xmx4G 是指:JVM启动时整个堆的最大值。
        -Xmn2G 是指:年轻代的空间大小,剩下的是年老代
        -XX:SurvivorRatio=1 是指年轻代空间中2个Survivor空间与Eden空间的大小比例。此处为1:1:1。
        -XX:+UseConcMarkSweepGC 是指:使用GC的回收算法类型。这里是CMS,JDK1.7以后推荐使用+UseG1GC,被称为G1类型(或Garbage First)的回收器。

(1)调优延迟指标

        假设有一个需求,每次作业必须在1000ms内处理完成。我们知道,实际的工作处理只需要100ms。
        也就相当于GC暂停不能超过900ms
        只要配置不同的内存大小以及算法,解析GC日志文件,并找出GC暂停中最长的那个暂停时间即可(可以保证怎么延迟也不会超过那个最长的暂停时间)。

(2)调优吞吐量指标

        假设有个需求,每小时完成1300万次操作处理。
        我们可以找到有效时间比较为合适的,通过 CPU核数*单核每小时能处理多少次操作处理 = 每小时处理多少次作业,找到合适的那个。

(3)调优系统容量

        假设将软件部署到服务器上,配置为4核10G。
        这样的话,系统容量的需求就变成:最大的堆内存空间不能超过8GB

通过从三种不同的维度来进行考虑,测量,并调优延迟和吞吐量,此外还要考虑到系统容量的约束。

更多java基础总结(适合于java基础学习、java面试常规题):

总结篇(1)---复用类

总结篇(2)---多态

总结篇(3)---内部类 (1)内部类的基本概念

总结篇(4)---内部类 (2)内部类之静态内部类

总结篇(5)---内部类 (3)内部类之成员内部类

总结篇(6)---内部类 (4)内部类之局部内部类

总结篇(7)---内部类 (5)内部类之匿名内部类

总结篇(8)---序列化

总结篇(9)---字符串及基本类 (1)字符串及基本类之基本数据类型

总结篇(10)---字符串及基本类 (2)字符串及基本类之java中公共方法及操作

总结篇(11)---字符串及基本类 (3)String对象

总结篇(12)---字符串及基本类 (4)Integer对象

总结篇(13)--- Java注解及元注解

总结篇(14)---JVM(java虚拟机) (1)JVM虚拟机概括

总结篇(15)---JVM(java虚拟机) (2)类加载器

总结篇(16)---JVM(java虚拟机) (3)运行时数据区

总结篇(17)---JVM(java虚拟机) (4)垃圾回收

总结篇(18)---JVM(java虚拟机) (5)垃圾回收算法

总结篇(19)---JVM(java虚拟机) (6)JVM调优

总结篇(20)---反射

总结篇(21)---Java IO

总结篇(22)---Java 进程

总结篇(23)---Java线程及其相关(1)线程介绍

总结篇(24)---Java线程及其相关(2)多线程及其问题

总结篇(25)---Java线程及其相关(3)线程池及其问题

总结篇(26)---Java线程及其相关(4)ThreadLocal

总结篇(27)---Java并发及锁(1)Synchronized

总结篇(28)---Java并发及锁(2)Volatile

总结篇(29)---Java并发及锁(3)Lock

总结篇(30)---Java并发及锁(4)常见锁及分类

总结篇(31)---JUC工具类(1)CountDownLatch

总结篇(32)---JUC工具类(2)CyclicBarrier

总结篇(33)---JUC工具类(3)Semaphore

总结篇(34)---JUC工具类(4)Exchanger

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐