`

Apache2+Tomcat性能调整(一)

 
阅读更多

1、http://lamp.linux.gov.cn/Apache/ApacheMenu/misc/perf-tuning.html



2、Tomcat解析JSP文件,静态HTML文件、图片文件、大文件下载使用性能更好的Apache支持

   具体实施方案是,将现有Tomcat配置为8080端口,安装Apache服务器,配置为80端口,

在Apache中修改httpd.conf文件

启用proxy_module和proxy_http_module,修改的内容如下:

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_http_module modules/mod_proxy_http.so

然后在Apache的httpd.conf文件中增加如下几行:

ProxyPass /jsp/ http://localhost:8080/

ProxyPassReverse /jsp/ http://localhost:8080/



3、加大tomcat可以使用的内存 

     Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大。 

  Windows下,在文件{ tomcat_home }/bin/catalina.bat,

    Unix下,在文件{ tomcat_home }/bin/catalina.sh的前面,增加如下设置:

  JAVA_OPTS='-Xms【初始化内存大小】 -Xmx【可以使用的最大内存】'
  需要把这个两个参数值调大。例如:
  JAVA_OPTS='-Xms256m -Xmx512m'
  表示初始化内存为256MB,可以使用的最大内存为512MB。

    一般说来,应该使用物理内存的 80% 作为堆大小。


4、加大tomcat连接数 

   在tomcat配置文件server.xml中的<Connector ... />配置中,和连接数相关的参数有: 

     maxThreads Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。

     acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。

     connectionTimeout 网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为20000毫秒。

     minSpareThreads Tomcat初始化时创建的线程数。

     maxSpareThreads 一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。

     compression="on" 打开压缩功能

     compressionMinSize 启用压缩的输出内容大小,这里面默认为2KB 

     compressableMimeType压缩类型 



    修改后:

    <Connector port="8080" protocol="HTTP/1.1"   

                maxHttpHeaderSize="8192" useBodyEncodingForURI="true"  

                maxThreads="1000"

                redirectPort="8443"  

                enableLookups="false"  

                compression="on"   

                compressionMinSize="2048"  

                compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"   

                connectionTimeout="20000"  

                disableUploadTimeout="true"  

                />

5、使用APR使得Tomcat的性能提高 

   Windows下的安装配置 
   1)http://tomcat.heanet.ie/native/
下载编译好的 tcnative-1.dll 文件,也可以下载tomcat-native.zip自己进行编译 
   2)
tcnative-1.dll文件放在Tomcatbin目录下.


    Tomcat可以使用APR来提供超强的可伸缩性和性能,更好地集成本地服务器技术。APR(Apache Portable Runtime)是一个高可移植库,它是Apache HTTP Server 2.x的核心。APR有很多用途,包括访问高级IO功能(例如sendfile,epoll和OpenSSL),OS级别功能(随机数生成,系统状态等 等),本地进程管理(共享内存,NT管道和UNIX sockets)。这些功能可以使Tomcat作为一个通常的前台WEB服务器,能更好地和其它本地web技术集成,总体上让Java更有效率作为一个高 性能web服务器平台而不是简单作为后台容器。

  在产品环境中,特别是直接使用Tomcat做WEB服务器的时候,您应该使用Tomcat Native来提高其性能,详细配置和安装请参考Tomcat文档。

如果没有apr技术,启动tomcat 时出现如下提示:

信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/jdk1.6.0_06/jre/lib/i386/client:/usr/java/jdk1.6.0_06/jre/lib/i386:/usr/java/jdk1.6.0_06/jre/../lib/i386:/usr/java/packages/lib/i386:/lib:/usr/lib

按照官方说明需要:

  • APR library
  • OpenSSL libraries

openssl 可以用 yum install openssl-devel,apr还是下载*.gz来安装。
apr-1.3.2.tar.gz
apr-util-1.3.2.tar.gz
两个可以在 http://apache.mirror.phpchina.com/apr/  找到。
tomcat-native.tar.gz 可以在tomcat/bin目录下找到。

安装 apr

  1. # wget http://apache.mirror.phpchina.com/apr/apr-1.3.2.tar.gz  
  2. # tar zxvf apr-1.3.2.tar.gz  
  3. # cd apr-1.3.2  
  4. # ./configure  
  5. # make  
  6. # make install  
File代码  收藏代码
  1. # wget http://apache.mirror.phpchina.com/apr/apr-1.3.2.tar.gz  
  2. # tar zxvf apr-1.3.2.tar.gz  
  3. # cd apr-1.3.2  
  4. # ./configure  
  5. # make  
  6. # make install  

apr 默认安装在 /usr/local/apr

安装 apr-util

  1. # wget http://apache.mirror.phpchina.com/apr/apr-util-1.3.2.tar.gz  
  2. # tar zxvf apr-util-1.3.2.tar.gz  
  3. # cd apr-util-1.3.2  
  4. # ./configure --with-apr=/usr/local/apr  
  5. # make  
  6. # make install  
File代码  收藏代码
  1. # wget http://apache.mirror.phpchina.com/apr/apr-util-1.3.2.tar.gz  
  2. # tar zxvf apr-util-1.3.2.tar.gz  
  3. # cd apr-util-1.3.2  
  4. # ./configure --with-apr=/usr/local/apr  
  5. # make  
  6. # make install  

安装 tomcat-native

  1. # cd /usr/local/tomcat-6.0.18/bin  
  2. # tar zxvf tomcat-native.tar.gz  
  3. # cd tomcat-native-1.1.14-src/jni/native  
  4. # ./configure --with-apr=/usr/local/apr --with-java-home=/usr/java/jdk1.6.0_11  
  5. # make  
  6. # make install  
File代码  收藏代码
  1. # cd /usr/local/tomcat-6.0.18/bin  
  2. # tar zxvf tomcat-native.tar.gz  
  3. # cd tomcat-native-1.1.14-src/jni/native  
  4. # ./configure --with-apr=/usr/local/apr --with-java-home=/usr/java/jdk1.6.0_11  
  5. # make  
  6. # make install  

设置 apr 的环境变量:

  1. # vi /etc/profile  
  2. // 后面添加以下内容  
  3. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib  
  4. //使profile生效,  
  5. # source /etc/profile  
File代码  收藏代码
  1. # vi /etc/profile  
  2. // 后面添加以下内容  
  3. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib  
  4. //使profile生效,  
  5. # source /etc/profile  

启动 tomcat 后, 看日志:

  1. # bin/startup.sh  
  2. # head logs/catalina.out  
  3.   
  4. // 可以看到以下结果:  
  5. 信息: Loaded APR based Apache Tomcat Native library 1.1.14.  
  6. 2009-1-13 11:12:51 org.apache.catalina.core.AprLifecycleListener init  
  7. 信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].  
File代码  收藏代码
  1. # bin/startup.sh  
  2. # head logs/catalina.out  
  3.   
  4. // 可以看到以下结果:  
  5. 信息: Loaded APR based Apache Tomcat Native library 1.1.14.  
  6. 2009-1-13 11:12:51 org.apache.catalina.core.AprLifecycleListener init  
  7. 信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].  

好了, 可以运行了,但没有测试其性能提升多少。

 

 

 

參考自:http://www.chinajvm.com/main/helpcontent.jsp?id=5320b71a1eb098e2011ee230a2311367

http://blog.chenlb.com/2009/01/install-apache-portable-runtime-or-tomcat-native-on-tomcat.html








 

分享到:
评论

相关推荐

    Tomcat性能调优指导手册.pdf

    Tomcat性能调优指导手册 1. 概述 3 2. Java虚拟机性能调优 3 2.1 catalina.sh 或 catalina.bat 3 2.2 winNT服务 3 3. 禁用DNS查询 4 4. 调整线程数(连接数) 4 5. 使用gzip传输 5 6. 负载均衡 5 6.1 实现负载均衡的...

    Tomcat性能优化配置方案

    1.操作系统调优; 2.Java虚拟机调优; 3.Apache集成Tomcat; 4.【适用场景】 大量使用静态页面的应用系统; 5.【适用场景】 并发用户量及在线使用用户数量比较高的系统

    Tomcat面试专题及答案.pdf

    tomcat 有哪几种 Connector 运行模式(优化)? bio:传统的 Java I/O 操作,同步且阻塞 IO。 maxThreads=”150”//Tomcat 使用线程来处理接收的每个请求。这个值表示 Tomcat 可创建的最大的线程数。默认值 200。可以...

    WIN2003下IIS6集成一个或多个Tomcat的方法

    需求:客户的服务器由我及他自己的技术人员维护,服务器上有多个WEB在运营,ASP、PHP、JAVA的混合着都有,原先的WEB架构是Nginx+Apache+IIS+X*Tomcat,但客户的技术人员时常要对一些小站点[ASP、PHP]进行调整,如增...

    Java数据库编程宝典2

    8.5 使用索引来提高SQL查询的性能 8.6 视图 8.7 小结 第9章 连接和组合查询 9.1 连接表 9.1.1 连接的类型 9.2 键 9.2.1 主键 9.2.2 外键 9.3 使用内连接 9.3.1 使用等连接 9.3.2 使用非等连接 9.4 ...

    Java数据库编程宝典4

    8.5 使用索引来提高SQL查询的性能 8.6 视图 8.7 小结 第9章 连接和组合查询 9.1 连接表 9.1.1 连接的类型 9.2 键 9.2.1 主键 9.2.2 外键 9.3 使用内连接 9.3.1 使用等连接 9.3.2 使用非等连接 9.4 ...

    Java数据库编程宝典1

    8.5 使用索引来提高SQL查询的性能 8.6 视图 8.7 小结 第9章 连接和组合查询 9.1 连接表 9.1.1 连接的类型 9.2 键 9.2.1 主键 9.2.2 外键 9.3 使用内连接 9.3.1 使用等连接 9.3.2 使用非等连接 9.4 ...

    Java数据库编程宝典3

    8.5 使用索引来提高SQL查询的性能 8.6 视图 8.7 小结 第9章 连接和组合查询 9.1 连接表 9.1.1 连接的类型 9.2 键 9.2.1 主键 9.2.2 外键 9.3 使用内连接 9.3.1 使用等连接 9.3.2 使用非等连接 9.4 ...

    java开源包2

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    性能调优文档_自动化测试

    该文档为在性能测试过程中对一些中间件的调优,如对tomcat的JVM、连接器、线程数等,中创中间件的JVM、连接数、日志级别调整,weblogic的JVM、关闭访问日志等。 同时包括数据库连接池的调优,Apache集群、oracle参数...

    java开源包1

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包11

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包3

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包6

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包5

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包10

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包4

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包8

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包7

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包9

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

Global site tag (gtag.js) - Google Analytics