JVM调优

连续研究了五篇,这次终于来到小高潮了,也是我最好奇的部分,JVM调优。作为Java小白,听到JVM调优不止一次。包括网上的视频,招聘岗位的要求等等,都会提到JVM调优。那么,JVM调优到底是啥?今天俺们就来瞅瞅。

调优调啥呢

JVM是Java虚拟机,是帮助字节码实际解释运行的东东。根据前面的探秘系列,不难看到,JVM这里头需要考虑的问题很多。主要就是对象的生成创建以及GC回收,新生代老年代的判定处理。其中的算法,处理机制的不同,会很大程度的影响JVM性能。而通过JVM对外提供的参数设置,可以影响JVM的GC回收机制,进而提升优化JVM的性能。这就是JVM调优。

开调

知道了调啥,开调就完了。主要方式有两种。

使用64位JDK管理大内存

使用64位内存,会增大堆空间,降低担保风险。但堆内存的扩大,垃圾收集频率虽然降低了,但每次垃圾收集耗时会大大增加。14G堆Full GC可达数十秒。如果频繁GC,用户就疯了。

使用这个方式前提是GC频率不高,或者交互没那么频繁,不会影响到用户使用。带来的问题如下:

1.回收时间长;

2.目前64位JDK性能跟不上;

3.一旦内存溢出,将产生超过10G的Dump文件,分析会非常崩溃,几乎无法定位;

4.同样程序,64位比32位JDK更吃内存,因为指针膨胀和内存补齐的原因。

使用32位JVM建立逻辑集群

在一台机器上,启动多个应用服务的进程,每个进程分配一个端口,然后在前端整个负载均衡器,以反向代理方式分配请求。好吧,这是我抄来的,懵了,这是啥意思?百度吧。盗图如下。

负载均衡就是一种软件或者硬件。前端发来的请求,通过它合理均衡的分配给后端服务器。避免出现一些服务器忙死一些又闲死的情况。在这里,使用一台机器,但每个应用都有个自己的进程端口,通过负载均衡器的分配,前端的请求平均分配给各个服务进程。

完了啥又是反向代理?有反就有正。代理就是个代理人,正向代理,是内网通过代理访问外网。这个就是正向的。反向就是反过来,外网通过代理访问内网。比如你在公司上家里头电脑,就是正向代理;在家远程公司电脑,就是反向代理。擦,就这?!

通过反向代理,把客户端发来的请求,分配给了服务器。由于是在同一台机器上,所以使用无Session复制的亲和式集群是不二选择。这种方式,均衡器会按照一定的规则,普遍是SessionID进行分配,将一个固定的用户请求永远给一个固定的集群节点进行处理。这里头这个Session复制涉及到Session服务器,以后会专门详细唠唠。

感觉这个还是没理解透,之后会结合实战再深入研究下。下期先把类文件整明白了。‘

JVM需调优,参设设置有讲究;理解还需加实战,日后必须搞清楚。

