Tomcat背景自从JSP发布以来,各种JSP引擎相继推出。ApacheGroup在完成GNUJSP1.0的开发后,开始考虑在SUN的JSWDK的基础上开发一个可以直接提供Web服务的JSP服务器。当然,它也支持Servlet,于是Tomcat诞生了。Tomcat是jakarta项目中的一个重要子项目。它被JavaWorld杂志的编辑选为2001年最具创新性的Java产品。深受软件公司和开发商的喜爱。最新的servlet和jsp规范可以在新版本的tomcat中实现。其次,Tomcat是完全免费和开源的软件,任何人都可以从网上免费下载。Tomcat和Apache的结合是相当完美的。Tomcat本章知识链接Tomcat号称最好的web服务器,基本上每个开发者(JAVA)都会用到,所以本章将从以下几个方面进行讲解,如果文章中有错误,可以留言一起讨论、研究和学习。Tomcat的JVM内存视图;Tomcat的启动优化;Tomcat的并发优化;Tomcat的内存优化;Tomcat思路Tomcat的JVM内存查看这里我用tomcat6和tomcat7来说明,tomcat7+的配置和运行方法类似。Tomcat6的用户配置:Tomcat6配置Tomcat7用户配置:Tomcat7配置以上设置完成后:本地访问/localhost:8080/manager/优化前的状态信息Tomcat启动优化Linux下修改catalina.sh文件,Windows下修改catalina.蝙蝠文件;内容如下:exportJAVA_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.headTomcat=true》并发优化修改位置:/opt/tomcat7/conf下server.xml文件中节点的配置优化必须先备份。标准版本优化:复杂版本优化:Tomcat的内存优化错误排查:查看%TOMCAT_HOME%\logs文件夹,日志文件中是否有内存溢出错误错误信息1:java.lang.OutOfMemoryError:Javaheapspace原因:Tomcat默认可以使用的内存是128MB。在较大的应用项目中,这个内存不够用,可能会导致系统出现故障。常见问题是报Tomcat内存溢出错误,OutofMemory(系统内存不足)异常导致客户端显示500错误。一般调整Tomcat使用的内存即可解决这个问题。解决方法:Windows环境下修改:“%TOMCAT_HOME%\bin\catalina.bat”文件,在文件开头添加如下设置:JAVA_OPTS=-Xms2048m-Xmx2048mLinux环境修改:“%TOMCAT_HOME%\bin\catalina.sh"文件,在文件开头添加如下设置:JAVA_OPTS=-Xms2048m-Xmx2048m错误信息2:java.lang.OutOfMemoryError:PermGenspace原因PermGenspace的全称是PermanentGenerationspace,指的是永久存储内存区域。这块内存主要用于JVM存储的Class和Meta信息,Class在被Loader加载时会被放到PermGen空间。它不同于存放类实例(Instance)的Heap区。GC(GarbageCollection)在主程序运行期间不会改变PermGen。空间要清理,所以如果你的应用程序有很多CLASS,PermGenspaceerrors很可能会出现。当Web服务器预编译JSP时,此错误很常见。如果你的WEBAPP下使用了大量的第三方jar,并且其大小超过了jvm默认的大小(4M),那么就会产生这个错误信息。解决方法:修改Windows环境下的“%TOMCAT_HOME%\bin\catalina.bat”文件,在文件开头添加如下设置:setJAVA_OPTS=-Xms64m-Xmx256m-XX:PermSize=128M-XX:MaxNewSize=256m-XX:MaxPermSize=256m在Linux环境下,修改:“%TOMCAT_HOME%\bin\catalina.sh”文件,在文件开头添加如下设置:exportJAVA_OPTS=-Xms64m-Xmx256m-XX:PermSize=128M-XX:MaxNewSize=256mXX:MaxPermSize=256mwindows修改位置:Apacheab压力测试下载httpd-2.2.29.tar.gz包/opt解压:httpd-2.2.29.tar.gz根目录/下:mkdir-p/usr/local/web/进入apache下的httpd-2.2.29文件夹/opt:cdhttpd-2.2.29installation./configure--prefix=/usr/local/web/apache--enable-shared=max--enable-module=rewirte--enable-module=somakemakeinstallab压力测试开始:进入/usr/local/web/apache/bin目录,执行以下命令:ab-n1000-c100/localhost:8080/报告笔记是limited及时,所以文章中的细节应该适用这里就不体现了。如果您在阅读过程中有任何问题,可以随时留言讨论。小编在这里向每一位技术人致敬,大家辛苦了!!!!