JDK7与8内存参数解析与修改

JDK内存

jdk内存实际是jvm内存,jvm有一个运行时数据区,其实就是对这一部分的大小分配。

运行时数据区通常包括这几个部分:程序计数器(Program Counter Register)、Java栈(VM Stack)、本地方法栈(Native Method Stack)、方法区(Method Area)、堆(Heap)

  • Xss:每个线程的stack大小(栈)
  • Xmx:JAVA HEAP的最大值、默认为物理内存的1/4
  • Xms:JAVA HEAP的初始值,server端最好Xms与Xmx一样
  • Xmn:JAVA HEAP young区的大小
  • XX:PermSize:设定内存的永久保存区域(JDK7)
  • XX:MaxPermSize:设定最大内存的永久保存区域(JDK7)

在JDK1.8中,取消了PermGen,取而代之的是Metaspace,所以PermSize和MaxPermSize参数失效,取而代之的元空间:

 例如下面配置设置元空间的大小和最大大小:(等同于JDK7的永久区)

 -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m

例如:weblogic设置JVM参数:

-Xms2056m -Xmx2056m -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m

查看JVM参数:

第一种:jps+jmap

C:\Users\Administrator>jps
16740 Main
8388 Jps
4248
11564 Server
11884 NetworkServerControl

C:\Users\Administrator>jmap -heap 11564
Attaching to process ID 11564, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.121-b13

using thread-local object allocation.
Parallel GC with 4 thread(s)

Heap Configuration:
   MinHeapFreeRatio         = 0
   MaxHeapFreeRatio         = 100
   MaxHeapSize              = 2155872256 (2056.0MB)
   NewSize                  = 718274560 (685.0MB)
   MaxNewSize               = 718274560 (685.0MB)
   OldSize                  = 1437597696 (1371.0MB)
   NewRatio                 = 2
   SurvivorRatio            = 8
   MetaspaceSize            = 536870912 (512.0MB)
   CompressedClassSpaceSize = 1073741824 (1024.0MB)
   MaxMetaspaceSize         = 536870912 (512.0MB)
   G1HeapRegionSize         = 0 (0.0MB)

Heap Usage:
PS Young Generation
Eden Space:
   capacity = 538968064 (514.0MB)
   used     = 132464928 (126.32839965820312MB)
   free     = 406503136 (387.6716003417969MB)
   24.577509661129014% used
From Space:
   capacity = 89653248 (85.5MB)
   used     = 89640016 (85.48738098144531MB)
   free     = 13232 (0.0126190185546875MB)
   99.98524091397113% used
To Space:
   capacity = 89653248 (85.5MB)
   used     = 0 (0.0MB)
   free     = 89653248 (85.5MB)
   0.0% used
PS Old Generation
   capacity = 1437597696 (1371.0MB)
   used     = 75478984 (71.98236846923828MB)
   free     = 1362118712 (1299.0176315307617MB)
   5.250355103518475% used

61705 interned Strings occupying 7127136 bytes.

第二种:用JDK自带的工具 jconsole或者jvisualvm:

原文地址:https://www.cnblogs.com/qlqwjy/p/9668473.html

时间: 2024-08-02 05:19:46

JDK7与8内存参数解析与修改的相关文章

修改oracle内存参数

Linux主机16g内存,修改oracle数据库内存参数: 1.编辑/etc/fstab文件:针对tmpfs行将defaults改成defaults,size=12g(千万注意格式,不能出现错误) 修改贡献内存参数后,reboot重启服务器. 2.sqlplus登录oracle数据库,备份参数文件: 以下语句备份参数文件(必须): SQL>create pfile='/u01/app/oracle/pfile20161625.ora' from spfile; 3.Show parameter

sysctl内核参数解析

sysctl内核参数解析 kernel.参数 kernel.shmall = 2097152    ## 1> 表示所有内存大小.可以分配的所有共享内存段的总和最大值.(以页为单位) ## 2> 该参数以页为单位,linux共享内存页一般为4k,oracle默认参数是2097152,如果系统内存大于该参数,才考虑调整 ## 3> 如何计算:2097152*4k/1024 = 8192M =8G ## 4> 如何设置该值:推荐设置为物理内存大小除以分页大小. 获取分页大小   get

