您的位置:首页 > 服务器 > > 正文

tomcat服务页面打开超慢(Web服务器Tomcat高级优化)

更多 时间:2021-10-24 10:16:40 类别:服务器 浏览量:2464

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服务器Tomcat高级优化)

  • tomcat服务页面打开超慢(Web服务器Tomcat高级优化)

    汤姆猫

  • 本章知识链路

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

    1. Tomcat之JVM内存查看;
    2. Tomcat之启动优化;
    3. Tomcat之并发优化;
    4. Tomcat之内存优化;
    5. apache的ab压力测试;
    6. Tomcat之BIO/NIO/APR的三大模式()。
  • tomcat服务页面打开超慢(Web服务器Tomcat高级优化)

    tomcat思路

  • Tomcat之JVM内存查看

    此处我以tomcat6和tomcat7来进行讲解,tomcat7+ 配置、操作方法类似。

    • Tomcat6的User配置:
  • tomcat服务页面打开超慢(Web服务器Tomcat高级优化)

    Tomcat6配置

    • Tomcat7的User配置:
  • tomcat服务页面打开超慢(Web服务器Tomcat高级优化)

    Tomcat7配置

    • 上述设置完成后:

    本地访问 /localhost:8080/manager/status

  • tomcat服务页面打开超慢(Web服务器Tomcat高级优化)

    未优化前信息

  • Tomcat之启动优化

    • Linux中修改catalina.sh文件,windows中修改catalina.bat文件;内容如下:
  • tomcat服务页面打开超慢(Web服务器Tomcat高级优化)

     

  • 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服务页面打开超慢(Web服务器Tomcat高级优化)

     

  • Tomcat之并发优化

    • 修改位置:

    /opt/tomcat7/conf下的server.xml文件中<Connector>节点的配置优化,一定先备份。

  • tomcat服务页面打开超慢(Web服务器Tomcat高级优化)

     

    • 标准版优化:

    <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中修改位置:

  • tomcat服务页面打开超慢(Web服务器Tomcat高级优化)

     

  • 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/

    • 报告说明
  • tomcat服务页面打开超慢(Web服务器Tomcat高级优化)

     

  • tomcat服务页面打开超慢(Web服务器Tomcat高级优化)

     

  • 附注

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

    您可能感兴趣