tomcat性能调优

安全优化

  1. 修改shutdown端口
  2. 注释8009端口,这个是Apache与tomcat通信端口,我们使用的是nginx+tomcat,注释这个端口可以提升性能
  3. 关闭管理端
mv /app/tomcat/webapps/ /app/

#修改server.xml
 
rm -rf /app/webapps/*
cd /app/webapps
mkdir ROOT
cd ROOT 
echo "tomcat ">index.jsp
  1. 降权启动(监牢模式),让服务通过普通用户运行、管理
chown -R tomcat:tomcat /app/*
#包括jdk的属主、属组也要有相应的权限,否则启动失败
vi /etc/rc.d/rc.local 开机自启动
su - tomcat -c /app/tomcat/bin/startup.sh
-c指定执行脚本
  1. 关闭文件列表访问控制(强制)
#在web.xml中默认就是关闭的
 
            listings
            false
        

  1. 版本信息影藏(强制)
#自定义404,500,403页面  web.xml中配置
	
                404 
                /error404.jsp 
        
        
                403 
                /forbiden.jsp 
        
        
                500 
                /500.jsp 
        


  1. server header重新(推荐)
    server=“nginx/1.16.10”
#在8080端口的地方配置一下

测试
tomcat性能调优_第1张图片
8. 启停脚本访问权限回收

chmod 700 /app/tomcat/bin/*.sh
  1. 关闭DNS反向查询
    enableLookups=“false”
      
  1. 访问日志格式规范化(推荐)
    在server.xml中的Host下
 

日志输出文件为、logs/localhost_access_log…2020-05-28.txt

192.168.43.242 - - [28/May/2020:17:48:02 +0800] GET / HTTP/1.1 200 7 6 JSESSIONID=3AADCA2365BE3E1C46FC2B5ADB951955 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 -
192.168.43.64 - - [28/May/2020:17:48:30 +0800] GET / HTTP/1.1 200 7 2 - curl/7.29.0 -
192.168.43.242 - - [28/May/2020:17:49:23 +0800] GET / HTTP/1.1 200 7 10 JSESSIONID=3AADCA2365BE3E1C46FC2B5ADB951955 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 -
192.168.43.242 - - [28/May/2020:17:49:24 +0800] GET / HTTP/1.1 200 7 4 JSESSIONID=3AADCA2365BE3E1C46FC2B5ADB951955 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 -
192.168.43.242 - - [28/May/2020:17:49:24 +0800] GET / HTTP/1.1 200 7 3 JSESSIONID=3AADCA2365BE3E1C46FC2B5ADB951955 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 -
192.168.43.242 - - [28/May/2020:17:49:37 +0800] GET / HTTP/1.1 200 7 13 JSESSIONID=3AADCA2365BE3E1C46FC2B5ADB951955 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 -
192.168.43.242 - - [28/May/2020:17:49:37 +0800] GET / HTTP/1.1 200 7 8 JSESSIONID=3AADCA2365BE3E1C46FC2B5ADB951955 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 -
192.168.43.242 - - [28/May/2020:17:49:37 +0800] GET / HTTP/1.1 200 7 2 JSESSIONID=3AADCA2365BE3E1C46FC2B5ADB951955 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 -
192.168.43.242 - - [28/May/2020:17:49:37 +0800] GET / HTTP/1.1 200 7 5 JSESSIONID=3AADCA2365BE3E1C46FC2B5ADB951955 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 -
192.168.43.242 - - [28/May/2020:17:55:07 +0800] GET / HTTP/1.1 200 7 6 JSESSIONID=3AADCA2365BE3E1C46FC2B5ADB951955 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 -
192.168.43.242 - - [28/May/2020:17:55:14 +0800] GET /hello HTTP/1.1 404 9 15 JSESSIONID=3AADCA2365BE3E1C46FC2B5ADB951955 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 

性能优化

  1. 注释AJP 8009端口
  2. 修改tomcat工作模式
    • bio (blocking io) 同步IO,阻塞IO,一个线程处理一个请求,效率低下
    • nio (new io) 异步IO,少量线程处理大量请求 【tomcat8默认的工作模式】
    • apr (apache portable runtime) 高并发应用场景,高并发首选
#nio2模式

#apr模式 

#yum -y install apr apr-devel
#tar -zxvf /app/tomcat/bin/tomcat-native.tar.gz -C /app/
#mv tomcat-native-1.2.18-src tomcat-native
#cd tomcat-native/native
#./configure && make && make install

#cat >> /etc/profile<

tomcat性能调优_第2张图片
tomcat性能调优_第3张图片
3. 参数调优

maxthreads如何配置

  • 包括量方面:1计算(CPU) 2 等待(IO/数据库)
  • 第一种极端情况:如果我们的操作时纯粹计算,那么系统响应时间主要是cpu运算能力,此时maxthreads应设置尽量小,降低同一时间内争抢cpu的线程数,可以提供计算能力,提供系统整体处理能力
  • 第二种极端情况:如果我们的操作纯粹是IO或者数据库,那么响应时间的主要限制就变成了等待外部资源,此时应将maxthreads设置的尽量大一些,这样才能提高同时处理请求的个数,从而提供系统的整体处理能力

文件上传失败
org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed. Stream ended unexpectedly
解决:关闭上传超时
disableUploadTimeout=“true”

  1. Java启动参数(jvm参数) jvm优化
    设置jvm初始内存大小(物理内存的是1/64) jvm最大内存(物理内存的1/4)
JAVA_OPS='-Xms1024m  -Xmx1024m  -xloggc:/var/log/tomcat_gc.log'
# -xloggc 指定gc日志的位置 			当出现故障时,或者tomcat崩溃,可以看catalina.out 和gc日志

你可能感兴趣的:(Linux,apache)