-----------------------------------------------------服务器优化-----------------------------------------------------------------------------------------------------------------------
Tomcat优化:
1.内存优化(JVM优化)
vi ./bin/catalina.sh --> JAVA_OPTS="-server -Xms2048M -Xmx2048M -XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$CATALINA_HOME/logs/heap.dump"
2.并发优化
${tomcat}/webapps/docs/config/http.html:查看参数--->maxConnectons:最大连接数;acceptCount:队列长度(达到最大连接数时,有新连接进来,则进入队列);maxThreads:工作线程(最大请求处理线程数);minSpareThreads:最小空闲的工作线程
压缩的参数不配置,配置在nginx中
3.其他优化
${tomcat}/webapps/docs/config/host.html:查看参数--->autoDeploy:Tomcat运行时定期检查
${tomcat}/webapps/docs/config/http.html:查看参数--->enableLookups:false
${tomcat}/webapps/docs/config/context.html:查看参数--->reloadable:false
禁用server.xml中AJP的connector
iptables -nL -->查看防火墙开启的端口
iptables -F -->关闭防火墙
kill -9 进程号-->杀死进程
ps -ef|grep java-->查询java进程
4.APR优化(适合大并发场景):http://apr.apache.org/ -->下载apr-1.6.3.tar.gz,apr-iconv-1.2.2.tar.gz,apr-util-1.6.1.tar.gz,openssl-1.0.1s.tar.gz
安装依赖库--->yum install apr* openssl-devel gcc make
a.安装apr-1.6.3.tar.gz
tar -zvxf apr-1.6.3.tar.gz
cd apr-1.6.3
./configure --prefix=/usr/local/apr
make
make install
b.安装apr-iconv-1.2.2.tar.gz
tar -zvxf apr-iconv-1.2.2.tar.gz
cd apr-iconv-1.2.2
./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr
make
make install
c.yum install expat-devel
d.安装apr-util-1.6.1.tar.gz
tar -zvxf apr-util-1.6.1.tar.gz
cd apr-util-1.6.1
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make
make install
e.安装openssl-1.0.1s.tar.gz
tar -zvxf openssl-1.0.1s.tar.gz
cd openssl-1.0.1s
./config --prefix=/usr/local/openssl
vi Makefile
将原来的CFLAG= -DOPENSSL_THREADS -->修改为 CFLAG= -fPIC -DOPENSSL_THREADS
make
make install
f.进入tomcat的bin目录
tar -zvxf tomcat-native.tar.gz
cd tomcat-native-1.2.17-src
cd native
./configure --with-apr=/usr/local/apr --with-ssl=/usr/local/openssl
make
make install
g.修改tomcat,使用apr
修改server.xml:
将<Connector port="8080" protocol="HTTP/1.1" ..../>修改为protocol="org.apache.coyote.http11.Http11AprProtocol"
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on">--->on修改为off
修改catalina.sh:
注意->开启apr之后,jvm用到的native内存会增大,因此要适当的调大Metaspace空间,添加jvm选项:--XX:MetaspaceSize=128m
修改为JAVA_OPTS="-server -Xms2048M -Xmx2048M --XX:MetaspaceSize=128M -XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$CATALINA_HOME/logs/heap.dump --Djava.library.path=/usr/local/apr/lib"