一、安装apr
1、安装apr-1.5.2.tar.gz
# cd /usr/local/src
# wget http://apache.fayea.com//apr/apr-1.6.5.tar.gz
# tar -xzvf apr-1.6.5.tar.gz
# cd apr-1.6.5
# ./configure --prefix=/usr/local/apr
# make
# make install
2、安装apr-util-1.5.4
# cd /usr/local/src
# wget http://mirrors.hust.edu.cn/apache//apr/apr-util-1.6.1.tar.gz
# tar -xzvf apr-util-1.6.1.tar.gz
# cd apr-util-1.6.1
# ./configure --with-apr=/usr/local/apr
# make
# make install
3、安装 tomcat-native组件
/usr/local/tomcat/bin
tar -xzvf tomcat-native.tar.gz
cd tomcat-native-1.2.7-src/native
./configure --with-apr=/usr/local/apr
//出现如下错误
//Found OPENSSL_VERSION_NUMBER 0x1000105f (OpenSSL 1.0.1e 11 Feb 2013)
//Require OPENSSL_VERSION_NUMBER 0x1000200f or greater (1.0.2)
//configure: error: Your version of OpenSSL is not compatible with this version of tcnative
4、安装OpenSSL 1.0.2
由于centos 7 当前的yum 库只有1.0.1 的OpenSSL,所以我们需要手工安装1.0.2
# cd /usr/local/src
# wget https://www.openssl.org/source/openssl-1.0.2-latest.tar.gz
# tar -xzxf openssl-1.0.2-latest.tar.gz
# cd openssl-1.0.2g
# ./config --prefix=/usr/local/openssl -fPIC
// 注意这里需要加入 -fPIC参数,否则后面在安装tomcat native 组件会出错
// 注意:不要按照提示去运行 make depend
# make
# make install
# mv /usr/bin/openssl ~
# ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
# openssl version
5、重新安装 tomcat-native组件# cd $CATALINA_HOME/bin
# tar -xzvf tomcat-native.tar.gz
# cd tomcat-native-1.2.7-src/native
# ./configure --with-apr=/usr/local/apr --with-ssl=/usr/local/openssl
# make
# make install
6、检查是否安装成功//查看输入信息,如果有以下内容,说明安装成功
//20-Jun-2016 12:28:32.859 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based Apache Tomcat Native library 1.2.7 using APR version 1.5.2.
//20-Jun-2016 12:28:32.859 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
//20-Jun-2016 12:28:32.862 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized (OpenSSL 1.0.2g 1 Mar 2016)
二、tomcat 并发优化
# cd /usr/local/tomcat/conf
# vim server.xml
<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="100"
maxSpareThreads="1000"
minProcessors="100"
maxProcessors="1000"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="20000"
URIEncoding="utf-8"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>
<span style="color:#a31515"><strong>三、tomcat内存优化</strong></span>
Xms – 指定JVM初始化堆的大小
-Xmx – 指定JVM堆的最大值
这两个值的大小一般根据需要进行设置。初始化堆的大小执行了虚拟机在启动时向系统申请的内存的大小。一般而言,这个参数不重要。但是有的应用 程序在大负载的情况下会急剧地占用更多的内存,此时这个参数就是显得非常重要,如果虚拟机启动时设置使用的内存比较小而在这种情况下有许多对象进行初始 化,虚拟机就必须重复地增加内存来满足使用。由于这种原因,我们一般把-Xms和-Xmx设为一样大,而堆的最大值受限于系统使用的物理内存。一般使用数 据量较大的应用程序会使用持久对象,内存使用有可能迅速地增长。当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。因 此一般建议堆的最大值设置为可用内存的最大值的80%。
JAVA_OPTS参数说明
-server 启用jdk 的 server 版;
-Xms java虚拟机初始化时的最小内存;
-Xmx java虚拟机可使用的最大内存;
-XX: PermSize 内存永久保留区域
-XX:MaxPermSize 内存最大永久保留区域
服务器参数配置
# vim catalina.sh
JAVA_OPTS="-server -Xms2048m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxNewSize=512m"
配置完成后可重启Tomcat ,通过以下命令进行查看配置是否生效:
首先查看Tomcat 进程号:
sudo lsof -i:9027
我们可以看到Tomcat 进程号是 12222 。
查看是否配置生效:
sudo jmap – heap 12222
我们可以看到MaxHeapSize 等参数已经生效。