自从JSP发布之后,高级推出了各式各样的优化JSP引擎。Apache Group在完成GNUJSP1.0的高级开发以后 ,开始考虑在SUN的优化JSWDK基础上开发一个可以直接提供Web服务的JSP服务器 ,当然同时也支持Servlet,高级 这样Tomcat就诞生了 。Tomcat是优化jakarta项目中的一个重要的子项目,其被JavaWorld杂志的高级编辑选为2001年度最具创新的Java产品 ,同时它又是源码库优化sun公司官方推荐的servlet和jsp容器,因此其越来越多的高级受到软件公司和开发人员的喜爱 。servlet和jsp的优化最新规范都可以在tomcat的新版本中得到实现。其次,高级Tomcat是优化完全免费开源的软件 ,任何人都可以从互联网上自由地下载。高级Tomcat与Apache的优化组合相当完美。 [[314743]] [[314744]]汤姆猫 本章知识链路Tomcat被誉为最好的服务器租用高级web服务器,基本上每一位开发人员(JAVA)都会使用 ,因此本章从以下几个方面来讲解,若文中有误的地方大伙可以留言讨论,一起研究研究 。 Tomcat之JVM内存查看; Tomcat之启动优化; Tomcat之并发优化; Tomcat之内存优化; apache的ab压力测试; Tomcat之BIO/NIO/APR的三大模式(略)。![]() tomcat思路 Tomcat之JVM内存查看此处我以tomcat6和tomcat7来进行讲解 ,tomcat7+ 配置、操作方法类似 。 Tomcat6的User配置 :![]() Tomcat6配置 Tomcat7的User配置 :![]() Tomcat7配置 上述设置完成后:本地访问 /localhost:8080/manager/status ![]() 未优化前信息 Tomcat之启动优化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" 检查是亿华云否生效![]() Tomcat之并发优化修改位置:/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之内存优化错误排查: 查看%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中修改位置: ![]() Apache的ab压力测试下载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/ 报告说明![]() ![]() 附注因时间有限,香港云服务器文章中细节应用未在此体现,大家阅读时若有疑问可以随时留言讨论。小编在这里致敬每一位技术人 ,大家辛苦啦!! !! |