Tomcat和JDK的内存配置
2016-05-01 13:01
441 查看
放在前面要说的话: 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堆的'新生代'的最大大小;
参考: https://www.geek-share.com/detail/2515520421.html
方式一:增加JDK的内存的方法,直接在jdk下面的optional java vm arguments; 设置参数
详情参考:http://www.cnblogs.com/pangxiansheng/p/5378537.html
当你感觉你的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 Access Denied 问题的解决方法
- Tomcat服务器启动错误之Offending class: javax/servlet/Servlet.class
- Tomcat服务器启动错误之Offending class: javax/servlet/Servlet.class
- tomcat7与JSTL冲突
- 76、怎样给Myeclipse配置tomcat服务器
- 理解Tomcat(一) 利用Digester解析xml文件
- Apache-Tomcat-8.0.9配置基于Python的CGI脚本解析
- tomcat 部署到服务器提示找到到struts标签
- 创建银行账户管理系统项目及Tomcat服务器搭建
- IntelliJ IDEA Tomcat配置 详解
- Java Tomcat SSL 服务端/客户端双向认证
- tomcat 启动异常跳转classloader.class
- 一个服务器跑多个tomcat的设置
- eclipse中tomcat老是404出错
- Java web之Tomcat作为Servlet容器的基本功能
- Linux 安装Tomcat
- isapi_redirect.exe安装失败处理
- Jetty 的工作原理以及与 Tomcat 的比较
- myeclipse用maven搭建web项目后tomcat启动报找不到jar包解决办法
- tomcat闪退,手动无法启动,针对tomcat6,7,8