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

[经验分享] Tomcat的APR配置

[复制链接]

尚未签到

发表于 2017-1-20 08:27:50 | 显示全部楼层 |阅读模式
Tomcat可以使用APR来提供超强的可伸缩性和性能,更好地集成本地服务器技术。APR(Apache Portable Runtime)是一个高可移植库,它是Apache HTTP Server 2.x的核心。APR有很多用途,包括访问高级IO功能(例如sendfile,epollOpenSSL)OS级别功能(随机数生成,系统状态等等),本地进程管理(共享内存,NT管道和UNIX sockets)。这些功能可以使Tomcat作为一个通常的前台WEB服务器,能更好地和其它本地web技术集成,总体上让Java更有效率作为一个高性能web服务器平台而不是简单作为后台容器。
  在产品环境中,特别是直接使用TomcatWEB服务器的时候,您应该使用Tomcat Native来提高其性能,详细配置和安装请参考Tomcat文档。
 
我在开发环境测试,对于没用配置APRtomcat,处理大小为217kb的文件的响应时间一般在10秒以上(第一次访问,状态值为200的),处理大小为50kb的图片时的响应时间大都在5秒左右;对于配置了APRtomcat。处理这两个文件的响应时间都在1毫秒左右,相差甚远啊!
测试jquery-1.3.2.min.js,大小56K,未配置APR前的初次访问响应时间在5秒以上,配置APR后的初次访问响应时间降到了1毫秒左右,大部分在1毫秒以下,极少出现20毫秒。
 
上面说的是在未加压力测试的情况下,如果执行压力测试,响应时间相差更远,50kb的图片在未配置APR时的响应时间会升高到20秒以上,而加上APR配置之后响应时间几乎都还在1毫秒一下。
 
可见APRtomcat处理静态文件能力会有很大提高!
如果没有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-develapr还是下载*.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.       tar zxvf apr-1.3.2.tar.gz
  2.       cd apr-1.3.2 
  3.       ./configure 
  4.       make 
  5.       make install 
 
apr 默认安装在 /usr/local/apr
 
安装 apr-util
  1.       tar zxvf apr-util-1.3.2.tar.gz
  2.       cd apr-util-1.3.2 
  3.       ./configure --with-apr=/usr/local/apr 
  4.       make 
  5.       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
 
设置 apr 的环境变量:
  1.       vi /etc/profile
  2.       添加以下内容 
APR_HOME=/usr/local/apr/
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$APR_HOME/lib
Export  LD_LIBRARY_PATH
  3.       使配置生效source /etc/profile 
 
为不影响其他tomcat的配置,我们不采用上面的设置方法,而是直接在tomcatbin下的catalina.sh中加入如下配置:
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
export LD_LIBRARY_PATH
 
 
 
启动 tomcat 后, 看日志,有如下一行:
信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
 
 
javaeye给的一个普通的配置
 <Connector port="8080" maxHttpHeaderSize="8192" useBodyEncodingForURI="true"  
               maxThreads="1000" minSpareThreads="25" maxSpareThreads="75"  
               enableLookups="false" redirectPort="8443" acceptCount="100"  
               compression="on" compressionMinSize="2048"   
  compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"  
               connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/> 
 
 
增大tomcat内存:
JAVA_OPTS="-server -Xms800m -Xmx800m   -XX:MaxNewSize=256m"

运维网声明 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-330899-1-1.html 上篇帖子: tomcat HTTPS安全连接配置 下篇帖子: 修改Tomcat默认主页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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