zoukankan      html  css  js  c++  java
  • 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生效

  • 相关阅读:
    golang包引用解析
    解决vs code中golang插件依赖安装失败问题
    设计模式之策略模式
    设计模式之模板方法
    设计模式——面向对象设计原则
    设计模式——个人浅谈
    Sublime Text3配置Lua运行环境
    Ntrip协议使用流程及服务器实现架构
    python3解析库lxml
    python3爬虫之Urllib库(二)
  • 原文地址:https://www.cnblogs.com/sddychj/p/6600660.html
Copyright © 2011-2022 走看看