原文路径:https://www.cnblogs.com/pangxiansheng/p/5378537.html

JVM内存分配设置的参数有四个

-Xmx Java Heap最大值,默认值为物理内存的1/4

-Xms Java Heap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值;

-Xmn Java Heap Young区大小,不熟悉最好保留默认值;

-Xss 每个线程的Stack大小,不熟悉最好保留默认值;

-XX:PermSize:设定内存的永久保存区域;

-XX:MaxPermSize:设定最大内存的永久保存区域;

-XX:PermSize:设定内存的永久保存区域;

-XX:NewSize:设置JVM堆的'新生代'的默认大小;

-XX:MaxNewSize:设置JVM堆的'新生代'的最大大小;

  • Eclipse中设置JDK的内存方式

    为什么要设置JDK的内存呢?

    方式一:有可能的情况是Tomcat的内存溢出了,我需要设置如下的参数[关于下面的设置,需要根据你电脑的内存地址来设置]

-Xms512M -Xmx1024M -XX:PermSize=512m -XX:MaxPermSize=1024m

对JDK的内存设置操作过程如下,在Servers中找到诸如“Tomcat v6.0 Server at localhost [Stopped, Republish] ”双击显示如下页面,点击进入“Open launch configuration”--> Arguments --> 修改VM arguments中的参数配置。

方式二:增加JDK的内存的方法,直接在jdk下面的optional java vm arguments;

Window --> Preferences --> Java --> Install JREs --> 选中配置的JRE编辑 --> 设置Default VM arguments

  • 当你感觉你的Eclipse启动数据比较慢的时候,可以设置如下的属性

    如果使用eclipse的话,那么在解压的根目录中找到eclipse.ini

    如果使用sts的话,那么在根目录中找到STS.ini

-vmargs

-Xms128M

-Xmx512M

-XX:PermSize=64M

-XX:MaxPermSize=128M

:这里的所有的JVM的参数是有设定规则的,补充内容中含有

  • 增加Tomcat的内存方式

    tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大。

  • linux下,在文件{tomcat_home}/bin/catalina.sh的前面,增加如下设置:

    SET JAVA_OPTS=-Xms512m -Xmx1024m

  • windows下,在tomcat_home}/bin/catalina.bat的前面,增加如下设置:

    SET JAVA_OPTS=-Xms512m -Xmx1024m

    :表示初始化内存为512MB,可以使用的最大内存为1024MB

  • 对Tomcat的优化操作[来源自网络]

    (1) 在bin/catalina.bat文件中加入下面参数,对JVM进行优化,至于这一大驼参数的作用及说明,
    请查看文档: http://www.mzone.cc/article/321.html

JAVA_OPTS="-server -showversion -Xms1000M -Xmx1000M -XX:PermSize=256m -XX:MaxPermSize=256m"

JAVA_OPTS="$JAVA_OPTS -d64 -XX:CICompilerCount=8 -XX:+UseCompressedOops"

JAVA_OPTS="$JAVA_OPTS -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90"

JAVA_OPTS="$JAVA_OPTS -XX:ReservedCodeCacheSize=256m -XX:-UseAdaptiveSizePolicy"

JAVA_OPTS="$JAVA_OPTS -Duser.timezone=Asia/Shanghai -XX:-DontCompileHugeMethods"

JAVA_OPTS="$JAVA_OPTS -Xss256k -XX:+AggressiveOpts -XX:+UseBiasedLocking"

JAVA_OPTS="$JAVA_OPTS -XX:MaxTenuringThreshold=31 -XX:+CMSParallelRemarkEnabled "

JAVA_OPTS="$JAVA_OPTS -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=256m -XX:+UseFastAccessorMethods"

JAVA_OPTS="$JAVA_OPTS -XX:+UseCMSInitiatingOccupancyOnly -Djava.awt.headless=true"

JAVA_OPTS="$JAVA_OPTS -XX:+UseGCOverheadLimit -XX:AllocatePrefetchDistance=256 -XX:AllocatePrefetchStyle=1"

JAVA_OPTS="$JAVA_OPTS -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:MaxGCPauseMillis=200"

上述这样的配置,基本上可以达到:

  • 系统响应时间增快
  • JVM回收速度增快同时又不影响系统的响应率
  • JVM内存最大化利用
  • 线程阻塞情况最小化

-Xms=-Xmx=服务器内存*70%
如部署tomcat,jboss在同一台服务器 -Xms=-Xmx=服务器内存*80%*1/4

(2) Tomcat连接参数的优化,主要是针对吞吐量做优化:

修改conf/server.xml文件,把原来

<Connector port="8080" protocol="HTTP/1.1" />

修改内容如下:

<Connector port="8080" protocol="HTTP/1.1"

URIEncoding="UTF-8"

minSpareThreads="25"

maxSpareThreads="75"

enableLookups="false"

disableUploadTimeout="true"

connectionTimeout="20000"

acceptCount="300"

maxThreads="300"

maxProcessors="1000"

minProcessors="5"

useURIValidationHack="false"

compression="on"

compressionMinSize="2048"

compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"

redirectPort="8443"/>

