背景

前面也提过了,这次是在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生效

tomcat apr的更多相关文章

  1. Linux下配置tomcat+apr+native应对高并发

    摘要:在慢速网络上Tomcat线程数开到300以上的水平,不配APR,基本上300个线程狠快就会用满,以后的请求就只好等待.但是配上APR之后,Tomcat将以JNI的形式调用Apache HTTP服 ...

  2. (转)Linux下配置tomcat+apr+native应对高并发

    摘要:在慢速网络上Tomcat线程数开到300以上的水平,不配APR,基本上300个线程狠快就会用满,以后的请求就只好等待.但是配上APR之后,Tomcat将以JNI的形式调用Apache HTTP服 ...

  3. springboot使用tomcat apr模式

    因需项目对并发要求比较高.提高Tomcat效率.使用tomcat apr模式.今天在这记录下使用过程.apr全称为apache portable runtime.这里套用下wiki对apr的解释. T ...

  4. Tomcat APR & Linux Optimization

    一.简介 APR(Apache portable Run-time libraries)模式:简单理解,就是从操作系统级别解决异步IO问题,大幅度的提高服务器的处理和响应性能, 也是Tomcat运行高 ...

  5. java+tomcat(apr,native)

    #pdd 2014_12-24#安装java环境rpm -ivh jdk-7u72-linux-x64.rpm vim /etc/profile #set for java export JAVA_H ...

  6. tomcat apr 部署

    背景 这还是为了高并发的事,网上说的天花乱坠的,加了apr怎么怎么好,我加了,扯淡.就是吹牛用.我还是认为,性能问题要考设计逻辑和代码解决,这些都是锦上添花的. 步骤 1 windows 部署简单,虽 ...

  7. windows Tomcat apr安装

    背景 这都是当时不了解这个东西,又怕忘了记下来的,其实试验后.也就那么回事. 转载 Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO ...

  8. 配置Tomcat apr运行模式

    tomcat中一共有三种运行模式,分别是:bio,nio,apr bio是阻塞式IO操作,使用的是传统的java i/o处理方式,对于每一个请求都要创建一个线程来进行处理,所以开销较大不适合处理高并发 ...

  9. tomcat APR的配置

    Tomcat 可以使用 APR 来提供超强的可伸缩性和性能,更好地集成本地服务器技术. APR(Apache Portable Runtime) 是一个高可移植库,它是 Apache HTTP Ser ...

随机推荐

  1. VirtualBox中slitaz系统不能联网

    首先,关于VirtualBox虚拟机中安装slitaz操作系统中,先不讲,现在假设电脑中已经装好了VirtualBox,并且已经装好了slitaz操作系统,一个轻量版的linux发行版本. 右上角我画 ...

  2. Android -- 面试 -- 数据库升级策略

    升级:重写onUpgrade方法 确定 相邻版本 的差别,从版本1开始依次迭代更新,先执行v1到v2,再v2到v3…… 为 每个版本 确定与现在数据库的差别,为每个case撰写专门的升级代码. 降级 ...

  3. jar包注册为Linux服务

    如果是SpringBoot项目,则需修改配置pom.xml为: <build> <plugins> <plugin> <groupId>org.spri ...

  4. xor定理证明

    xor 证明: 0 xor 0=0 0 xor 1=1 1 xor 0=1 1 xor 1=0 0 xor 其它数,数值不会改变1 xor 其它数,数值会反转 所以x个数0和y个数1进行xor运算(0 ...

  5. Java使用SFTP和FTP两种连接方式实现对服务器的上传下载 【我改】

    []如何区分是需要使用SFTP还是FTP? []我觉得: 1.看是否已知私钥. SFTP 和 FTP 最主要的区别就是 SFTP 有私钥,也就是在创建连接对象时,SFTP 除了用户名和密码外还需要知道 ...

  6. Saltstack windows可视化操作(十四)

    在windows下通过Salt-Minion-xxxx.xx.x-AMD64-Setup.exe安装salt-minion的时候,默认是安装并开机启动salt-minion服务.但是如果以服务的方式启 ...

  7. ARP协议原理学习

    一.ARP的作用. 首先在window 的命令行中输入arp -a即可查看本机的arp缓存表.主机要发送数据包时,需要填充目的IP及其IP地址对应的MAC.当我们只有目的IP地址时,如何得到其对应的M ...

  8. Telnet的三种登录方式

    Telnet的三种登录方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.华为创建telnet的三种验证方式 首先,我们可以简单的看一个拓扑图,让我们可以在亦庄的路由器上对双桥 ...

  9. Ansible拷贝文件遇到的问题

    ansible报错Aborting, target uses selinux but python bindings (libselinux-python) aren't installed 报错内容 ...

  10. sublime 成对括号高亮显示设置

    ctrl+shift+p/pcip(Package Control : Install Package)/ BracketHighlighter(括号高亮插件)