Tomcat和JVM的内存配置
原文路径: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" |
|
上述这样的配置,基本上可以达到:
|
|
-Xms=-Xmx=服务器内存*70% |
(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的内存配置的更多相关文章
- 设置TOMCAT的JVM虚拟机内存大小
你知道如何设置TOMCAT的JVM虚拟机内存大小吗,这里和大家分享一下,JAVA程序启动时JVM都会分配一个初始内存和最大内存给这个应用程序.这个初始内存和最大内存在一定程度都会影响程序的性能. 设置 ...
- MyEclipse中Tomcat对应JVM的参数配置
MyEclipse中Tomcat对应JVM的参数配置: -Xmx512M -Xms256M -XX:MaxPermSize=256m
- 第05篇. Tomcat和JDK的内存配置
站在人群,我毫不起眼:活在世上,我不玩心眼! 没有那么远大的目标,但是也不要把我当成傻子! --胖先生 放在前面要说的话:JVM内存分配设置的参数有四个 -Xmx Java Heap最大值,默认值为物 ...
- Tomcat和JDK的内存配置
1.jvm内存管理机制: 1)堆(Heap)和非堆(Non-heap)内存 按照官方的说法:"Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配.堆是在 Ja ...
- JVM的内存配置参数
JVM的结构问题:JVM分两块:PermanentSapce和HeapSpace, HeapSpace = [old + new{=Eden,from,to}] PermantSpace主要负责存放加 ...
- tomcat 端口修改和内存配置
端口号修改参考:https://jingyan.baidu.com/article/adc815139b12def722bf7377.html Tomcat内存溢出(windows) java.lan ...
- 如何设置Tomcat的JVM虚拟机内存大小
我的是解压版的tomcat: 首先找到tomcat中bin目录下: catalina.bat 文件,打开这个文件,在 @echo off 下面一行,加上一行代码: set JAVA_OPTS=-ser ...
- tomcat优化和JVM修改内存
Tomcat中的线程池(APR和ThreadPool) 2. 在Connector中指定使用共享线程池: <Connector executor="tomcatThreadPool&q ...
- Tomcat 设置JVM内存大小
我的服务器的配置: # OS specific support. $var _must_ be set to either true or false. JAVA_OPTS="-Xms10 ...
随机推荐
- c#和Java中的接口
使用场景: 在c#和Java中: 1.接口可以实现“多继承”(多实现),一个类只能继承自一个父类,但是可以实现多个接口. 2.接口解决了不同类型之间的多态问题,比如鱼与船不是同一类型,但是都能在水里“ ...
- 代码块(block)的使用
Objective-C语法之代码块(block)的使用 代码块本质上是和其他变量类似.不同的是,代码块存储的数据是一个函数体.使用代码块是,你可以像调用其他标准函数一样,传入参数数,并得到返回值. 脱 ...
- Java中的==和equals的区别详解
1.基础知识 (1)String x = "hello"; (2)String x = new String ("hello"); 第1种方式的工作机制是,首先 ...
- october安装过程
下载代码 composer create-project october/october myoctober 准备好数据库, create database october; 配置环境于安装 php ...
- 【Spring】事务的实现方式
1 初步理解 理解事务之前,先讲一个你日常生活中最常干的事:转账. 场景设定: 用户名 余额 A 1000 B 1000 操作: A通过支付宝给B转账200块,做这件事情会进行两个操作. 1:A账号- ...
- http客户端与浏览器的区别
两者区别:浏览器对http响应头会进行特定处理(如自动读取本地缓存.设置cookie等),而http客户端(如crul)可能没有像浏览器那样的处理,某些封装程度高的http客户端,可能会有. 同一个文 ...
- thinkcmf5增加微信管理app笔记
simplewind/extend/目录下增加 EasyWeChat Monolog //是PHP的一个日志类库 https://segmentfault.com/a/1190000002775 ...
- Python简单试题2
1,给定一组数据,将奇数进行从小到大排序,偶数在原位置不变 例: 原数据:[5, 3, 2, 8, 1, 4] 排序后:[5, 3, 2, 8, 1, 4] 若数组为空,则返回空数组. 代码如下: ...
- matplotlib学习记录 五
# 绘制电影票房竖条形图 from matplotlib import pyplot as plt a = ["战狼2","速度与激情8","功夫瑜伽 ...
- LOJ 101 最大流(ISAP 模板)
开long long的最大流 #include<bits/stdc++.h> using namespace std; ;//点数的最大值 ;//边数的最大值 ; struct Edge ...