Web服务器(Tomcat)高级优化

softyun3年前云服务器45

Tomcat背景

自从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的组合相当完美。

 


汤姆猫


本章知识链路

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

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

  2. )。

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/

报告说明

附注

因时间有限,文章中细节应用未在此体现,大家阅读时若有疑问可以随时留言讨论。小编在这里致敬每一位技术人,大家辛苦啦!!!!

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

海外虚拟主机空间租用怎么选择

海外虚拟主机空间租用选择的方法:1、看海外机房位置,根据网站访问流量选择海外虚拟主机空间;2、看虚拟主机空间参数,如空间大小、数据库大小、绑定域名个数、网站数量等,保证能满足网站的需求;3、看内容限制...

台湾服务器部署直播业务的好处有什么

台湾服务器部署直播业务的好处:1. 台湾服务器支持直连线路,距离中国大陆相对比较近,访问速度快且延迟低,完全能满足直播业务的延迟需求。2. 台湾服务器的硬件稳定性强,能够提供raid阵列或者支持分布式...

租用香港服务器可以满足什么条件

租用香港服务器可以满足的条件有:1、租用香港服务器可以满足不想给网站备案的条件;2、租用香港服务器能够解决南北互通的瓶颈问题;3、租用香港服务器国内外访问速度是一样快的,适合国内外贸企业租用。具体内容...

未备案的域名能不能放到香港服务器

众所周知,香港服务器的最大优点就是免备案,这也是很多站长选择香港服务器的重要原因之一。最近也有很多的新手站长咨询小编,未备案的域名是否能放到香港服务器,答案当然是肯定可以的。备案一般称为网站备案、域名...

服务器托管怎么选择机房

服务器托管选择机房的方法:1、看机房的带宽环境是否较好,如路由节点是否较少,节点越少,通过的路越少,访问速度越快;2、看机房是否正规,是否有一定的资质;3、看机房的环境和技术实力,以保证能及时解决服务...

租用美国vps云服务器有哪些缺点

租用美国vps云服务器的缺点有:1、在国内访问速度比较慢,会影响用户体验;2、访问美国VPS云服务器过程中,网络节点太多,容易出现线路故障导致VPS不稳定;3、美国VPS选择Windows系统的费用比...