汤姆猫
本章知识链路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/
报告解释附注
因韶光有限,文章中细节运用未在此表示,大家阅读时若有疑问可以随时留言谈论。小编在这里致敬每一位技能人,大家辛劳啦!
!
!
!