
JVM
文章平均质量分 83
zhangjunli
这个作者很懒,什么都没留下…
展开
-
JVM参数调优
不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率。但是调整GC是以个极为复杂的过程,由于各个程序具备不同的特点,如:web和GUI程序就有很大区别(Web可以适当的停顿,但GUI停顿是客户无法接受的),而且由于跑在各个机器上的配置不同(主要cup个数,内存不同),所以使用的GC种类也会不同(如何选择见GC种类及如何选择)。本文将注重介绍JVM、原创 2020-09-22 10:40:21 · 197 阅读 · 0 评论 -
JVM参数及默认值
1 标准参数标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;通过命令java即可查看用法: java [-options] class [args...] (执行类) 或 java [-options] -jar jarfile [args...] (执行 jar 文件)其中选项包括: -d32 使用 32 位数据模型 (如果可用) -d64 使用 64 位数据模型 (如...原创 2020-09-22 09:07:51 · 1527 阅读 · 0 评论 -
G1垃圾回收器REGION SIZE说明
说明:JDK7和JDK8的Region划分实现略有不同(差异非常小,且只有-Xmx和-Xms的值不一样才有区别),本篇文章讲解的是JDK8中Region的划分实现;如果要了解JDK7的Region划分实现,请参考JDK7 headpRegion.cpp源码分析G1 Region划分的实现源码在headpRegion.cpp中,摘取部分核心源码如下:// Minimum re...原创 2020-02-02 14:40:45 · 5636 阅读 · 0 评论 -
java web tomcat项目高CUP和内存占用率
1. top命令查看CPU和内存占用率top回车,然后按1发现进程PID 35163 CPU和内存占用率都很高top - 06:13:47 up 5:31, 1 user, load average: 2.11, 2.07, 2.06Tasks: 189 total, 1 running, 188 sleeping, 0 stopped, 0 zombieCpu0...原创 2019-04-18 16:58:35 · 1180 阅读 · 0 评论 -
一次线上JVM调优实践,FullGC40次/天到10天一次的优化过程
通过这一个多月的努力,将FullGC从40次/天优化到近10天才触发一次,而且YoungGC的时间也减少了一半以上,这么大的优化,有必要记录一下中间的调优过程。对于JVM垃圾回收,之前一直都是处于理论阶段,就知道新生代,老年代的晋升关系,这些知识仅够应付面试使用的。前一段时间,线上服务器的FullGC非常频繁,平均一天40多次,而且隔几天就有服务器...转载 2019-04-18 16:50:52 · 253 阅读 · 1 评论 -
Java nio的一个严重BUG,导致cpu 100%
这个BUG会在linux上导致cpu 100%,使得nio server/client不可用,具体的详情可以看这里http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6403933 。令人失望的是这个BUG直到jdk 6u4才解决,sun的拖沓让人难以相信。这个BUG在server端容易出现,因为server端有频繁地接入断开连接。 使...转载 2019-04-18 16:33:37 · 2653 阅读 · 0 评论 -
Java多线程引发的性能问题以及调优策略
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.youkuaiyun.com/luofenghan/article/details/78596950 </div> <link rel="stylesheet" href="http...转载 2019-04-18 16:27:09 · 2955 阅读 · 0 评论 -
jdk8 jvm配置参数说明
这些选项是特定于Java HotSpot虚拟机的通用选项。-X显示所有可用-X选项的帮助。-Xbatch禁用后台编译。默认情况下,JVM将该方法编译为后台任务,以解释器模式运行该方法,直到后台编译完成。该-Xbatch标志禁用后台编译,以便所有方法的编译作为前台任务继续进行,直到完成。此选项相当于-XX:-BackgroundCompilation。-Xbootclasspat...原创 2019-04-13 22:28:50 · 585 阅读 · 0 评论 -
解决Linux TIME_WAIT过多造成的问题
1、 time_wait的作用:TIME_WAIT状态存在的理由:1)可靠地实现TCP全双工连接的终止 在进行关闭连接四次挥手协议时,最后的ACK是由主动关闭端发出的,如果这个最终的ACK丢失,服务器将重发最终的FIN,因此客户端必须维护状态信息允许它重发最终的ACK。如果不维持这个状态信息,那么客户端将响应RST分节,服务器将此分节解释成一个错误(在java中会抛出co...原创 2019-04-15 21:23:35 · 152733 阅读 · 5 评论 -
JVM调优总结 -Xms -Xmx -Xmn -Xss
堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置: java-Xmx3550m -Xms3550m -...转载 2019-04-02 13:45:09 · 161 阅读 · 0 评论 -
jdk8 jvm调优参数配置
1.由于jdk8开始,没有了永久区的概念,所以在jvm参数配置上不再需要-XX:PermSize-XX:MaxPermSize的配置了2.metaspace,元数据空间,专门用来存元数据的,它是jdk8里特有的数据结构用来替代perm相关的参数有两个CompressedClassSpaceSize和MaxMetaspaceSize(1)CompressedClassSpace...转载 2019-04-02 13:39:02 · 7049 阅读 · 0 评论 -
记录一次spring-boot程序内存泄露排查
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.youkuaiyun.com/liufang1991/article/details/86139210 </div> <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/templa...转载 2019-04-02 09:21:40 · 1022 阅读 · 0 评论 -
Spring Boot引起的“堆外内存泄漏”排查及经验总结
在项目迁移到Spring Boot之后,发生内存使用量过高的问题。本文介绍了整个排查过程以及使用到的工具,也非常适用于其他堆外内存排查。背景为了更好地实现对项目的管理,我们将组内一个项目迁移到MDP框架(基于Spring Boot),随后我们就发现系统会频繁报出Swap区域使用量过高...转载 2019-04-02 09:19:42 · 3985 阅读 · 2 评论 -
Linux系统下CPU使用(load average)梳理
当一台服务器的性能出现问题时,通常会去看当前的CPU使用情况,尤其是看下CPU的负载情况(load average)。对一般的系统来说,根据cpu数量去判断。比如有2颗cup的机器。如果平均负载始终在1.2以下,那么基本不会出现cpu不够用的情况。也就是Load平均要小于Cpu的数量。对于cpu负载的理解,首先需要搞清楚下面几个问题:1)系统load高不一定是性能有问题。因为L...原创 2019-04-01 15:32:38 · 1722 阅读 · 0 评论 -
JVM调优总结
目录数据类型堆与栈Java对象的大小引用类型按照基本回收策略分按分区对待的方式分按系统线程分如何区分垃圾如何处理碎片如何解决同时存在的对象创建和对象回收问题为什么要分代如何分代什么情况下触发垃圾回收分代垃圾回收流程示意选择合适的垃圾收集算法小结回收器选择辅助信息常见配置汇总调优总结垃圾回收的瓶颈增量收集的演进Garbage Firest(G1)展望JVM调优工具如何调优线程监控内存泄漏检查垃圾...转载 2019-04-01 09:39:15 · 254 阅读 · 0 评论