我们优化tomcat的目的是提高并发性,即在多线程环境下能够快速响应,提高吞吐量。
首先在tomcat的bin目录下新建一个名为 setenv.sh
的文件,tomcat启动时会自动加载该文件。
1 |
[root@localhost bin] |
加入tomcat基础配置
1 |
#!/usr/bin |
JAVA_OPTS
加入如下配置,我们服务器的内存是1G。这里我设置最大占用768
1 |
export JAVA_OPTS="$JAVA_OPTS |
- -server:表示这是应用于服务器的配置,JVM 内部会有特殊处理的
- -Xms768m:设置JVM最大可用内存为768MB
- -Xmx768m:设置JVM最小内存为768MB。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。
- -Dfile.encoding:默认文件编码
- -Djava.net.preferIPv4Stack:使用IPV4
- -Djava.security.egd:详细解释
优化server.xml
1 |
<Connector port="8080" |
maxThreads 连接数限制
maxThreads 是 Tomcat 所能接受最大连接数。一般设置不要超过8000以上,如果你的网站访问量非常大可能使用运行多个Tomcat实例的方法。
安装apr
安装依赖
1 |
[root@localhost ~]# yum install -y openssl-devel |
下载apr相关包
1 |
[root@localhost ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.5.2.tar.gz |
配置tomcat
1 |
[root@localhost apr-iconv-1.2.1]# cd /usr/local/tomcat8/bin/ |
这是提示我
1 |
configure: error: Your version of OpenSSL is not compatible with this version of tcnative |
由于centos 当前的yum 库只有1.0.1 的OpenSSL,所以我们需要手工安装1.0.2
1 |
[root@localhost ~]# wget https://www.openssl.org/source/openssl-1.0.2-latest.tar.gz |
注意这里需要加入 -fPIC参数,否则后面在安装tomcat native 组件会出错
注意:不要按照提示去运行 make depend
1 |
[root@localhost openssl-1.0.2h]# make |
重新安装 tomcat-native组件
1 |
[root@localhost openssl-1.0.2h]# cd /usr/local/tomcat8/bin/tomcat-native-1.2.8-src/native/ |
在 setenv.sh
文件中添加
1 |
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib |
在 server.xml
中加
1 |
<Connector port="8080" |
启动tomcat,打开控制台日志可以看到如图所示的日志