Linux下Tomcat调优实战
1.上传安装包
- yum install lrzsz -y
- rz 上传tomcat、jdk8包
2.安装jdk 1.8
- cd /usr
- mkdir java
-
解压
tar -zxvf jdk-8u144-linux-x64.tar.gz -C /usr/java/
- 配置jdk环境
- 编辑文件:vim /etc/profile
-
在文件尾部添加:
JAVA_HOME=/usr/java/jdk1.8.0_144
export PATH=$JAVA_HOME/bin:$PATH
-
重新加载一下文件:
source /etc/profile
-
查看jdk:
java -version
3.安装tomcat
-
解压
tar -zxvf apache-tomcat-7.0.57.tar.gz -C /usr/java/
-
启动tomcat
到tomcat的bin目录下执行: ./startup.sh
-
查看是否启动成功
登陆tomcat欢迎界面: http://host:port/,如:http://192.168.13.123:8080/
4.tomcat参数调优:
-
启动NIO模式
修改server.xml里的Connector节点,修改protocol为org.apache.coyote.http11.Http11NioProtocol
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" redirectPort="8443" />
-
线程池开启并使用
去掉注释,添加并调整参数:
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="800" minSpareThreads="100" maxQueueSize="100" prestartminSpareThreads="true"/>
- Connector节点中指定线程池,并调整参数
<Connector executor="tomcatThreadPool" port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" maxHttpHeaderSize="8192" maxThreads="1000" processorCache="1000" acceptCount="1000" minSpareThreads="100" acceptorThreadCount="8" URIEncoding="UTF-8" enableLookups="false" edirectPort="8443" connectionTimeout="120000" keepAliveTimeout="120000" maxKeepAliveRequests="65535" disableUploadTimeout="true" />
5.配置虚拟目录
- 先把war包放到tomcat的webapp下,然后启动,会在war包同级目录下获得同名文件夹
- 把该同名文件夹复制到/usr/java下,然后删除tomcat下webapp的war包和同名文件夹
-
配置虚拟目录
真实目录:/usr/java/myweb
虚拟目录:http://localhost:8080
虚拟目录映射:
docBase:代表的是应用的真实路径。
path:网络访问的虚拟目录名
- 启动tomcat
6.Jvm调优相关
- 修改文件:bin/catalina.sh
JAVA_OPTS="-Dfile.encoding=UTF-8 -server -Xms1024m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:NewRatio=2 -XX:MaxTenuringThreshold=50 -XX:+DisableExplicitGC"
-
jps -v
输出虚拟机进程启动时的JVM参数
-
jstat -gc 8331 250 20
监控Java堆状况;每250毫秒查询一次进程8331垃圾收集状况,一共查询20次
-
jstat -gcutil 8331
与-gc基本相同,但主要关注已使用空间占总空间的百分比
-
jmap -dump:format=b,file=xx.bin 8331
生成一个正在运行java的dump快照文件
- VisualVM性能分析