JVM调优总结 -Xms -Xmx -Xmn -Xss

jvm 内存 在不同的情况下如何增大 及 PermGen space 相关

JVM日志和参数的理解

JVM崩溃Log日志分析

-Xms 为jvm启动时的内存
-Xmx 为jvm运行最大内存
-Xss 为jvm每个线程内存大小
-Xmn :设置年轻代大小。
整个堆大小=年轻代大小 + 年老代大小 ,而非整个堆大小=年轻代 大小 + 年老代大小 + 持久代大小
-XX:PermSize=64M     JVM初始分配的非堆内存
-XX:MaxPermSize=128M JVM最大允许分配的非堆内存
-XX:MaxDirectMemorySize=10M   最大直接内存

堆和非堆

1,堆就是Java代码可及的内存,是留给开发人员使用的;
2,非堆就是JVM留给自己用的,
方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法的代码都在非堆内存中。

直接内存(Direct Memory)

并不是虚拟机运行时数据区的一部分,也不是Java虚拟机规范中定义的内存区域,也可能导致OutOfMemoryError 异常出现

在JDK 1.4 中新加入了NIO(New Input/Output)类,引入了一种基于通道(Channel)与缓冲区(Buffer)的I/O 方式,

它可以使用Native 函数库直接分配堆外内存,然后通过一个存储在Java 堆里面的DirectByteBuffer 对象作为这块内存的引用进行操作。

这样能在一些场景中显著提高性能,因为避免了在Java 堆和Native 堆中来回复制数据。

优点:

Java直接内存与非直接内存性能测试

直接内存需要allocateDirect创建,但是它比申请普通的堆内存需要耗费更高的性能。
不过,这部分的数据是在JVM之外的,因此它不会占用应用的内存。

ByteBuffer有两种:

heap ByteBuffer -> -XX:Xmx
1.一种是heap ByteBuffer,该类对象分配在JVM的堆内存里面,直接由Java虚拟机负责垃圾回收,
direct ByteBuffer -> -XX:MaxDirectMemorySize
2.一种是direct ByteBuffer是通过jni在虚拟机外内存中分配的。通过jmap无法查看该快内存的使用情况。只能通过top来看它的内存使用情况

JVM内存参数( -Xms -Xmx -Xmn -Xss 直接内存)的更多相关文章

  1. java jvm 参数 -Xms -Xmx -Xmn -Xss 调优总结

    常见配置举例  堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制.32位系统 下,一般限制在1.5 ...

  2. JVM 参数配置及详解 -Xms -Xmx -Xmn -Xss 调优总结

    堆大小设置 JVM 中最大堆大小有三方面限制: ①.相关操作系统的数据模型(32-bt还是64-bit)限制; ②.系统的可用虚拟内存限制; ③.系统的可用物理内存限制. 32位系统 下,一般限制在1 ...

  3. JVM参数配置及详解 -Xms -Xmx -Xmn -Xss 调优总结

    堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制.32位系统 下,一般限制在1.5G~2G;64为操 ...

  4. [转]JVM调优总结 -Xms -Xmx -Xmn -Xss

    Xms 是指设定程序启动时占用内存大小.一般来讲,大点,程序会启动的快一点,但是也可能会导致机器暂时间变慢. Xmx 是指设定程序运行期间最大可占用的内存大小.如果程序运行需要占用更多的内存,超出了这 ...

  5. -Xms -Xmx -Xmn -Xss -XX:

    这两天遇到了pergen space的问题,在晚上查了查发现还挺普遍,并且通过eclipse启动,通过bat启动或者linux下通过sh启动,处理方式是不一样的,不过都是调整jvm的大小 如果有遇到同 ...

  6. JVM调优总结 -Xms -Xmx -Xmn -Xss

    http://blog.csdn.net/ye1992/article/details/9344807 堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit) ...

  7. JVM调优总结 -Xms -Xmx -Xmn -Xss(转载)

    堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内存限制:系统的可用物理内存限制.32位系统下,一般限制在1.5G~2G:64为操作 ...

  8. JVM调优总结 -Xms -Xmx -Xmn -Xss(转)

    堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内存限制:系统的可用物理内存限制.32位系统下,一般限制在1.5G~2G:64为操作 ...

  9. JVM调优总结 -Xms -Xmx -Xmn -Xss(转自:iteye unixboy)

    堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内存限制:系统的可用物理内存限制.32位系统下,一般限制在1.5G~2G:64为操作 ...

随机推荐

  1. PLSQL 块demo

    DECLARE   v_servid NUMBER(16);   v_stdno VARCHAR2(30); BEGIN   FOR i IN (SELECT rownum rn, t.*       ...

  2. 在delphi XE5 里面编译kbmmw4.3

    Delphi XE5 仓促的发布了,虽然开始支持Android 开发了,但是经过试用,发现那个模拟器慢到无法用, 真机可以运行,但是调试也几乎无法用.由于XE5 的主要增加的是Android 的开发支 ...

  3. Oracle 输出树形结构

    Oracle 输出树形结构 树形结构,根 select connect_by_root(cat.parentid) root,cat.id,cat.parentid,cat.name,cat.code ...

  4. java中配置JPA方法

    JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中 使用JPA进行保存对象时,可以用对象来接收,例 ...

  5. 2018.10.22 cogs2471. [EZOI 2016]源氏的数学课(线段树)

    传送门 线段树入门操作. 直接把题目给的(r−i+1)∗a[i](r-i+1)*a[i](r−i+1)∗a[i]拆开变成(r+1)∗1∗a[i]−i∗a[i](r+1)*1*a[i]-i*a[i](r ...

  6. 2018.10.15 bzoj4570: [Scoi2016]妖怪(凸包)

    传送门 不得不说这题有点东西啊. 看到题第一眼二分,用二次函数求范围来进行checkcheckcheck,20分滚粗了233. 于是开始思考正解. 发现可以把每只怪物的二元组属性看成二维坐标. 这时对 ...

  7. 2018.09.16 bzoj1086: [SCOI2005]王室联邦(贪心)

    传送门 就是给树分块. 对于一个节点. 如果它的几棵子树加起来超过了下限,就把它们分成一块. 这样每次可能会剩下几个节点. 把它们都加入栈中最顶上那一块就行了. 代码: #include<bit ...

  8. linux下mysql命令大全

    1.linux下启动mysql的命令: mysqladmin start /ect/init.d/mysql start (前面为mysql的安装路径) 2.linux下重启mysql的命令: mys ...

  9. centos6 mysql 安装与配置

    MySQL简介: 由于其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库.MySQL是一个多用户.多线程的关系型数据库管理 ...

  10. This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed(在64位模式下运行安装了32位的Oracle客户端组件时,会发生此问题)

    部署win服务时出现下面的问题: 在事件查看器中看到如下错误: 日志名称: Application来源: ***调度服务日期: 2014/5/21 12:53:21事件 ID: 0任务类别: 无级别: ...