linux系统tomcat性能优化

tomcat性能优化

    • 性能优化
      • 安全优化
        • 降权启动
        • 隐藏版本
      • 生产优化

性能优化

安全优化

类别 配置内容及说明
降权启动 1.tomcat启动用户权限必须为非root权限,尽量降低tomcat启动用户的目录访问权限;2.如需直接对外使用80端口,可通过普通账号启动后,配置iptables规则进行转发;
隐藏版本 在访问tomcat不存在页面时,访问404底部会提示出现apache tomcat 8.5.51泄漏版本号,黑客根据此版本漏洞进行恶意攻击
降权启动
useradd tomcat 

chown tomcat.tomcat /data/application/tomcat/ -R

su -c '/data/application/tomcat/bin/start.sh start' tomcat

ps -ef | grep tomcat 
隐藏版本
1.找到Tomcat所在目录下的lib目录
2.找到catalina.jar文件
3.解压unzip catalina.jar之后会多出两个文件夹
4.进入org/apache/catalina/util 编辑配置文件ServerInfo.properties
5.修改配置文件
server.info=Apache Tomcat     #这里就是版本位置显示东西
server.number=
server.built=
6.更新jar包信息
lib目录下执行
jar uvf catalina.jar org/apache/catalina/util/ServerInfo.properties
7.重启tomcat

生产优化

上策:优化代码

该项需要开发经验足够丰富,对开发人员要求较高

中策:jvm优化机制 垃圾回收机制 把不需要的内存回收

优化jvm–优化垃圾回收策略

优化catalina.sh配置文件。在catalina.sh配置文件中添加代码

# tomcat分配1G内存模板
JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024m -Xmx1024m
# 重启服务
su -c '/home/tomcat/tomcat8_1/bin/shutdown.sh' tomcat
su -c '/home/tomcat/tomcat8_1/bin/startup.sh' tomcat

# 其他参数
-XX:MetaspaceSize 元数据区
-XX:MaxMetaspaceSize 元数据区最大值
-Xmx 最大堆内存
-Xms 最小堆内存
-Xmn 年轻代大小 [堆大小=年轻代大小 + 年老代大小]
-Xss 最大栈空间 
-XX:PermSize 永久代
-XX:MaxPermSize 永久代最大

# gc 正常状态
MinorGC 执行时间不到50ms;
Minor GC 执行不频繁,约10秒一次;
Full GC 执行时间不到1s;
Full GC 执行频率不算频繁,不低于10分钟1次。

YGC:从应用程序启动到采样时年轻代中gc次数
YGCT:从应用程序启动到采样时年轻代中gc所用时间(s)
FGC:从应用程序启动到采样时old代(全gc)gc次数
FGCT:从应用程序启动到采样时old代(全gc)gc所用时间(s)
GCT:从应用程序启动到采样时gc用的总时间(s)
jps 检测gc状态
#!/usr/bin/env python
import os,sys

jps_info = os.popen("/usr/bin/sudo /usr/local/java/bin/jps | grep %s | awk '{print $1}'"% sys.argv[1])
jps_info = jps_info.read()
jps_id = jps_info.strip()

jstat = {'YGC':'$13','YGCT':'$14','FGC':'$15','FGCT':'$16','GCT':'$17'}

info = jstat[sys.argv[2]]
command = "/usr/bin/sudo /usr/local/java/bin/jstat -gc "+jps_id+" | awk '{print "+info+"}'| /usr/bin/tail -n 1"

os.system(command)

下策:加足够大的内存

下下策:每天0点定时重启tomcat

你可能感兴趣的:(linux,linux,tomcat,性能优化)