精神小伙儿探秘JVM( 六)相关推荐

  1. jvm六:主动使用(1.new一个对象, 2.反射)

    new一个对象 package com.atChina.jvm;public class Test4 {public static void main(String[] args) {// 所有的ja ...

  2. 一步步优化JVM六:优化吞吐量[转]

    2019独角兽企业重金招聘Python工程师标准>>> 原文:http://ganlv.iteye.com/blog/1571315 参考:http://www.myexceptio ...

  3. JVM(六)---jvm压缩指针

    一 什么是oop OOP = "ordinary object pointer" 普通对象指针. 启用CompressOops后,会压缩的对象: 1. 每个Class的属性指针(静 ...

  4. 浅谈JVM(六):方法调用过程

    上一篇: 浅谈JVM(一):Class文件解析 浅谈JVM(二):类加载机制 浅谈JVM(三):类加载器和双亲委派 浅谈JVM(四):运行时数据区 浅谈JVM(五):虚拟机栈帧结构 6.方法调用过程 ...

  5. 【深入理解JVM 六】虚拟机字节码执行系统

    前边几篇Blog分别介绍了JVM的类加载机制.运行时数据区域,那么字节码文件已然被加载到了JVM的内存中来,接下来就是执行它了.虚拟机字节码执行引擎的位置如下图所示,除了本地方法栈,其他运行时数据区域 ...

  6. JVM(六) - JVM调优

    前言 JVM调优主要是调整下面两个指标 停顿时间:垃圾收集器做垃圾回收中断应用执行的时间.-XX:MaxGCPauseMillis 吞吐量:垃圾收集的时间和总时间占比:1/(1+n) ,吞吐量为:1- ...

  7. fegin需要实现类_深入理解JVM(六)--虚拟机类加载机制

    虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制. 类从被加载到虚拟机内存开始,到卸载出内存为止 ...

  8. 探秘JVM(二)——编译进行时

    编译进行时 转载于:https://www.cnblogs.com/zipei/p/6181462.html

  9. 1000道最新高频Java面试题,覆盖25个技术栈(多线程、JVM、高并发、spring、微服务、kafka,redis、分布式)从底层原理到架构!

    每个技术人都有个大厂梦,我觉得这很正常,并不是饭后的谈资而是每个技术人的追求.像阿里.腾讯.美团.字节跳动.京东等等的技术氛围与技术规范度还是要明显优于一些创业型公司/小公司,如果说能够在这样的公司锻 ...

  10. 1000道最新大厂高频Java面试题,覆盖25个技术栈(多线程、JVM、高并发、spring、微服务、kafka,redis、分布式)从底层原理到架构

    每个技术人都有个大厂梦,我觉得这很正常,并不是饭后的谈资而是每个技术人的追求.像阿里.腾讯.美团.字节跳动.京东等等的技术氛围与技术规范度还是要明显优于一些创业型公司/小公司,如果说能够在这样的公司锻 ...

最新文章

  1. springboot日志logback配置
  2. 如何在父进程中读取子(外部)进程的标准输出和标准错误输出结果
  3. LVM和raid结合使用
  4. 【经典回放】多种语言系列数据结构算法:希尔排序(C/C#版)
  5. ajax div 赋值重新渲染_优化向:单页应用多路由预渲染指南
  6. 拼多多、微博等在新一轮经济变化中将做出更大贡献
  7. 针对ASP.NET MVC的SEO优化笔记
  8. 卷积神经网络流程图_基于卷积神经网络的叶片气孔自动计数方法
  9. python 生成excel_python 数据生成excel导出(xlwt,wlsxwrite)代码实例
  10. fancybox 无效 失效 直接打开页面, ajax 之后 fancybox对更新的数据无效,Jquery失效 无效...
  11. 7. mybatis实战教程(mybatis in action)之八:mybatis 动态sql语句
  12. NodeJs——子进程
  13. php yaf框架扩展实践一——配置篇
  14. 学生选课管理系统(python)
  15. 支付宝异步通知 java_java 支付宝支付 手机网站支付结果异步通知
  16. 三维球体史密斯圆图的发展与理解,史密斯圆图的最新发展
  17. 基于腾讯地图实现精准定位,实现微信小程序考勤打卡功能
  18. 数据结构教程(详细又简单——C语言实现)
  19. 游戏模型(3A)和影视模型(cg)的区别以及发展前景?
  20. ELK日志分析平台之kibana以及借助ELK平台实现网站访问量统计

热门文章

  1. C++ 实现即时通信软件(直接运行)
  2. java邮件发送 qq与163邮箱互发和qq和163邮箱发送其他邮箱实例
  3. 鼠标悬浮图片上下颤抖的问题
  4. 医院信息科面试题和笔试题汇总(计算机相关专业)
  5. python与图像处理书籍_数字图像处理与Python实现
  6. 前端常用PS技巧总结之将图片上的LOGO(水印)去掉
  7. 股票如何看股票均线-5-10-20-30-60日均线
  8. 机器视觉硬件(焦距和景深的计算)
  9. adb shell 获取手机分辨率
  10. 从零学IOS开发(一)