tomcat apr

背景

前面也提过了,这次是在linux下的实验。不要信广告,要看疗效。其实起不了都大作用。

转载

开始安装~
    1)安装apr 
    tar zxvf apr-1.4.2.tar 
    cd apr-1.4.2 
    ./configure --prefix=/usr/local/apr 
    make 
    make install 

    2)安装apr-iconv 
    tar -zxvf apr-iconv-1.2.1.tar.gz 
    cd 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.3.10.tar.gz 
    cd apr-util-1.3.10 
    ./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 
    tar zxvf tomcat-native-1.1.20-src.tar.gz 
    cd tomcat-native-1.1.20-src/jni/native   
    ./configure --with-apr=/usr/local/apr --with-java-home=/usr/java/jdk1.6.0_23 
    make 
    make install 

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

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

    重启Tomcat,看到
    Aug 29, 2010 3:47:32 PM org.apache.catalina.core.AprLifecycleListener init 
    INFO: Loaded APR based Apache Tomcat Native library 1.1.20. 
    即可,在最后的端口信息方面也可以看到http-apr-8080

    PS:可能会出现SSL的错误,这个是加密连接的配置,如果tomcat处理的业务没有使用SSL(利用Https来连接)的话,设置
    

    效果:
    对于这几种模式,我用ab命令模拟1000并发测试10000次,测试结果比较意外,为了确认结果,我每种方式反复测试了10多次,并且在两个服务器上都测试了一遍。结果发现Bio和Nio性能差别不大。但是采用apr,连接建立的速度会有50%~100%的提升。
    业务上的话,tomcat的数量减少了40%

    再PS:由于我们采用了linux服务器,所以优化内核参数也是一个非常重要的工作。给一个参考的优化参数:

    修改/etc/sysctl.cnf文件,在最后追加如下内容:

 

 

  1. net.core.netdev_max_backlog = 32768 
  2. net.core.somaxconn = 32768 
  3. net.core.wmem_default = 8388608 
  4. net.core.rmem_default = 8388608 
  5. net.core.rmem_max = 16777216 
  6. net.core.wmem_max = 16777216 
  7. net.ipv4.ip_local_port_range = 1024 65000 
  8. net.ipv4.route.gc_timeout = 100 
  9. net.ipv4.tcp_fin_timeout = 30 
  10. net.ipv4.tcp_keepalive_time = 1200 
  11. net.ipv4.tcp_timestamps = 0 
  12. net.ipv4.tcp_synack_retries = 2 
  13. net.ipv4.tcp_syn_retries = 2 
  14. net.ipv4.tcp_tw_recycle = 1 
  15. net.ipv4.tcp_tw_reuse = 1 
  16. net.ipv4.tcp_mem = 94500000 915000000 927000000 
  17. net.ipv4.tcp_max_orphans = 3276800 
  18. net.ipv4.tcp_max_syn_backlog = 65536 

 

 

    保存退出,执行sysctl -p生效

posted @ 2017-03-22 16:35  update_  阅读(220)  评论(0编辑  收藏  举报