• Tomcat7性能调优


    1.1 tomcat的三种运行模式:

      ●BIO:一个请求处理一个线程。并发量高时,线程数较多,浪费资源。Tomcat7默认使用这种方式。
      ●NIO:利用Java的非阻塞IO处理,通过线程池处理大量的请求。 Tomcat8默认采用这种方式。
      ●APR:从操作系统层面解决io阻塞问题,性能最高。Tomcat7或Tomcat8在Win7或以上的系统中启动默认使用这种方式;Linux如果安装了apr和native,Tomcat直接启动就支持apr。(安装方法:http://www.cnblogs.com/nb-blog/p/5278502.html)

    1.2 三种运行模式性能对比:

      

     1.3 NIO性能调优:

    1.3.1 在conf/tomcat-users.xml文件末尾添加用户,账号密码都叫tomcat

    <role rolename="manager"/>
    <role rolename="manager-gui"/>
    <role rolename="admin"/>
    <role rolename="admin-gui"/>
    <user username="tomcat" password="tomcat" roles="admin-gui,admin,manager-gui,manager"/>

    1.3.2 进入管理页面,可以看到tomcat7默认是bio运行模式

      

    1.3.3 编辑conf/server.xml,将protocol="HTTP/1.1"修改为org.apache.coyote.http11.Http11NioProtocol

      

    1.3.4 设置tomcat线程池

      

    1.3.5.1 优化线程池参数并指定线程池

      

    1.3.5.2 上面我们就已经配置好了nio模型,下面可以通过自定义属性来优化它

      

    【连接池参数】
    maxThreads :   最大连接
    minSpareThreads : 最小连接
    maxQueueSize : 连接超时时间单位毫秒
    prestartminSpareThreads :是否在启动时就生成minSpareThreads个线程
    threadPriority : 执行程序中线程的线程优先级默认为5(线程的值)
    daemon : 是否为守护线程 默认为true
    namePrefix : 线程的名称前缀。单个线程的线程名将是namePrefix+threadNumber
    maxIdleTime : 空闲线程等待时间单位毫秒
    threadRenewalDelay : 重建线程的时间间隔; 为了避免线程同时重建,默认每隔1000ms重建一个线程,设置为负则不重建

    【连接器参数 connector】
    SSLEnabled : 如果要打开SSL握手/加密/解密,请设置true。默认值是false。
    maxPostSize : 上传文件最大大小, 默认是2mb
    URIEncoding : 指定字符编码 能解决get请求乱码问题,默认ISO-8859-1。
    acceptCount : 当所有处理线程都在使用时,新的请求会排队,默认超过100会拒绝。
    acceptorThreadCount :用于接受连接的线程的数量。在一个服务器上一般为1不可能超过2,默认值是 1。
    maxConnections :最大并发量,超过这个范围服务器就不再接收请求。NIO的默认值是10000。APR /native的默认值是8192。如果设置的值-1,maxConnections功能被禁用

    1.3.6 上面就已经将nio优化配置完了,我们一般是使用Nginx+tomcat的架构,所以用不着AJP协议,我们还可以禁用AJP连接器来继续优化。

      

    1.3.7 重启测试:可以看到最大连接是500,默认连接为5,并且是nio运行模式。

      

  • 相关阅读:
    第四十七讲 ASP.NET实例编程(六)
    第四十四讲 ASP.NET实例编程(三)
    第四十一讲 ASP.NET消息处理(二)
    第四十三讲 ASP.NET实例编程(二)
    第四十二讲 ASP.NET实例编程(一)
    第四十六讲 ASP.NET实例编程(五)
    第四十八讲 ASP.NET实战编程(一)
    第四十讲 ASP.NET消息处理(一)
    第四十五讲 ASP.NET实例编程(四)
    第三十九 ASP.NET编码
  • 原文地址:https://www.cnblogs.com/wlwl/p/9969090.html
Copyright © 2020-2023  润新知