系统上线之前研究了一下tomcat的优化方案,主要包括一下几个方面:
1、JDK内存优化
Tomcat默认可以使用的内存为128MB
Unix配置位置
{tomcat_home}/bin/catalina.sh
JAVA_OPTS='-Xms[初始化内存大小] -Xmx[可以使用的最大内存]
{tomcat_home}/bin/startup.sh
JAVA_OPTS='-Xms128m -Xmx1256m -Djava.awt.headless=true'; export JAVA_OPTS
vi /etc/profile
export JAVA_OPTS=”$JAVA_OPTS -Xms[初始化内存大小] -Xmx[可以使用的最大内存]”
设置值:
一般说来,你应该使用物理内存的 80% 作为堆大小。
如果本机上有Apache服务器,可以先折算Apache需要的内存,然后修改堆大小。建议设置为70%;
建议设置[[初始化内存大小]等于[可以使用的最大内存],这样可以减少平凡分配堆而降低性能。
2、精简应用和配置文件
删除不需要的管理应用和帮助应用,提高tomcat安全性。
删除webapps下所有文件
rm –fr $CATALINA_HOME/webapps/*
删除server/webapps下所有文件
rm –fr $CATALINA_HOME/server/webapps/*
精简sever.xml配置文件
使用tomcat发布版本中的最小配置文件,提高性能,如果有功能上的需求,在逐个的加入功能配置。
备份 mv server.xml server_default.xml
复制 cp server-minimal.xml server.xml
3、连接器优化
在$CATALINA_HOME/conf/server.xml配置文件中的Connetctor节点,和连接数相关的参数配置和优化。
maxThreads
Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。默认值200。 可以根据机器的时期性能和内存大小调整,一般可以在400-500。最大可以在800左右。
acceptCount
指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。默认值10。
minSpareThreads
Tomcat初始化时创建的线程数。默认值4。
maxSpareThreads
一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。默认值50。
enableLookups
是否反查域名,默认值为true。为了提高处理能力,应设置为false
connnectionTimeout
网络连接超时,默认值20000,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。
maxKeepAliveRequests
保持请求数量,默认值100。
bufferSize
输入流缓冲大小,默认值2048 bytes。
compression
压缩传输,取值on/off/force,默认值off。
其中和最大连接数相关的参数为maxThreads和acceptCount。如果要加大并发连接数,应同时加大这两个参数。web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。
4、启用Tomcat压缩(HTTP压缩)功能
HTTP 压缩可以大大提高浏览网站的速度,现在流行的浏览器都是支持的,包括 IE、FireFox、Opera 等。
压缩对象
对静态对象:相对于普通的浏览过程HTML ,CSS,Javascript , Text ,它可以节省40%左右的流量。更为重要的是对动态生成的,包括CGI、PHP , JSP , ASP , Servlet,SHTML等输出的网页也能进行压缩,压缩效率惊人。
<Connector port="80" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25"
maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="utf-8"compression="on" compressionMinSize="2048" noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" />
1) compression="on" 打开压缩功能 2) compressionMinSize="2048" 启用压缩的输出内容大小,这里面默认为2KB 3) noCompressionUserAgents="gozilla, traviata" 对于以下的浏览器,不启用压缩 4) compressableMimeType="text/html,text/xml" 压缩类型
分享到:
相关推荐
spring-boot-seckill分布式秒杀系统是一个用SpringBoot开发的从0到1构建的分布式秒杀系统,项目案例基本成型,逐步完善中。...3、应用服务优化:Nginx最佳配置、Tomcat连接池优化、数据库配置优化、数据库连接池优化。
Tomcat\Tomcat优化相关问题.pdf Tomcat\Tomcat面试专题.pdf Tomcat\Tomcat面试题.pdf Zookeeper\Zookeeper+分布式过程.pdf Zookeeper\Zookeeper篇.pdf Zookeeper\zookeeper面试专题.pdf Zookeeper\zookeeper面试题....
重磅推荐,史上最全的Java面试文档总结(jvm,mybatis,mysql优化算法)等总结文档大合集,共300份。...Tomcat面试专题及答案 zookeeper面试专题及答案 并发编程及答案(上) 并发编程面试专题及答案(下) ……等等。
( 中间件技术 系统采用的中间件技术为当前最主流的中间件技术(nginx+tomcat),同时满足系统可 用性及稳定性,且相应的维护人员在市场中较为充裕,可以快速上手 服务器搭建建议 建设方案图 平台服务器搭建需4台...
MySQL拥有庞大的开发者社区和丰富的第三方插件、库、中间件支持,提供了丰富的文档、教程、论坛以及专业服务,极大地简化了开发、运维和故障排查过程。 关键组件与日志 系统数据库 MySQL内部包含几个特殊的系统...
MySQL拥有庞大的开发者社区和丰富的第三方插件、库、中间件支持,提供了丰富的文档、教程、论坛以及专业服务,极大地简化了开发、运维和故障排查过程。 关键组件与日志 系统数据库 MySQL内部包含几个特殊的系统...
Mycat是一个开源的分布式数据库系统,其核心功能是分表分库,即将一个大表水平分割为多个小表,存储在后端MySQL...本课程适合有一定MySQL基础的学员,让学员能掌握数据库优化的解决方案,应用在真实项目系统搭建中。
考勤管理系统在满足用户功能方面的...部署完成后对系统进行了性能测试,分析测试结果并与市场主流考勤系统进行比较,得出本文中设计的部署方案在性能上有所提升,本文对大数据量的考勤系统的方案优化有一定实用价值。
性能优化 ActiveMQ消息中间件 Dubbo JVM Kafka Linux MongoDB MyBatis MySQL Netty Nginx RabbitMQ消息中间件 Redis Spring SpringBoot SpringCloud SpringMVC Tomcat Zookeeper 四、2020年JAVA核心面试题库 JAVA...
性能优化 数据库 设计模式 乐观锁与悲观锁 集合框架 多线程 并发编程 Zookeeper Tomcat SpringMVC SpringCloud SpringBoot Spring Redis RabbitMQ消息中间件 Nginx Netty MySQL MyBatis MongoDB Linux Kafka JVM ...
JVM优化: 数据结构算法: 软件项目管理 Maven: SVN: Git: Jenkins: 热门技术框架 SSM: Mybatis-Plus : Spring Data: Spring: 分布式架构 Dubbo、Zookeeper: SpringCloud: Eureka: Skywalking: 服务器...
spring-boot-seckill分布式秒杀系统是一个用SpringBoot开发的从0到1构建的分布式秒杀系统,项目案例基本成型,逐步完善中。...3、应用服务优化:Nginx最佳配置、Tomcat连接池优化、数据库配置优化、数据库连接池优化。
授权方式: 开源软件 界面语言: ...3、应用服务优化:Nginx最佳配置、Tomcat连接池优化、数据库配置优化、数据库连接池优化。 spring-boot-seckill分布式秒杀系统截图 相关阅读 同类推荐: 站长常用源码
8.2 系统优化和容灾 147 8.3 应急预案 148 第3部分高并发 153 9 应用级缓存 154 9.1 缓存简介 154 9.2 缓存命中率 155 9.3 缓存回收策略 155 9.3.1 基于空间 155 9.3.2 基于容量 155 9.3.3 基于时间 155 9.3.4 基于...
J2ME优化压缩PNG文件 4个目标文件 内容索引:JAVA源码,综合应用,J2me游戏,PNG,图形处理 这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失...
J2ME优化压缩PNG文件 4个目标文件 内容索引:JAVA源码,综合应用,J2me游戏,PNG,图形处理 这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失...