MySQL性能优化-内存参数配置

Mysql对于内存的使用,可以分为两类,一类是我们无法通过配置参数来配置的,如Mysql服务器运行.解析.查询以及内部管理所消耗的内存:另一类如缓冲池所用的内存等. Mysql内存参数的配置及重要,设置不当很有可能会造成很大的性能问题甚至是服务器宕机,内存相关参数的配置需要考虑以下两点: (1)确定可以使用的内存上限: (2)确定Mysql每个连接使用的内存: 在Mysql的体系中(如下图所示),简单来说可以分为两层,第一层代表各种可以用过Mysql连接协议连接到Mysql的客户端,例如PHP.

CImageList类Create函数参数解析

前面提到了CImageList类的Create(...)函数,虽然MSDN上已经有所解释,但仍有网友问到参数的具体含义,下面就我的理解,对参数进行一次轻量级的剖析 函数原型(其他重载函数请参看msdn):   BOOL Create( int cx, int cy, UINT nFlags, int nInitial, int nGrow ); cx ,cy: 图片的实际像素宽与高,没有问题 nFlags:创建图像列表的类型,包括4/8/16/24/32/位色, nInitial : 创建Ima

YARN 内存参数终极详解

很多朋友在刚开始搭建和使用 YARN 集群的时候,很容易就被纷繁复杂的配置参数搞晕了:参数名称相近.新老命名掺杂.文档说明模糊 .特别是那几个关于内存的配置参数,即使看好几遍文档也不能完全弄懂含义不说,配置时一不小心就会张冠李戴,犯错误. 如果你同样遇到了上面的问题,没有关系,在这篇文章中,我就为大家梳理一下 YARN 的几个不易理解的内存配置参数,并结合源码阐述它们的作用和原理,让大家彻底清楚这些参数的含义. 一.YARN 的基本架构 介绍 YARN 框架的介绍文章网上随处都可以找到,我这里就

Top 参数解析

Top命令监控某个进程的资源占有情况 下面是各种内存: VIRT:virtual memory usage 1.进程“需要的”虚拟内存大小,包括进程使用的库.代码.数据等     2.假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量 RES:resident memory usage 常驻内存 1.进程当前使用的内存大小,但不包括swap out     2.包含其他进程的共享     3.如果申请100m的内存,实际使用10m,它只增长10m,与VIR

Oracle 内存参数调优设置

Oracle 数据库系统中起到调节作用的参数叫初始化参数,数据库管理员根据实际情况需要适当调整这些 初始化参数以优化Oracle系统. 1 主要系统参数调优介绍 2 系统内存参数的分配 2.1 Oracle 实例= 内存结构 + 进程结构 内存结构 = SGA + PGA SGA(系统全局区): 用户存储数据库信息的内存区,该区域为数据库进程所共享.它包含服务器的数据和控制信息,主要包含高速数据缓冲区.共享池.重做日志缓存区.Java池,大型池等内存结构. SGA的设置,理论上SGA的大小应该占

服务器RAM具体参数解析,图文解说一步步教会你!

服务器内存也是内存(RAM),它与普通PC机内存在外观和结构上没有什么明显实质性的区别,主要是在内存上引入了一些新的特有的技术,如ECC.ChipKill.热插拔技术等,具有极高的稳定性和纠错性能. 最直观的分辨服务器内存与普通内存的方法就是看条子上的字有没有带ECC模块. 可能最让人头疼是RAM参数,一大串数字不知道都代表什么,其实这些参数都有一定的规律,很简单,现在就一起来探究里面的"奥秘"吧~~~ 目前内存主流品牌有很多,但看前面的字母其实就能判断出其品牌,比如: 三星:MXXX

PostgreSQL 内存参数的设置

PostgreSQl 安装完毕后,可以修改以下两个主要内存参数. shared_buffers:共享内存的大小,主要用于共享内存数据块. work_mem:单个 SQL 执行时,排序.hash join 所使用的内存,SQL 运行完成后,内存就释放了. shared_buffers 默认值为 32 MB,work_mem 为 1MB,如果你的机器上有足够的内存,可以把这个参数改得大一些, 这样数据库就可以缓存更多的数据块,当读取数据时,就可以从共享内存中读,而不需要再从文件上去读取. work_