一段补充说明:

搜索【<Executor name="tomcatThreadPool"】,开启并调整为

<Executor

name="tomcatThreadPool"

namePrefix="catalina-exec-"

maxThreads="1000"

maxIdleTime="60000"

minSpareThreads="20"/>

搜索【port="8080"】,调整为

<Connector

port="8080"

executor=" tomcatThreadPool" //开启线程池

protocol="org.apache.coyote.http11. Http11AprProtocol" //我们没有安装: 开启Apr协议,需要安装Apr支持maxHttpHeaderSize="8192"

maxThreads="1000"

processorCache="1000"

acceptCount="1000"

minSpareThreads="100"

acceptorThreadCount="8"

URIEncoding="UTF-8"

enableLookups="false"

redirectPort="8443" //关闭反向查询

connectionTimeout="120000"

keepAliveTimeout="120000"

maxKeepAliveRequests="65535"

disableUploadTimeout="true"

compression="on"

compressionMinSize="4096" //开启静态文件压缩

noCompressionUserAgents="gozilla, traviata" //开启静态文件压缩

compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,application/json,appli cation/x-javascript " //开启静态文件压缩

/>

可以通过java/jdk/bin下的java visualVM查看eclipse的内存大小和tomcat的内存大小,主要看堆,PermGen两个大小,如图:

Tomcat和JVM的内存配置的更多相关文章

  1. 设置TOMCAT的JVM虚拟机内存大小

    你知道如何设置TOMCAT的JVM虚拟机内存大小吗,这里和大家分享一下,JAVA程序启动时JVM都会分配一个初始内存和最大内存给这个应用程序.这个初始内存和最大内存在一定程度都会影响程序的性能. 设置 ...

  2. MyEclipse中Tomcat对应JVM的参数配置

    MyEclipse中Tomcat对应JVM的参数配置: -Xmx512M -Xms256M -XX:MaxPermSize=256m

  3. 第05篇. Tomcat和JDK的内存配置

    站在人群,我毫不起眼:活在世上,我不玩心眼! 没有那么远大的目标,但是也不要把我当成傻子! --胖先生 放在前面要说的话:JVM内存分配设置的参数有四个 -Xmx Java Heap最大值,默认值为物 ...

  4. Tomcat和JDK的内存配置

    1.jvm内存管理机制: 1)堆(Heap)和非堆(Non-heap)内存 按照官方的说法:"Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配.堆是在 Ja ...

  5. JVM的内存配置参数

    JVM的结构问题:JVM分两块:PermanentSapce和HeapSpace, HeapSpace = [old + new{=Eden,from,to}] PermantSpace主要负责存放加 ...

  6. tomcat 端口修改和内存配置

    端口号修改参考:https://jingyan.baidu.com/article/adc815139b12def722bf7377.html Tomcat内存溢出(windows) java.lan ...

  7. 如何设置Tomcat的JVM虚拟机内存大小

    我的是解压版的tomcat: 首先找到tomcat中bin目录下: catalina.bat 文件,打开这个文件,在 @echo off 下面一行,加上一行代码: set JAVA_OPTS=-ser ...

  8. tomcat优化和JVM修改内存

    Tomcat中的线程池(APR和ThreadPool) 2. 在Connector中指定使用共享线程池: <Connector executor="tomcatThreadPool&q ...

  9. Tomcat 设置JVM内存大小

    我的服务器的配置: # OS specific support.  $var _must_ be set to either true or false. JAVA_OPTS="-Xms10 ...

随机推荐

  1. Form组件的验证流程及扩展(钩子)

    Form组件的验证流程及扩展(钩子) 常用的form class TestForm(Form): t1 = fields.CharField( widget=widgets.Textarea # 输入 ...

  2. Mysql 8.0 新特性

    转载:https://www.jianshu.com/p/be29467c2b0c

  3. java基础—基础语法1

    一.标识符

  4. 点击按钮在表格的某一行下,在添加一行(HTML+JS)

    使用js在指定的tr下添加一个新的一行newTr html代码: <table> <tr> <td>用户名:</td> <td><in ...

  5. Yum简单使用小结

      Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于RPM包管理,能够从指定的服务器自动 ...

  6. lua 分割字符串

    -- 参数:待分割的字符串,分割字符 -- 返回:子串表.(含有空串) function split(str, split_char) local sub_str_tab = {} while tru ...

  7. 201621123080《Java程序设计》第9周学习总结

    作业09-集合与泛型 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 2. 书面作业 本次作业题集集合 1. List中指定元素的删除(题集题目) 1.1 实 ...

  8. C++简易酒店管理系统,实现(查询、入住、退房、楼层选择、退出)功能

    #include <iostream> #include <string.h> #include <stdlib.h> void enter(); void che ...

  9. uvm transaction modeling

    1.what is transaction? network transactions tcp/ip wifi 3g/4g bus transactions amba-ahb/apb/axi pci/ ...

  10. leetcode-14-basic-breadthFirstSearch

    BFS: breadth first search 107. Binary Tree Level Order Traversal II 解题思路: 本来我是用map<int,int>存所有 ...