当前位置: 首页 > Java > 正文

Tomcat性能提升3倍不是梦

1 星2 星3 星4 星5 星 (3 次投票, 评分: 5.00, 总分: 5)
Loading ... Loading ...
baidu_share

一直以来我们使用的Tomcat,你是否怀疑过它的性能呢。今天就来介绍一个简单提升Tomcat性能的方法,绝对是你居家旅行、杀人越货的必备佳品。

本着有图有真相的原则,我们先上性能测试报告,最后再讲解安装及配置方法。3倍的性能提升这绝对不是我在标题党。

测试环境
CPU:cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c –>4 Intel(R) Xeon(R) CPU E5-2407 0 @ 2.20GHz
内存:4G
APR-NIO:Tomcat 7.0.42+apr-1.4.8+apr-iconv-1.2.1+apr-util-1.5.2+tomcat-native-1.1.27
BIO:Tomcat 7.0.42(原生的Tomcat没啥好说的了)

说明:
1.其中X轴的10*10表示,并发10个线程,每个线程重复执行10次(对应AB中的参数为:-n 100 -c 10)
2.为了不影响性能,关闭Session连接
3.因为时间有限,每个数据只测试一次
4.为提高测试准确性,采用二台完全相同的服务器做单独测试(有服务器可用就是好 ),每次测试完重启Tomcat释放内存
5.测试页面为随机生成一年的降水量和蒸发量(数据是随机生成的,表当真)。其中页面大小为10K,引用的JS文件大小为270K
下面是测试页面截图:
tomcat
测试报告
Case-1:Request Per Second对比测试(Y轴值越大越好)
tomcat2
Case-2:Time Per Request对比测试(Y轴值越小越好)
tomcat3

Case-3:一点疑惑
测试过程中APR-NIO Tomcat服务器的load average最高为4.45;而BIO Tomcat服务器的load average最高为1.60
按道理说NIO采用的是多路复用技术,开的线程应该远远少于BIO的场景,但是load average的情况为什么会相反呢?

测试结果是不是很心动?下面介绍下安装方法。

安装步骤
1.安装Tomcat-Apr
下载地址:http://apr.apache.org/

  tar -xzvf apr-1.4.8.tar.gz
  cd apr-1.4.8
  ./configure
  make
  make install

说明:下面的安装都使用默认目录了,避免后面配置出现不必要的麻烦
2.安装Apr-iconv
下载地址:http://apr.apache.org/ ;

  tar -xzvf apr-iconv-1.2.1.tar.gz
  cd apr-iconv-1.2.1
  ./configure --with-apr=/usr/local/apr
  make
  make install

3.安装Apr-util
下载地址:http://apr.apache.org/;

  tar -zxvf apr-util-1.5.2.tar.gz
  cd apr-util-1.5.2
  ./configure --with-apr=/usr/local/apr
  make
  make install

4.安装Tomcat-native
下载地址:http://tomcat.apache.org/download-native.cgi ;

  tar -xzvf tomcat-native-1.1.27-src.tar.gz
  cd tomcat-native-1.1.27-src/jni/native/
  ./configure --with-apr=/usr/local/apr --with-java-home=/usr/java/jdk1.7.0_25/
  make
  make install

以上安装工作完成,下面记录下我遇到几个问题

1.此时启动Tomcat如果以下错误:

INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib

请加入下面的环境变量:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
source /etc/profile

2.如果启动Tomcat如果以下错误:

SEVERE: Failed to initialize the SSLEngine.
org.apache.tomcat.jni.Error: 70023: This function has not been implemented on this platform

请关闭SSL侦听,除非你有使用SSL

<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="off" />

经过跋山涉水,当启动Tomcat的时候看到如下信息。那么恭喜你成功了!
tomcat4

本文固定链接: http://www.chepoo.com/tomcat-performance-three-times-is-not-a-dream.html | IT技术精华网

Tomcat性能提升3倍不是梦:目前有3 条留言

  1. 地板
    :

    这个测试生成的图表是用什么工具

    [回复]
  2. 板凳
    :

    Echart

    [回复]
  3. 沙发
    :

    是不是还需要在server.xml指定connector

    [回复]

发表评论