- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
项目jvm和tomcat优化指南
修改记录:
修改人 修改时间 修改内容 版本
Tomcat的优化分成两块Tomcat启动命令行中的优化即JVM优化Tomcat容器自身参数的优化Tomcat启动行参数的优化Tomcat 的启动参数位于Tomcat的安装目录\bin目录下,如果是Linux操作系统是catalina.sh文件,如果是Windows操作系统那么需要改动的是catalina.bat文件Linux系统中Tomcat的启动参数
export JAVA_OPTS=-server -Xms100M -Xmx1500M -Xss512k -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:PermSize=64M -XX:MaxPermSize=1024M Windows系统中Tomcat的启动参数
set JAVA_OPTS=-server -Xms100M -Xmx1500M -Xss512k -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:PermSize=64M -XX:MaxPermSize=1024M
参数解释:–server
Tomcat是运行在生产环境中的,这个参数必须加上因为tomcat默认是以一种叫java –client的模式来运行的,server即意味着Tomcat是以真实的production的模式在运行的,这也就意味着Tomcat以将拥有更大、更高的并发处理能力更快更强捷的JVM垃圾回收机制,可以获得更多的负载与吞吐量–Xms –Xmx
把Xms与Xmx两个值设成一样是最优的做法在设这个最大内存即Xmx值时先打开一个命令行,键入如下的命令:
能够正常显示JDK的版本信息说明这个值够用。
显示错误说明设置的最大内存过大,需要调低。
–Xmn
设置年轻代大小为512。整个堆大小=年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为64,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。
-Xss
是指设定每个线程的堆栈大小。这个就要依据程序看一个线程大约需要占用多少内存,可能会有多少线程同时运行等。一般不易设置超过1M,容易出现out of memory。
-XX:+AggressiveOpts
启用这个参数,当JDK版本升级时,JVM都会使用最新加入的优化技术(如果有的话)
-XX:+UseBiasedLocking
启用一个优化的线程锁这个优化的线程锁使ppserver内对线程处理自动进行最优调配。
-XX:PermSize=M -XX:MaxPermSize=1024M
JVM使用XX:PermSize设置非堆内存初始值,默认是物理内存的1/64由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。
如果是物理内存4G,那么64分之一就是64M,这是PermSize默认值,也是永生代内存初始大小;四分之一是1024M,这是MaxPermSize默认大小。在数据量的很大的文件导出时,一定要把这两个值设置上,否则会出现内存溢出的错误。Tomcat容器内的优化
对Tomcat启动时的命令进行了优化,增加了系统的JVM、垃圾回收效率与线程阻塞情况、增加了系统响应效率等还有一个很重要的优化就是吞吐量因此下面Tomcat容器内的优化。
打开Tomcat安装目录\conf\server.xml文件,定位到这一行:
Connector port=8080 protocol=HTTP/1.1 这一行就是Tomcat容器性能参数设置的地方,它一般都会有一个默认值,这些默认值是远远不够使用,更改配置:
Connector port=8080 protocol=HTTP/1.1
????????? URIEncoding=UTF-8?
minSpareThreads=25
maxSpareThreads=75
????????? enableLookups=false
disableUploadTimeout=true
connectionTimeout=20000
????????? acceptCount=200?
maxThreads=300
maxProcessors=1000
minProcessors=10
????????? useURIValidationHack=false
compression=on
compressionMinSize=2048
???????????????????
文档评论(0)