原文来自:http://bbs.csdn.net/topics/310110257 本文只做整理记录,供个人学习. 1 JVM参数调优是个很头痛的问题,设置的不好,JVM不断执行Full GC,导致整个系统变得很慢,网站停滞时间能达10秒以上,这种情况如果没隔几分钟就来一次,自己都受不了.这种停滞在测试的时候看不出来,只有网站pv达到数十万/天的时候问题就暴露出来了. 要想配置好JVM参数,需要对年轻代.年老代.救助空间和永久代有一定了解,还要了解jvm内存管理逻辑,最终还要根据自己的应用来做调…
JVM:参数调优 本笔记是根据bilibili上 尚硅谷 的课程 Java大厂面试题第二季 而做的笔记 前言 查看 JVM 系统默认值:使用 jps 和 jinfo 进行查看 -Xms:初始堆空间 -Xmx:最大堆空间 -Xss:栈空间 -Xms 和 -Xmx 最好调整一致,防止 JVM 频繁进行收集和回收 JVM参数类型 标配参数(从JDK1.0 - Java12都在,很稳定) java -version java -help java -showversion X 参数(了解) -Xint:…
堆参数调优 1.堆的结构 JAVA7 堆逻辑上分为:新生区.养老区.永久区:实际上堆只有新生区.养老区: Minor GC:轻量的垃圾回收:   Major GC(Full GC):重量级垃圾回收. Java8 没有永久区了,被元空间取代: 2.堆内存调优 -Xms:设置初始分配大小,默认为物理内存的 “ 1 / 64”: -Xmx:最大分配内存,默认为物理内存的 “1 / 4”: -XX:+PrintGCDetails:输出详细的GC处理日志: (1)使用代码输出实际默认的内存,代码如下: p…
常见参数配置 -XX:+PrintGC      每次触发GC的时候打印相关日志 -XX:+UseSerialGC      串行回收 -XX:+PrintGCDetails  更详细的GC日志 -Xms               堆初始值 -Xmx               堆最大可用值 -Xmn               新生代堆最大可用值 -XX:SurvivorRatio  用来设置新生代中eden空间和from/to空间的比例. -XX:NewRatio       配置新生代与…
1.背景 eclipse启动了一个项目,用了15分钟,我佛了,在家办公也懒得弄一直没管,好嘛,越用越气,越来越慢,现在启动一次要半小时了,气不气,然后下定决心调优一下. 2.知识库(自认为调优重要的几个参数) 堆设置 -Xms 最小堆内存.一般来讲,大点,程序会启动的快一点,但是也可能会导致机器暂时间变慢.此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存. -Xmx 最大堆内存.如果程序运行需要占用更多的内存,超出了这个设置值,就会抛出OutOfMemory异常. -Xmn…
tiKV 最底层使用的是 RocksDB(tidb3.0版本中将使用tian存储引擎) 做为持久化存储,所以 TiKV 的很多性能相关的参数都是与 RocksDB 相关的.TiKV 使用了两个 RocksDB 实例,默认 RocksDB 实例存储 KV 数据,Raft RocksDB 实例(简称 RaftDB)存储 Raft 数据. TiKV 使用了 RocksDB 的 Column Families (CF) 特性. 默认 RocksDB 实例将 KV 数据存储在内部的 default.wri…
本文主要参考自<深入理解 Java 虚拟机>.这本书是国人写的难得的不是照搬代码注释的且不是废话连篇的技术书,内容涵盖了 Java 从源码到字节码到执行的整个过程,包括了 JVM(Java Virtual Machine)的架构,垃圾收集的介绍等.这里摘录出关于配置 JVM 基本参数来调优 Eclipse 启动的过程,比较初级,供初学者参考. 基础知识 针对 JVM 的参数调优主要集中在数据区大小的控制和垃圾回收策略的选择.关于 JVM 运行机制等更多内容可参考其他博文 JVM 的运行时数据区…
JVM监控工具 Java的安装包自带了很多优秀的工具,善用这些工具对于监控和调试Java程序非常有帮助.常用工具如下: jps 用途:jps用来查看JVM里面所有进程的具体状态, 包括进程ID,进程启动的路径等等. 常用参数: -l: 输出完成的包名称: -m: 输出程序的命令行输入参数: -v: 输出完整的JVM参数. jstack 用途:1)查看java程序崩溃生成core文件,获得core文件的java stack和native stack的信息: 2)查看正在运行的java程序的java…
前言 在遇到实际性能问题时,除了关注系统性能指标.还要结合应用程序的系统的日志.堆栈信息.GClog.threaddump等数据进行问题分析和定位.关于性能指标分析可以参考前一篇JVM性能调优实践--性能指标分析. JVM的调优和故障处理可以使用JDK的几个常用命令工具.因为本文是基于Docker容器内部的Springboot服务.需要调整一下docker容器的启动参数,才可以使用jmap等工具.jmap命令需要使用Linux的Capability的PTRACE_ATTACH权限.而Docker…