tomcat 优化策略

jdk安装

su - root
mkdir jdk
cd jdk
wget https://mirror.its.sfu.ca/mirror/CentOS-Third-Party/NSG/common/x86_64/jdk-7u76-linux-x64.rpm
rpm -ivh jdk-7u76-linux-x64.rpm

环境变量

vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_76
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
. /etc/profile

tomcat下载

#建议用一般用户运行tomcat
wget http://www.apache.org/dist/tomcat/tomcat-7/v7.0.59/bin/apache-tomcat-7.0.59.tar.gz
tar xzf apache-tomcat-7.0.59.tar.gz
apache-tomcat-7.0.59/bin
chmod +x *.sh

tomcat隐藏版本号

cd apache-tomcat-7.0.59/lib
mkdir test
cd test
jar xf ../catalina.jar
vi org/apache/catalina/util/ServerInfo.properties
server.info=Tomcat
server.number=6
server.built=Jan 18 2013 14:51:10 UTC
jar cf ../catalina.jar ./*
rm -rf test

Tomcat jconsole监控远程jvm配置
参考:http://blog.linuxeye.com/262.html

Tomcat的三种模式及并发优化
Tomcat的运行模式有3种
1、bio
默认的模式,性能非常低下,没有经过任何优化处理和支持.

2、nio
利用java的异步io护理技术,noblocking IO技术.
想运行在该模式下,直接修改server.xml里的Connector节点,修改protocol为

<Connector port="80″
protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
URIEncoding=”UTF-8″
useBodyEncodingForURI="true"
enableLookups="false"
redirectPort="8443">

启动后,就可以生效。

3、apr
从操作系统级别来解决异步的IO问题,大幅度的提高性能。
必须要安装apr和native,直接启动就支持apr
修改protocol为org.apache.coyote.http11.Http11AprProtocol

安装apr

yum -y install apr apr-devel

安装native
进入tomcat/bin目录,比如:

cd /usr/local/tomcat/bin/
tar xzfv tomcat-native.tar.gz
cd tomcat-native-1.1.32-src/jni/native/
./configure --with-apr=/usr/bin/apr-1-config
make && make install

安装完成之后 会出现如下提示信息

Libraries have been installed in:
   /usr/local/apr/lib

安装成功后还需要对tomcat设置环境变量,方法是在catalina.sh文件中增加1行:

 CATALINA_OPTS="-Djava.library.path=/usr/local/apr/lib"

修改8080端对应的conf/server.xml

protocol="org.apache.coyote.http11.Http11AprProtocol"

启动tomcat之后,查看日志会有这一行信息,说明已经是APR模式启动了

INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].

并发优化
1.JVM调优
新增文件TOMCAT_HOME/bin/setenv.sh如下语句,具体数值视情况而定。

JAVA_OPTS="-Xms1024m -Xmx1024m -Xss1024K -XX:PermSize=64m -XX:MaxPermSize=128m"

参数详解

-Xms JVM初始化堆内存大小
-Xmx JVM堆的最大内存
-Xss 线程栈大小
-XX:PermSize JVM非堆区初始内存分配大小
-XX:MaxPermSize JVM非堆区最大内存

建议和注意事项:
-Xms和-Xmx选项设置为相同堆内存分配,以避免在每次GC 后调整堆的大小,堆内存建议占内存的60%~80%;非堆内存是不可回收内存,大小视项目而定;线程栈大小推荐256k.

32G内存配置如下:

JAVA_OPTS="-Xms20480m -Xmx20480m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=2048m"

2.关闭DNS反向查询
在<Connector port=”8080″ 中加入如下参数

enableLookups="false"

3.优化tomcat参数(使用APR)

<Listener className="org.apache.catalina.core.AprLifecycleListener" />
...
<Connector port="8080"
           protocol="org.apache.coyote.http11.Http11AprProtocol"
           connectionTimeout="20000" //链接超时时长
           redirectPort="8443"
           maxThreads="500"
           minSpareThreads="20"
           acceptCount="1000"
           enableLookups="false"
           URIEncoding="UTF-8" />

转载
时间: 2024-11-02 10:36:43

tomcat 优化策略的相关文章

Tomcat 优化和性能监测

1. JVM 优化(Tomcat 启动行参数) Linux 修改 catalin.sh Windows 修改 catalin.bat Linux系统中tomcat的启动参数 export JAVA_OPTS="-server -Xms1400M -Xmx1400M -Xss512k -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:PermSize=128M -XX:MaxPermSize=256M -XX:+DisableExplicitGC -XX:

Tomcat学习总结(3)——Tomcat优化详细教程

Tomcat是我们经常使用的 servlet容器之一,甚至很多线上产品都使用 Tomcat充当服务器.而且优化后的Tomcat性能提升显著,本文从以下几方面进行分析优化. 一.内存优化 默认情况下Tomcat的相关内存配置较低,这对于一些大型项目显然是不够用的,这些项目运行就已经耗费了大部分内存空间,何况大规模访问的情况.即使是本文中的这个只有一个页面的超小项目,在并发达到一定程度后也会抛出以下类似异常: Java代码   严重: Exception invoking periodic oper

Tomcat优化方案

Tomcat是我们经常使用的 servlet容器之一,甚至很多线上产品都使用 Tomcat充当服务器.而且优化后的Tomcat性能提升显著,本文从以下几方面进行分析优化. 一.内存优化 默认情况下Tomcat的相关内存配置较低,这对于一些大型项目显然是不够用的,这些项目运行就已经耗费了大部分内存空间,何况大规模访问的情况.即使是本文中的这个只有一个页面的超小项目,在并发达到一定程度后也会抛出以下类似异常: Java代码   严重: Exception invoking periodic oper

tomcat优化

Tomcat中的线程池(APR和ThreadPool) 2. 在Connector中指定使用共享线程池: <Connector executor="tomcatThreadPool"           port="8080" protocol="HTTP/1.1"               connectionTimeout="20000"               redirectPort="8443&

SEO链轮策略的优势,整体的SEO优化策略

SEO链轮策略的优势 从整体的SEO优化策略上来讲,seo链轮策略不仅仅可以很好的提升我们网站的权重,还能够帮助我们的网页加快收录速度,当搜索引擎蜘蛛爬进来的时候,利用SEO链轮策略可以很好的把蜘蛛给"团团围住"从而让蜘蛛更加广泛的抓取我们的网页.进而增加网站的收录数量以及访问数量. 理论上来讲,互联网上的每一个网站本来都是一个独立的网站,因为有了SEO链轮策略,因为有了友情链接,互联网上面的网站从此不再独立,从此让每一个网站紧密相联. 四:SEO链轮策略的缺点 虽然说SEO链轮策略在

.Net中的并行编程-6.常用优化策略

            本文是.Net中的并行编程第六篇,今天就介绍一些我在实际项目中的一些常用优化策略.      一.避免线程之间共享数据 避免线程之间共享数据主要是因为锁的问题,无论什么粒度的锁,最好的线程之间同步方式就是不加锁,这个地方主要措施就是找出数据之间的哪个地方需要共享数据和不需要共享数据的地方,再设计上避免多线程之间共享数据. 在以前做过的某项目,开始时设计的方案: 开始设计时所有的数据都放入到了公共队列,然后队列通知多个线程去处理数据,队列采用互斥锁保证线程同步,造成的结果就

Tomcat优化步骤【转】

一.Tomcat的缺省是多少,怎么修改 Tomcat的缺省端口号是8080.修改Tomcat端口号:1.找到Tomcat目录下的conf文件夹2.进入conf文件夹里面找到server.xml文件3.打开server.xml文件4.在server.xml文件里面找到下列信息maxThreads=”150″ minSpareThreads=”25″ maxSpareThreads=”75″enableLookups=”false” redirectPort=”8443″ acceptCount=”

常见性能优化策略的总结

本文是一位美团老师把之前所做的各种性能优化的案例和方案加以提炼.总结,以文档的形式沉淀下来,并在内部进行分享.力求达到如下效果: 形成可实践.可借鉴.可参考的各种性能优化的方案以及选型考虑点,同时配合具体的真实案例,其他人遇到相似问题时,不用从零开始: 有助于开阔视野,除了性能优化之外,也能提供通用的常见思路以及方案选型的考虑点,帮助大家培养在方案选型时的意识.思维以及做各种权衡的能力: 常见性能优化策略分类: 代码 之所以把代码放到第一位,是因为这一点最容易引起技术人员的忽视.很多技术人员拿到

常见性能优化策略的总结(转)

add by zhj: 我个人感觉性能优化分析影响性能的因素有哪些,然后按影响力的大小进行排序,然后进行排序. 然后进一步分析每个因素为何会影响性能,把这些因素再找出来,再按影响力大小进行排序.基本上,经过 这两层的分析,基本就够用了.对这些因素思考解决办法. 1. 数据库层 我们的目标是减少IO访问,或者将IO访问进行负载均衡,分配到多台服务器,并行计算. 1.1 数据库的数据存储在硬盘,硬盘访问速度比内存慢太多,即IO多 1.2 数据量大导致扫描记录多,间接导致IO多 1.3 所有数据库访问