一、加大对Tomcat的运行内存
例如默认的256M增大到2G
二、服务器资源
服务器所能提供的CPU、内存、磁盘等性能会对处理能力有决定作用
1.对于高并发情况下会有大量的运算,那么CPU的速度会直接影响到处理速度;
2.内存在处理大量数据的情况下,将会有较大的内存需求,可以用-XMS -XMX -xx:MaxPermSize等参数对内存不同功能进行划分;
SET CATALINA_OPTS= -Xms2048m -Xmx4096m -XX:MaxNewSize=512m -XX:MaxPermSize=256m
set JAVA_OPTS=-Xms2048m -Xmx4096m -XX:PermSize=128M -XX:MaxPermSize=256m
rem SET CATALINA_OPTS= -Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=512m
rem SET CATALINA_OPTS= -Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=512m
@echo off
解释:
-Xms为jvm启动时分配初始化内存 比如 -Xms2048m,表示分配2048M
-Xmx为jvm运行分配的最大内存 比如 -Xmx4096m,表示分配4096M
-Xss 每一个线程堆栈的大小,一般情况下256K就够了,不然会影响到此进程中并发线程的大小
-XX:PermSize=128M JVM初始分配的非堆内存,为128M
-XX:MaxPermSize=256m JVM最大允许分配的非堆内存,按需分类。
注意:
JDK8.0及之后使用的是metaspace代替PermSize,因此在许多我们设置的perSize大小改成对metaspace进行配置即可;
将-XX:PermSize=200m;-XX:MaxPermSize=256m;
修改成XX:Metaspace=200m;-XX:MaxMetaspace=256m;
3.磁盘的解决问题就是读写性能,当大量文件进行读写时,磁盘很容易成为性能瓶颈(可通过Nginx缓存静态资源解决)
三、利用缓存和压缩
对于静态页面最好是能够缓存起来,这样就不必每次从磁盘读取。我们可以采用Nginx作为缓存服务器,将图片、css、js 文件进行缓存,有效的减少了后台tomcat的访问;
另外为了加快网络传输速度,开启gzip压缩是必不可少的;但考虑到tomcat会处理很多东西,所以把这个压缩的工作交给前端的nginx来完成
除了文件可以通过gzip进行压缩,图片也可以通过图片处理工具预先压缩,找到一个平衡点可以让画质损失很小并且减少图片的大小。
gzip压缩:是若干种文件压缩程序的简称,通常指GNU计划,此处的gzip代表 GNU zip,也经常用来表示gzip这种文件格式。
四、使用tomcat集群
一般的生产环境,会使用Nginx+tomcat,tomcat仅处理动态资源(如jsp等等)
可以采用nginx来作为请求分流的服务器,然后多个tomcat共享Session来协同工作。
五.优化tomcat参数
需要修改conf/server.xml文件,主要优化连接配置,关闭客户端dns(域名解析器,因为这功能交给nginx去做)
如可以调整线程,更充分的利用我们的服务器。