这篇文章主要讲解了“Web服务器中Tomcat高级优化的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Web服务器中Tomcat高级优化的方法是什么”吧!
此处我以tomcat6和tomcat7来进行讲解,tomcat7+ 配置、操作方法类似。
Tomcat6的User配置:
Tomcat7的User配置:
上述设置完成后:
本地访问 /localhost:8080/manager/status
Linux中修改catalina.sh文件,windows中修改catalina.bat文件;内容如下:
export JAVA_OPTS="
-server
-Xms1600M
-Xmx1600M
-Xss512k
-XX:+AggressiveOpts
-XX:+UseBiasedLocking
-XX:PermSize=128M
-XX:MaxPermSize=256M
-XX:+DisableExplicitGC
-XX:MaxTenuringThreshold=31
-XX:+UseConcMarkSweepGC
-XX:+UseParNewGC
-XX:+CMSParallelRemarkEnabled
-XX:+UseCMSCompactAtFullCollection
-XX:LargePageSizeInBytes=128m
-XX:+UseFastAccessorMethods
-XX:+UseCMSInitiatingOccupancyOnly
-Djava.awt.headless=true"
检查是否生效
修改位置:
/opt/tomcat7/conf下的server.xml文件中<Connector>节点的配置优化,一定先备份。
标准版优化:
<Connector port="8080"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="600"
minSpareThreads="100"
maxSpareThreads="500"
acceptCount="700"
connectionTimeout="20000"
redirectPort="8443" />
复杂版优化:
<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"/>
错误排查:
查看%TOMCAT_HOME%\logs文件夹下,日志文件是否有内存溢出错误
错误提示一:java.lang.OutOfMemoryError: Java heap space
产生原因:
Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,有可能导致系统无法运行。
常见的问题是报Tomcat内存溢出错误,Out of Memory(系统内存不足)的异常,从而导致客户端显示500错误,
一般调整Tomcat的使用内存即可解决此问题。
解决办法:
Windows环境下修改:
“%TOMCAT_HOME%\bin\ catalina.bat ”文件,在文件开头增加如下设置:
JAVA_OPTS=-Xms2048m -Xmx2048m
Linux环境下修改:
“%TOMCAT_HOME%\bin\ catalina.sh ”文件,在文件开头增加如下设置:
JAVA_OPTS=-Xms2048m -Xmx2048m
错误提示二:java.lang.OutOfMemoryError: PermGen space
产生原因
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用中有很CLASS的话,就很可能出现PermGen space错误,这种错误常见在web服务器对JSP进行pre-compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了 。
解决办法:
Windows环境下修改:
“%TOMCAT_HOME%\bin\ catalina.bat ”文件,在文件开头增加如下设置:
set JAVA_OPTS=-Xms64m -Xmx256m -XX:PermSize=128M -XX:MaxNewSize=256m - XX:MaxPermSize=256m
Linux环境下修改:
“%TOMCAT_HOME%\bin\ catalina.sh ”文件,在文件开头增加如下设置:
export JAVA_OPTS=-Xms64m -Xmx256m -XX:PermSize=128M -XX:MaxNewSize=256m XX:MaxPermSize=256m
windows中修改位置:
下载httpd-2.2.29.tar.gz包
/opt下面解压:httpd-2.2.29.tar.gz
根目录/下:
mkdir -p /usr/local/web/apache
/opt下进入httpd-2.2.29文件夹:cd httpd-2.2.29
安装
./configure --prefix=/usr/local/web/apache --enable-shared=max --enable-module=rewirte --enable-module=so
make
make install
ab压力测试开始:
进入/usr/local/web/apache/bin目录下,执行以下命令:
ab -n1000 -c100 /localhost:8080/
报告说明
感谢各位的阅读,以上就是“Web服务器中Tomcat高级优化的方法是什么”的内容了,经过本文的学习后,相信大家对Web服务器中Tomcat高级优化的方法是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。