设为首页 收藏本站
查看: 407|回复: 0

[经验分享] Apache2+Tomcat性能调整(一)

[复制链接]

尚未签到

发表于 2017-1-19 07:11:17 | 显示全部楼层 |阅读模式
  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

  • # wget http://apache.mirror.phpchina.com/apr/apr-1.3.2.tar.gz  
  • # tar zxvf apr-1.3.2.tar.gz  
  • # cd apr-1.3.2  
  • # ./configure  
  • # make  
  • # make install  

File代码   DSC0000.png


  • # wget http://apache.mirror.phpchina.com/apr/apr-1.3.2.tar.gz  
  • # tar zxvf apr-1.3.2.tar.gz  
  • # cd apr-1.3.2  
  • # ./configure  
  • # make  
  • # make install  

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

  • # wget http://apache.mirror.phpchina.com/apr/apr-util-1.3.2.tar.gz  
  • # tar zxvf apr-util-1.3.2.tar.gz  
  • # cd apr-util-1.3.2  
  • # ./configure --with-apr=/usr/local/apr  
  • # make  
  • # make install  

File代码  


  • # wget http://apache.mirror.phpchina.com/apr/apr-util-1.3.2.tar.gz  
  • # tar zxvf apr-util-1.3.2.tar.gz  
  • # cd apr-util-1.3.2  
  • # ./configure --with-apr=/usr/local/apr  
  • # make  
  • # make install  

安装 tomcat-native

  • # cd /usr/local/tomcat-6.0.18/bin  
  • # tar zxvf tomcat-native.tar.gz  
  • # cd tomcat-native-1.1.14-src/jni/native  
  • # ./configure --with-apr=/usr/local/apr --with-java-home=/usr/java/jdk1.6.0_11  
  • # make  
  • # make install  

File代码  


  • # cd /usr/local/tomcat-6.0.18/bin  
  • # tar zxvf tomcat-native.tar.gz  
  • # cd tomcat-native-1.1.14-src/jni/native  
  • # ./configure --with-apr=/usr/local/apr --with-java-home=/usr/java/jdk1.6.0_11  
  • # make  
  • # make install  

设置 apr 的环境变量:

  • # vi /etc/profile  
  • // 后面添加以下内容  
  • export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib  
  • //使profile生效,  
  • # source /etc/profile  

File代码  


  • # vi /etc/profile  
  • // 后面添加以下内容  
  • export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib  
  • //使profile生效,  
  • # source /etc/profile  

启动 tomcat 后, 看日志:

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

File代码  


  • # bin/startup.sh  
  • # head logs/catalina.out  
  •   
  • // 可以看到以下结果:  
  • 信息: Loaded APR based Apache Tomcat Native library 1.1.14.  
  • 2009-1-13 11:12:51 org.apache.catalina.core.AprLifecycleListener init  
  • 信息: 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


  

  

  









 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-330348-1-1.html 上篇帖子: Tomcat编译和调试 下篇帖子: Tomcat的四种部署方式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表