tomcat 优化

Tomcat安全优化

复制代码
1、修改telnet 管理端口8005,和shutdown命令为dangerous
2、修改默认的ajp 8009端口为不易冲突的大于1024端口;
3、通过iptables规则限制ajp端口访问的权限仅为线上机
4、 删除默认的{Tomcat安装目录}/conf/tomcat-users.xml文件,重启tomcat后将会自动生成新的文件;
5、 删除{Tomcat安装目录}/webapps下默认的所有目录和文件
6、将tomcat 应用根目录配置为tomcat安装目录以外的目录;
7、tomcat启动用户权限必须为非root权限,尽量降低tomcat启动用户的目录访问权限;
8、如需直接对外使用80端口,可通过普通账号启动后,配置iptables规则进行转发;
9、开启Tomcat默认访问日志中的Referer和User-Agent记录

Tomcat性能优化

复制代码
1、开启GC日志、设置jvm的初始堆大小和最大堆大小
2、和开发一起优化代码
3、加内存

tomcat优化

优化内存,主要是在bin/catalina.bat/sh 配置文件中进行。linux上,在catalina.sh中添加:

复制代码
JAVA_OPTS="-server -Xms1G -Xmx2G -Xss256K -Djava.awt.headless=true -Dfile.encoding=utf-8 -XX:MaxPermSize=256m -XX:PermSize=128M -XX:MaxPermSize=256M"

其中:

复制代码
• -server:启用jdk的server版本。
• -Xms:虚拟机初始化时的最小堆内存。
• -Xmx:虚拟机可使用的最大堆内存。 #-Xms与-Xmx设成一样的值,避免JVM因为频繁的GC导致性能大起大落
• -XX:PermSize:设置非堆内存初始值,默认是物理内存的1/64。
• -XX:MaxNewSize:新生代占整个堆内存的最大值。
• -XX:MaxPermSize:Perm(俗称方法区)占整个堆内存的最大值,也称内存最大永久保留区域。

这些以后再看,先看优化的!

1)错误提示:java.lang.OutOfMemoryError:Java heap space

复制代码
Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,有可能导致系统无法运行。常见的问题是报Tomcat内存溢出错误,Outof Memory(系统内存不足)的异常,从而导致客户端显示500错误,一般调整Tomcat的-Xms和-Xmx即可解决问题,通常将-Xms和-Xmx设置成一样,堆的最大值设置为物理可用内存的最大值的80%。
复制代码
set JAVA_OPTS=-Xms512m-Xmx512m

2)错误提示:java.lang.OutOfMemoryError: PermGenspace

复制代码
PermGenspace的全称是Permanent Generationspace,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGenspace中,它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGenspace进行清理,所以如果你的应用中有很CLASS的话,就很可能出现PermGen space错误,这种错误常见在web服务器对JSP进行precompile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。解决方法:
复制代码
set JAVA_OPTS=-XX:PermSize=128M

3)在使用-Xms和-Xmx调整tomcat的堆大小时,还需要考虑垃圾回收机制。如果系统花费很多的时间收集垃圾,请减小堆大小。一次完全的垃圾收集应该不超过3-5 秒。如果垃圾收集成为瓶颈,那么需要指定代的大小,检查垃圾收集的详细输出,研究垃圾收集参数对性能的影响。一般说来,你应该使用物理内存的 80% 作为堆大小。当增加处理器时,记得增加内存,因为分配可以并行进行,而垃圾收集不是并行的。

相关推荐
计算机学姐1 小时前
基于SpringBoot的演出购票系统【2026最新】
java·vue.js·spring boot·后端·spring·tomcat·intellij-idea
计算机学姐3 小时前
基于SpringBoot的送货上门系统【2026最新】
java·vue.js·spring boot·后端·mysql·spring·tomcat
秋4276 小时前
tomcat与web服务器
服务器·前端·tomcat
秋4277 小时前
基于tomcat的动静分离
java·tomcat
计算机毕设指导69 小时前
基于微信小程序的旅游线路定制系统【源码文末联系】
java·spring boot·微信小程序·小程序·tomcat·maven·旅游
疯狂成瘾者9 小时前
Lombok 可以生成哪些类方法
java·tomcat·maven
我要打倒凹凸曼10 小时前
使用 Nginx 实现 Tomcat 集群的负载均衡
nginx·tomcat·负载均衡
计算机毕设指导610 小时前
基于微信小程序的博物馆文创系统【源码文末联系】
java·spring boot·微信小程序·小程序·tomcat·maven·intellij-idea
我爱学习好爱好爱10 小时前
Prometheus监控栈 监控tomcat和消息队列
消息队列·tomcat·prometheus
Edward1111111121 小时前
tomcat_servlet
java·servlet·tomcat