本文主要介绍tomcat性能优化方法的简单安排,并通过实例代码进行详细介绍。对大家的学习或者工作都有一定的参考价值,有需要的朋友可以参考一下。
Tomcat本身优化
Tomcat内存优化
启动的时候告诉JVM我要大内存(调内存是最直接的方式)。
我们可以在tomcat的启动脚本catalina.sh中设置java_OPTS参数
JAVA_OPTS的参数描述
启用服务器jdk的服务器版本。
xmjava虚拟机初始化时的最小内存。
xmjava虚拟机可以使用的最大内存
XX: PermSize内存永久保留区
XX:MaxPermSize内存最大永久保留区
示例配置:
JAVA _ OPTS=-xms 1024m-xmx 2048m-XX:PermSize=256m-XX:MaxNewSize=256m-XX:MaxPermSize=256m
注意:其内存的配置需要基于服务器(或虚拟机)的实际内存。
重新启动tomcat生效。
Tomcat IO优化
如何在必要的时候使用APR从操作系统层面解决异步IO问题?其次,使用NIO。
server.xml中
Tomcat线程优化
max threads= 600 //最大线程数
MinSpareThreads= 100 /////初始化期间创建的线程数
max threads= 500 //一旦创建的线程超过这个值,Tomcat就会关闭不再需要的套接字线程。
AcceptCount=700//指定当用于处理请求的所有可用线程都被使用时,可以放入处理队列的请求数,超过此数的请求将不会被处理。
使用线程池
在server.xml中添加executor节点,然后配置连接器的executor属性。
NamePrefix:线程池中线程的命名前缀。
MaxThreads:线程池中线程的最大数量。
MinSpareThreads:线程池中空闲线程的最小数量。
MaxIdleTime:当超过空闲线程的最小数量时,更多的线程将等待这个时间长度,然后关闭。
线程优先级:线程优先级
executor name= tomcatThreadPool name prefix= req-exec- max threads= 1000 minSpareThreads= 50 maxidle time= 60000 /
连接器端口=8080 协议=HTTP/1.1 执行器=tomcatThreadPool/
禁用DNS查询
web应用程序在记录客户端的信息时,也会记录客户端的IP地址或者通过域名服务器查找机器名并转换为IP地址。DNS查询需要占用网络,并且包括从很多远程服务器或者无功能服务器获取相应IP的过程,会花费一定的时间。为了消除DNS查询对性能的影响,我们可以通过修改server.xml文件中enableLookups参数的值来关闭DNS查询。
缓存优化
对于静态页面,最好缓存,这样就不用每次都从磁盘读取了。我们使用Nginx作为缓存服务器来缓存图片、css和js文件,有效减少了tomcat的访问。
Tomcat支持GZIP压缩来提高web性能
使用以下节点修改%TOMCAT_HOME%/conf/server.xml:
GZIP的缺点。相比没有GZIP的项目,使用GZIP会增加服务器压缩(cpu消耗)的压力和客户端解压的压力,所以对服务器配置要求更高。此外,压缩也需要时间。如果想占用更小的空间,获得更高的压缩比,就必须牺牲更长的时间。另一方面,如果时间宝贵,要求快,那么得到的压缩比必然小,当然会占用更多的空间(压缩比=原始内容大小/压缩后的大小,压缩比越大,压缩后占用空间的压缩包越小),这就是物理空间和时间的矛盾。
与nginx合作进行集群
Jvm调优
操作系统调整
对于操作系统优化,就是尽可能的增加可用内存容量,提高CPU的频率,保证文件系统的读写速率。
这就是本文的全部内容。希望对大家的学习有帮助,支持我们。