汤姆猫

本章知识链路

Tomcat被誉为最好的web做事器,基本上每一位开拓职员(JAVA)都会利用,因此本章从以下几个方面来讲解,若文中有误的地方大伙可以留言谈论,一起研究研究。

Tomcat之JVM内存查看;Tomcat之启动优化;Tomcat之并发优化;Tomcat之内存优化;apache的ab压力测试;Tomcat之BIO/NIO/APR的三大模式(略)。

tomcat思路

Win7jsp服务器Web办事器Tomcat高等优化 React

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/

报告解释

附注

因韶光有限,文章中细节运用未在此表示,大家阅读时若有疑问可以随时留言谈论。
小编在这里致敬每一位技能人,大家辛劳啦!