zoukankan      html  css  js  c++  java
  • 关于tomcat8在windows2008下高并发下有关问题的解决方案

    关于tomcat8在windows2008下高并发下问题的解决方案

    因为客户服务器特殊的环境问题,只能使用windows2008r2服务器,然而配置过后,网站的高访问量很快就出现了各种问题,以下是解决的问题汇总。

    服务器环境:windows2008R2+jdk8.0+tomcat8.0.21+sqlserver2008r2(以上软件环境均是64位)

    1、首先建议安装jdk8.0(64位)以能获取较高的JVM内存设置,不然网站访问并发过高,内存很快就会出现不足,也就是常说的java heap space不足了。下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

    记得一定要选择:jdk-8u45-windows-x64.exejdk-8u45-windows-x64.exejdk-8u45-windows-x64.exe

    2、安装64位的tomcat8.0,目前最新版本是apache-tomcat-8.0.21,下载地址:http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.0.21/bin/apache-tomcat-8.0.21-windows-x64.zip

    3、修改连接器协议,默认是HTTP/1.1,该默认设置不能支持过高的并发量,不然会出现io错误。方法是修改conf/server.xml将<Connector port="8080" protocol="HTTP/1.1"修改为<Connectorport="8080"protocol="org.apache.coyote.http11.Http11NioProtocol"

    4、优化jar包,如果一个jar文件出现在多个WEB应用中的话,可以将该jar文件统一放到一个目录下,以 避免被tomcat 多次加载,耗用内存占用。方法是:

    修改:/conf/catalina.properties文件

    将:

    common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar"后面增加:"${catalina.home}/share/lib/*.jar"

    然后将共用的jar文件放到tomcat下share目录里的lib文件夹里即可。

    5、tomcat8默认会缓存图片资源,当并发过高时,会提示warn信息: WARNING [http-nio-80-exec-43] org.apache.catalina.webresources.Cache.getResource Unable to add the resource at.....,这个本身没有什么问题,只是不断在日志中写入信息,日志文件不断增加,感觉不好,干脆设置不缓存,方法是:

    修改META-INF下的context.xml文件,在Context中增加一行:<Resources cachingAllowed="false"></Resources>

    6、设置jvm较大内存,编辑bin/catalina.bat,找到以下代码段:rem Guess CATALINA_HOME if not defined,在其上面增加代码:

    set JAVA_OPTS=-Xms512m -Xmx4096m -XX:PermSize=128M -XX:MaxPermSize=256m

    这里设置的Xmx为4G内存,如果安装的不是64位的JDK,那么在设置最大内存的时候,就会提示不支持(好像最多能设置到1G多点,要知道服务器内存是64G啊,!!!)。所以第一步为什么安装64位的操作系统了。

    7、设置tomcat最大并发数,方法:修改conf/server.xml,在Connector下增加以下代码:maxThreads="1000" minSpareThreads="100" maxSpareThreads="300"  acceptCount="100" 

    以下是我的配置:

    <Connector port="80" protocol="org.apache.coyote.http11.Http11NioProtocol"
                   connectionTimeout="20000" maxThreads="1000" minSpareThreads="100" maxSpareThreads="300"  acceptCount="100" 
                   redirectPort="8443" URIEncoding="GBK"  useBodyEncodingForURI="true"  />

    因为大多数时候JSP程序都是部署在linux下,没有想到windows下会有这么多问题,以上是经过测试后的时候,网站在高访问量下没有再出问题。另外经过测试在windows服务器下,使用apache+tomcat集成的方法也不好。对于并发的连接数支持还不如纯tomcat。

    本文摘抄:http://www.myexception.cn/windows/1906152.html

     
     
     
  • 相关阅读:
    js入门简单介绍
    HTML中input参数,多行文本textarea说明,以及获取和设置的方法
    css属性相对定位,绝对定位,固定定位
    Django框架(二十七)—— ContentType组件
    Django框架(二十八)—— Django缓存机制
    Django框架(二十五)—— Django rest_framework-路由控制与响应器
    Django框架(二十六)—— Django rest_framework-分页器与版本控制
    Django框架(二十三)—— Django rest_framework-解析器
    Django框架(二十四)—— Django rest_framework-视图组件
    Django框架(二十二)—— Django rest_framework-频率组件
  • 原文地址:https://www.cnblogs.com/ckxlovejava/p/8086190.html
Copyright © 2011-2022 走看看