1. 提高java虚拟机的堆栈内存
Tomcat运行在JVM之上,Tomcat默认可以使用的内存为128MB,这在生产环境中是不够的。更改bin\catalina.sh,在文件开头添加:
JAVA_OPTS="$JAVA_OPTS -Xms2G -Xmx2G"
-Xms:指定初始化时的内存大小。
-Xmx:指定最大内存。
两个值设成一样大,避免分配内存。
2. 线程池设置
编辑conf/server.xml
<Connector port="8080" protocol="HTTP/1.1"
...
maxThreads="300"
...
/>
和线程池相关的几个属性:
maxThreads:
Tomcat可创建的最大的线程数,也就是最大并发数。默认值200,并非越大越好,一般设置不应超过500
acceptCount:
当所有可用的线程数都被使用时,可以放到等待队列中的请求数,超过这个数的请求将被拒绝。
connnectionTimeout:
网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为20000毫秒。
minSpareThreads:
最小空闲线程数
maxSpareThreads:
最大空闲线程数
3. 禁用DNS查询
<Connector port="8080" protocol="HTTP/1.1"
...
enableLookups="false"
...
/>
4. 使用APR
下载 apr-1.4.5.tar.gz 和 apr-util-1.3.12.tar.gz。http://apr.apache.org/download.cgi
tomcat-native.tar.gz 可以在tomcat安装目录/bin下找到
4.1 需要先装gcc
yum -y install gcc
4.2 安装APR:
**************************
* 安装apr
**************************
tar zxvf apr-1.4.5.tar.gz
cd apr-1.4.5
./configure
make
sudo make install
默认安装路径在/usr/local/apr下
**************************
* 安装apr-util
**************************
tar zxvf apr-util-1.5.1.tar.gz
cd apr-util-1.5.1
./configure --with-apr=/usr/local/apr
make
sudo make install
**************************
* 安装tomcat-native
**************************
tar zxvf tomcat-native.tar.gz
cd tomcat-native-1.1.31-src/jni/native
./configure --with-apr=/usr/local/apr --with-java-home=/usr/local/jdk1.7.0_67
make
sudo make install
4.3 设置 apr 的环境变量
编辑/etc/profile,添加:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
运行命令使设置生效:source /etc/profile
修改tomcat安装目录/bin/catalina.sh
JAVA_OPTS="... -Djava.library.path=/usr/local/apr/lib ..."
重启tomcat,查看日志里有如下信息:
INFO: Loaded APR based Apache Tomcat Native library 1.1.20
就表示成功了!