tomcat服务页面打开超慢(Web服务器Tomcat高级优化)
tomcat服务页面打开超慢
Web服务器Tomcat高级优化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)都会使用,因此本章从以下几个方面来讲解,若文中有误的地方大伙可以留言讨论,一起研究研究。
- Tomcat之JVM内存查看;
- Tomcat之启动优化;
- Tomcat之并发优化;
- Tomcat之内存优化;
- apache的ab压力测试;
- Tomcat之BIO/NIO/APR的三大模式(略)。
Tomcat之JVM内存查看
此处我以tomcat6和tomcat7来进行讲解,tomcat7+ 配置、操作方法类似。
- Tomcat6的User配置:
- Tomcat7的User配置:
- 上述设置完成后:
本地访问 /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/
- 报告说明
附注
因时间有限,文章中细节应用未在此体现,大家阅读时若有疑问可以随时留言讨论。小编在这里致敬每一位技术人,大家辛苦啦!!!!
- web安全漏洞怎么解决(Web服务器常见8种安全漏洞)
- net微服务架构部署方式(基于Apache的支持.NET2.0的Web服务器搭建)
- web服务器主要有哪些(浅谈Web服务器和应用服务器的区别)
- iis服务器如何搭建一个网站(配置IIS网站web服务器的安全策略配置解决方案)
- http服务器使用教程(HTTP与HTTP协作的Web服务器访问流程图解)
- iis服务器的配置(win7下配置使用IIS搭建自己的WEB服务器)
- apache怎么配置服务器(Apache2 WEB服务器的配置步骤分享)
- 有哪些优秀的web服务器(几款比较好的WEB服务器软件推荐)
- web服务器和http服务器的区别(浅谈WEB服务器、应用程序服务器、HTTP服务器区别)
- tornado异步编程(Tornado Web服务器中处理空白字符的解决方案)
- apache服务配置详解(Apache Web服务器的完全安装指南)
- nginx 可以部署java吗(Java-利用Nginx负载均衡实现Web服务器)
- nodejs启动web服务器(使用NODE.JS创建一个WEBSERVER服务器的步骤)
- 做网站是使用nginx还是apache(web服务器软件Apache与Nginx的对比分析)
- web服务器与应用服务器的区别(web服务器是什么?web服务器有哪些呢?)
- nginx服务器有什么用(Nginx的作用详解,为什么在Web服务器中Nginx的比例越来越高?)
- 包水饺(包水饺手法怎么包视频)
- 越南河粉(越南河粉来自哪里)
- 按这几方面养护佛肚竹盆景,保证枝叶繁茂,造型优美(按这几方面养护佛肚竹盆景)
- 冰岛旅游攻略(冰岛旅游攻略及花费八日游)
- 寒假旅游攻略(成都寒假旅游攻略)
- 菲律宾旅游攻略(菲律宾旅游攻略地图)
热门推荐
- dede搜索模块下载(dede会员列表调用适用于企业、个人)
- python完整异常机制(深入理解Python异常处理的哲学)
- python中的变量与变量类型(Python变量类型知识点总结)
- mysql千万数据如何优化(MySQL千万级数据的表如何优化)
- python类定义(浅谈python新式类和旧式类区别)
- python淘宝秒杀教程(Python实现京东秒杀功能代码)
- linux如何安装php环境(Linux下安装Memcached服务器和客户端与PHP使用示例)
- sql server 2008自定义函数(SQL SERVER 2012新增函数之逻辑函数CHOOSE详解)
- serv-u设置文件夹权限(serv_U 域离线 解决方法)
- jenkins集成docker自动部署(详解docker部署Jenkins新手使用教程)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9