谈谈tomcat的优化经验

第一次写博客,搜集了很多的优化经验,然后自己归纳下来,大概有7条,没涉及到的欢迎大家补充
1.优化方法:
加大tomcat使用的jvm的内存
具体操作:
Tomcat默认可以使用的内存为128MB,可在配置文件或环境变量里增加使用内存。在配置文件中:通过配置tomcat的配置文件(Windows下的catalina.bat或Linux下的catalina.sh),在前面增加设置JAVA_OPTS=”‘$JAVA_OPTS” -Xms[初始化内存大小] -Xmx[可以使用的最大内存] 。也可以设置环境变量:export JAVA_OPTS=””$JAVA_OPTS” -Xms[初始化栈内存大小] -Xmx[可以使用的最大内存]” 
原因:
减少内存溢出的情况,减少频繁分配堆而降低性能,减少gc次数,所以服务器可以更多关注处理web请求,并要求尽快完成。

2.优化方法:
解决JRE内存泄漏
具体操作:
更新到最新版本的Tomcat来获得较好性能和可扩展性。如果我们使用最新的 因为它包含一个监听器来处理 JRE 和 permgen 内存泄漏。
原因:
减少内存泄露的出现

3.优化方法:
线程池设置
具体操作:
maxThreads的值应该根据流量的大小,如果值过低,将有没有足够的线程来处理所有的请求,请求将进入等待状态,只有当一个的处理线程释放后才被处理;如果设置的太大,Tomcat的启动将花费更多时间。在server.xml中的connector标签里设置最大线程数
原因:
线程池指定Web请求负载的数量,因此,为获得更好的性能这部分应小心处理。

4.优化方法:
利用缓存和压缩
具体操作:
采用了Nginx作为缓存服务器,将图片、css、js文件都进行了缓存
原因:
其一,对于静态页面最好是能够缓存起来,这样就不必每次从磁盘上读。这里我们采用了Nginx作为缓存服务器,将图片、css、js文件都进行了缓存,有效的减少了后端tomcat的访问。其二,为了能加快网络传输速度,开启gzip压缩也是必不可少的。但考虑到tomcat已经需要处理很多东西了,所以把这个压缩的工作就交给前端的Nginx来完成。

5.优化方法:
采用集群
具体操作:
采用了Nginx来作为请求分流的服务器,后端多个tomcat共享session来协同工作。
原因:
单个服务器性能总是有限的,最好的办法自然是实现横向扩展,那么组建tomcat集群是有效提升性能的手段。

6.优化方法:
去掉对web.xml的监视
具体操作:
context.xml中增加WEB-INF/web.xml
原因:
Eclipse在修改了web.xml后将自动更新到tomcat服务器中,不需要重启服务器了

7.优化方法:
将jsp提前编辑成servlet
具体操作:
在服务器下运行时,把jsp都打开一遍
原因:
jsp和servlet的编译时期不一样。使用myeclipse等工具创建的servlet在部署在tomcat时就已经被编译成.class文件了,而jsp被部署到tomcat时还没有被编译。当tomcat启动,第一次访问jsp页面时,jsp才会被编译成servlet,进而被编译成.class文件。

文章若有不当之处,欢迎评论指出~
如果喜欢我的文章,欢迎关注知乎专栏Java修仙道路~

你可能感兴趣的:(tomcat)