系统上线之前研究了一下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集群部署方案知识点详解 #### 一、集群概念及特性 **1.1 什么是集群** 集群是由多台独立的计算机通过网络连接组成的集合体,这些计算机共同协作完成任务,对外表现为单一的服务实体。集群的主要目的是...
7. **社区支持**:作为开源项目,Apache Tomcat拥有庞大的开发者社区,提供丰富的文档、教程和解决方案。遇到问题时,可以通过查阅官方文档、参与邮件列表讨论或在Stack Overflow等平台寻求帮助。 8. **与其他...
因此,选用像Apache Tomcat这样的开源Java中间件作为替代方案变得可行。 IBM WebSphere Application Server是一个功能完整的企业级应用服务器,支持广泛的功能,这在大型银行系统的实际应用中可能并不全部需要。与...
虽然JerryMouse是模仿Tomcat的,但开发者可能会在其基础上进行一些性能优化,例如更高效的数据结构、内存管理策略或者请求处理流程,以提供更好的性能表现。 6. **社区与支持** 开源项目的生命力在于其社区。...
在Windows操作系统环境下,金蝶中间件提供了类似Tomcat的服务器环境,允许开发者和系统管理员部署和运行基于Java技术的应用程序。 中间件在IT行业中扮演着至关重要的角色,它充当应用程序与操作系统、数据库和其他...
为了解决这些问题,开发者引入了Redis作为session存储的中间件,而Tomcat-Redis-Session-Manager就是这样一个将Tomcat与Redis结合的解决方案。 Tomcat-Redis-Session-Manager是一个开源项目,它允许Tomcat服务器将...
综上所述,这个自编译的jar包提供了一种解决方案,即利用Redis作为session存储,以增强Tomcat8在高并发环境下的session管理能力。用户在使用时,需要配置Tomcat的server.xml文件,将session存储策略改为使用这个jar...
- 云计算中间件的挑战和解决方案 通过这门课程的学习,不仅可以提升对中间件的理解,还能为从事系统集成、软件开发、运维等相关工作打下坚实的基础。对于想要深入理解和掌握中间件技术的人来说,北航的这个中间件...
### Java秒杀系统方案优化与高性能高并发实战 在当今互联网时代,随着用户数量的急剧增加,对于服务器的压力也越来越大,特别是在一些特定的场景下,比如抢购、秒杀活动等,系统的高并发处理能力成为了衡量一个应用...
通过对这些问题的分析,我们可以更加深入地理解Tomcat的工作机制,以及其在不同环境下可能遇到的问题和解决方案。 3. 架构探讨:Tomcat拥有清晰的架构设计,主要分为连接器(connector)和容器(container)两部分。...
标题中的"omcat-redis-session-manager"是一个...总的来说,"omcat-redis-session-manager"提供了一种有效的方法来管理和优化Tomcat应用中的会话数据,通过结合Redis的高性能存储特性,提升了系统的稳定性和响应速度。
Linux 下 Tomcat+nginx+redis 负载均衡...Linux 下 Tomcat+nginx+redis 负载均衡配置是一种高性能、高可用性的解决方案,能够满足高流量网站的需求。但是,需要进行充分的测试和优化,以便确保系统的稳定性和安全性。
选择8.0以上版本的原因可能是因为这些版本包含了更多的安全更新和性能优化。另外,虽然理论上可以使用Tomcat 7.0,但由于需要进行额外的配置以确保与Spring Boot的兼容性,所以通常建议直接使用更稳定的8.0版本,以...
总的来说,"tomcat7集群session共享memcache依赖包1.8.3"提供了一种有效的方法,解决了在Tomcat7集群中Session共享的问题,通过Memcached作为中间件,实现了跨节点的Session一致性,提高了系统的可用性和用户体验。...
了解Tomcat的配置、部署以及日志管理和性能优化对于Java Web开发者来说是必不可少的。 在C/C++、JAVA和Python这三种语言中,数据结构的实现方式各有不同。C/C++提供了底层的内存管理和类型系统,可以直接实现各种...
在实际的GIS开发中,常见的中间件技术包括CORBA、JMS、AMQP、MQTT等消息传递中间件,以及Apache Tomcat、JBoss等应用服务器。此外,基于云计算的中间件如AWS Lambda、Google Cloud Functions也逐渐在GIS领域得到应用...
标题提及的"tomcat7下基于redis的session共享所需jar包"正是解决这一问题的一种方案,它利用Redis作为中央缓存来存储Session数据,确保用户在集群中的任何一台服务器上都能保持登录状态。下面将详细介绍这个解决方案...
Redis因其高性能、轻量级以及丰富的数据结构支持,常被选作session共享的中间件。描述中的"本人已经测试通过,好用!"意味着这套配置已经被验证可行,可以放心使用。 要实现这一功能,我们需要以下步骤: 1. **...
Java作为一种多平台支持、面向对象的编程语言,与中间件技术的结合尤其紧密,因为Java的跨平台特性使得基于Java的中间件解决方案在企业级应用中得到了广泛应用。 1. **数据管理中间件**:这类中间件主要用于数据库...
综上所述,中间件性能监测技术是现代IT运维中的重要组成部分,通过有效的监控策略和工具,可以优化系统性能,减少故障发生,从而保障业务的连续性和稳定性。无论是商业产品还是开源解决方案,都需要根据具体需求选择...