tomcat性能优化方式简单整理

服务器

Tomcat本身优化

Tomcat内存优化

启动时告诉JVM我要一块大内存(调优内存是最直接的方式)
我们可以在 tomcat 的启动脚本 catalina.sh 中设置 java_OPTS 参数
JAVA_OPTS参数说明

server 启用jdk 的 server 版
Xms java虚拟机初始化时的最小内存
Xmx java虚拟机可使用的最大内存
XX: PermSize 内存永久保留区域
XX:MaxPermSize 内存最大永久保留区域

配置示例:
JAVA_OPTS=\’-Xms1024m -Xmx2048m -XX: PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m\’
说明:其内存的配置需要根据服务器(或虚拟机)的实际内存来配置
重启tomcat生效

Tomcat IO优化

如何必要可以使用APR来从操作系统级别来解决异步的IO问题。次之使用NIO。
在server.xml中

Tomcat 线程优化

maxThreads=600 ///最大线程数
minSpareThreads=100///初始化时创建的线程数
maxSpareThreads=500///一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。
acceptCount=700//指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理

使用线程池

在server.xml中增加executor节点,然后配置connector的executor属性,
namePrefix:线程池中线程的命名前缀
maxThreads:线程池的最大线程数
minSpareThreads:线程池的最小空闲线程数
maxIdleTime:超过最小空闲线程数时,多的线程会等待这个时间长度,然后关闭
threadPriority:线程优先级

<Executor name=tomcatThreadPool namePrefix=req-exec-maxThreads=1000 minSpareThreads=50maxIdleTime=60000/>
<Connector port=8080 protocol=HTTP/1.1executor=tomcatThreadPool/>

禁用dns查询

当web应用程序向要记录客户端的信息时,它也会记录客户端的IP地址或者通过域名服务器查找机器名转换为IP地址。DNS查询需要占用网络,并且包括可能从很多很远的服务器或者不起作用的服务器上去获取对应的IP的过程,这样会消耗一定的时间。为了消除DNS查询对性能的影响我们可以关闭DNS查询,方式是修改server.xml文件中的enableLookups参数值

缓存优化

对于静态页面最好是能够缓存起来,这样就不必每次从磁盘上读。这里我们采用了Nginx作为缓存服务器,将图片、css、js文件都进行了缓存,有效的减少了后端tomcat的访问。

Tomcat启用GZIP压缩,提升web性能

修改%TOMCAT_HOME%/conf/server.xml,修订节点如下:
GZIP的缺点。相对于没有进行GZIP的工程来说,使用GZIP要增加服务器压缩的压力(cpu消耗)、客户端解压缩的压力,故而对服务器的配置需求更高。另外压缩也要耗费时间,想占用更小的空间,得到高压缩比率,肯定要牺牲较长的时间;反之,如果时间较为宝贵,要求快速,那么所得的压缩比率一定较小,当然会占用更大的空间了(压缩比率=原内容大小/压缩后大小,压缩比率越大,则表明压缩后占用空间的压缩包越小),这就是物理空间与时间的矛盾。

配合nginx做集群

jvm虚拟机调优
操作系统调优
对于操作系统优化来说,是尽可能的增大可使用的内存容量、提高CPU的频率,保证文件系统的读写速率等。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持亿速云。

新网虚拟主机

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注