zoukankan      html  css  js  c++  java
  • tomcat,线程调度优化

    3种关系线程模型:http://itindex.net/detail/50701-tomcat-bio-nio

    BIO:同步堵塞

    NIO:异步堵塞 拿号等着

    AIO:类似点餐系统,异步非堵塞

    aio说明

    要测APR给tomcat带来的好处最好的方法是在慢速网络上(模拟Internet),将Tomcat线程数开到300以上的水平,
    然后模拟一大堆并发请求。如果不配APR,基本上300个线程狠快就会用满,以后的请求就只好等待。
    但是配上APR之后,并发的线程数量明显下降,从原来的300可能会马上下降到只有几十,新的请求会毫无阻塞的进来。
    APR对于Tomcat最大的作用就是socket调度。
    你在局域网环境测,就算是400个并发,也是一瞬间就处理/传输完毕,
    但是在真实的Internet环境下,页面处理时间只占0.1%都不到,绝大部分时间都用来页面传输。
    如果不用APR,一个线程同一时间只能处理一个用户,势必会造成阻塞。所以生产环境下用apr是非常必要的。

    http://apr.apache.org/download.cgi

    http://www.itnpc.com/news/web/146319508766675.html


    http://tomcat.apache.org/download-native.cgi 下载

    aio安装步骤

    1)安装apr 
    tar zxvf apr-1.5.2.tar.gz
    cd /root/soft/apr-1.5.2 
    ./configure --prefix=/usr/local/apr 
    make && make install

    2)安装apr-iconv 
    tar -zxvf apr-iconv-1.2.1.tar.gz 
    cd /root/soft/apr-iconv-1.2.1
    ./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr 
    make && make install

    3)安装apr-util 
    tar zxvf apr-util-1.5.4.tar.gz
    cd /root/soft/apr-util-1.5.4 
    ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr --with-apr-iconv=/usr/local/apr-iconv/bin/apriconv 
    make && make install

    4)安装tomcat-native 
    cd /root/soft/apache-tomcat-7.0.69/bin
    tar zxvf tomcat-native.tar.gz 
    cd /root/soft/apache-tomcat-7.0.69/bin/tomcat-native-1.1.33-src/jni/native 
    ./configure --with-apr=/usr/local/apr --with-java-home=/root/soft/jdk1.8.0_101/
    make && make install

    5)添加环境变量 
    vim /etc/profile #在他文件末尾处添加下面的变量 
    # apr ma
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
    执行 
    source /etc/profile 
    此时环境变量生效果

    6)修改server.xml
    配置文件中protocol修改成org.apache.coyote.http11.Http11AprProtocol

    // Tomcat的四种基于HTTP协议的Connector性能比较
    // 按照顺序命名为 NIO, HTTP, POOL, NIOP
    <Connector port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol"                           connectionTimeout="20000" redirectPort="8443"/>
    <Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000"
                   redirectPort="8443"/>
    <Connector executor="tomcatThreadPool"
                   port="8081" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />
    <Connector executor="tomcatThreadPool"
                   port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol"
                   connectionTimeout="20000"
                   redirectPort="8443" />
    

      

    7)重新启动tomcat

     结论:500并发压测,aio和nio性能比对

    nio

    aio

      

     

  • 相关阅读:
    把CentOS改成中文
    String,StringBuffer,StringBuilder三者性能对比
    在Linux上部署安装C/C++开发环境
    Kali Linux安装ssh服务
    Kali VirtualBox安装增强功能
    CentOS安装docker
    CentOS安装jdk11
    Java基本数据类型
    奥卡姆剃刀定律在Java代码中的体现——记一次LeetCode刷题心得
    Java 实现简易登录注册功能
  • 原文地址:https://www.cnblogs.com/Alexr/p/13681625.html
Copyright © 2011-2022 走看看