`

【中间件】Tomcat优化方案

 
阅读更多
系统上线之前研究了一下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" 压缩类型
分享到:
评论

相关推荐

    tomcat集群部署方案

    ### Tomcat集群部署方案知识点详解 #### 一、集群概念及特性 **1.1 什么是集群** 集群是由多台独立的计算机通过网络连接组成的集合体,这些计算机共同协作完成任务,对外表现为单一的服务实体。集群的主要目的是...

    Apache Tomcat 7.0.11

    7. **社区支持**:作为开源项目,Apache Tomcat拥有庞大的开发者社区,提供丰富的文档、教程和解决方案。遇到问题时,可以通过查阅官方文档、参与邮件列表讨论或在Stack Overflow等平台寻求帮助。 8. **与其他...

    基于Apache Tomcat的一站式Java应用服务器解决方案.pdf

    因此,选用像Apache Tomcat这样的开源Java中间件作为替代方案变得可行。 IBM WebSphere Application Server是一个功能完整的企业级应用服务器,支持广泛的功能,这在大型银行系统的实际应用中可能并不全部需要。与...

    模仿tomcat的国产开源web服务器

    虽然JerryMouse是模仿Tomcat的,但开发者可能会在其基础上进行一些性能优化,例如更高效的数据结构、内存管理策略或者请求处理流程,以提供更好的性能表现。 6. **社区与支持** 开源项目的生命力在于其社区。...

    金蝶中间件安装包(windows)

    在Windows操作系统环境下,金蝶中间件提供了类似Tomcat的服务器环境,允许开发者和系统管理员部署和运行基于Java技术的应用程序。 中间件在IT行业中扮演着至关重要的角色,它充当应用程序与操作系统、数据库和其他...

    tomcat-redis-session-manager的jar包-包含Tomcat7和Tomcat8

    为了解决这些问题,开发者引入了Redis作为session存储的中间件,而Tomcat-Redis-Session-Manager就是这样一个将Tomcat与Redis结合的解决方案。 Tomcat-Redis-Session-Manager是一个开源项目,它允许Tomcat服务器将...

    tomcat-9.0.96 windows安装包,apache-tomcat-9.0.96-windows-x64.zip

    Windows版本的Tomcat 9.0.96适用于Windows操作系统,它特别为64位处理器架构进行了优化,提供了性能上的增强和稳定性。该版本尤其适合开发者在本地进行开发测试以及小型至中型企业部署Web应用。在Windows平台使用...

    Tomcat8亲测可用 tomcat-redis-session-manager的jar包

    综上所述,这个自编译的jar包提供了一种解决方案,即利用Redis作为session存储,以增强Tomcat8在高并发环境下的session管理能力。用户在使用时,需要配置Tomcat的server.xml文件,将session存储策略改为使用这个jar...

    计算机基础知识,数据结构,设计模式,Tomcat中间件的实现_hy4.zip

    此外,掌握Tomcat中间件的实现原理对于开发基于Java的企业级应用非常重要,因为Tomcat不仅是许多应用服务器的基础组件,而且是企业部署Web应用的常用解决方案之一。通过深入学习Tomcat的工作机制,开发者可以更好地...

    北航中间件课件

    - 云计算中间件的挑战和解决方案 通过这门课程的学习,不仅可以提升对中间件的理解,还能为从事系统集成、软件开发、运维等相关工作打下坚实的基础。对于想要深入理解和掌握中间件技术的人来说,北航的这个中间件...

    计算机基础知识,数据结构,设计模式,Tomcat中间件的实现.zip

    对于Tomcat中间件的学习,则需要掌握其架构、组件、配置方法以及如何部署和优化运行在Tomcat上的Web应用程序。同时,了解Tomcat的源码结构和工作原理也是深入学习该中间件的重要环节。 该压缩包内容涵盖了计算机...

    Java秒杀系统方案优化 高性能高并发实战

    ### Java秒杀系统方案优化与高性能高并发实战 在当今互联网时代,随着用户数量的急剧增加,对于服务器的压力也越来越大,特别是在一些特定的场景下,比如抢购、秒杀活动等,系统的高并发处理能力成为了衡量一个应用...

    Tomcat源码研究.pdf

    通过对这些问题的分析,我们可以更加深入地理解Tomcat的工作机制,以及其在不同环境下可能遇到的问题和解决方案。 3. 架构探讨:Tomcat拥有清晰的架构设计,主要分为连接器(connector)和容器(container)两部分。...

    omcat-redis-session-manager的jar包-包含Tomcat7和Tomcat8

    标题中的"omcat-redis-session-manager"是一个...总的来说,"omcat-redis-session-manager"提供了一种有效的方法来管理和优化Tomcat应用中的会话数据,通过结合Redis的高性能存储特性,提升了系统的稳定性和响应速度。

    linux下Tomcat+nginx+redis负载均衡配置

    Linux 下 Tomcat+nginx+redis 负载均衡...Linux 下 Tomcat+nginx+redis 负载均衡配置是一种高性能、高可用性的解决方案,能够满足高流量网站的需求。但是,需要进行充分的测试和优化,以便确保系统的稳定性和安全性。

    64位的tomcat8

    选择8.0以上版本的原因可能是因为这些版本包含了更多的安全更新和性能优化。另外,虽然理论上可以使用Tomcat 7.0,但由于需要进行额外的配置以确保与Spring Boot的兼容性,所以通常建议直接使用更稳定的8.0版本,以...

    tomcat7集群session共享memcache依赖包1.8.3

    总的来说,"tomcat7集群session共享memcache依赖包1.8.3"提供了一种有效的方法,解决了在Tomcat7集群中Session共享的问题,通过Memcached作为中间件,实现了跨节点的Session一致性,提高了系统的可用性和用户体验。...

    中间件在GIS开发中的应用

    在实际的GIS开发中,常见的中间件技术包括CORBA、JMS、AMQP、MQTT等消息传递中间件,以及Apache Tomcat、JBoss等应用服务器。此外,基于云计算的中间件如AWS Lambda、Google Cloud Functions也逐渐在GIS领域得到应用...

    基于Ansible,自动安装nginx、tomcat、Java等中间件,以及MySQL_ZMySQ

    本文将深入探讨如何使用Ansible这一自动化运维工具来实现中间件和数据库的自动化安装部署,具体包括nginx、tomcat、Java以及MySQL数据库。 首先,Ansible是一个开源的自动化运维工具,它能够通过SSH协议实现对远程...

Global site tag (gtag.js) - Google Analytics