`
twypx
  • 浏览: 14826 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

提升tomcat服务器性能的六条经验

阅读更多
在线上环境中我们是采用了tomcat作为Web服务器,它的处理性能直接关系到用户体验,在平时的工作和学习中,归纳出以下6种调优经验。
1. 服务器资源
服务器所能提供CPU、内存、硬盘的性能对处理能力有决定性影响。
(1) 对于高并发情况下会有大量的运算,那么CPU的速度会直接影响到处理速度。
(2)内存在大量数据处理的情况下,将会有较大的内存容量需求,可以用-Xmx -Xms -XX:MaxPermSize等参数对内存不同功能块进行划分。我们之前就遇到过内存分配不足,导致虚拟机一直处于full GC,从而导致处理能力严重下降。
(3)硬盘主要问题就是读写性能,当大量文件进行读写时,磁盘极容易成为性能瓶颈。最好的办法还是利用下面提到的缓存。
2. 利用缓存和压缩
对于静态页面最好是能够缓存起来,这样就不必每次从磁盘上读。这里我们采用了Nginx作为缓存服务器,将图片、css、js文件都进行了缓存,有效的减少了后端tomcat的访问。
另外,为了能加快网络传输速度,开启gzip压缩也是必不可少的。但考虑到tomcat已经需要处理很多东西了,所以把这个压缩的工作就交给前端的Nginx来完成。
除了文本可以用gzip压缩,其实很多图片也可以用图像处理工具预先进行压缩,找到一个平衡点可以让画质损失很小而文件可以减小很多。曾经我就见过一个图片从300多kb压缩到几十kb,自己几乎看不出来区别。
3. 采用集群
单个服务器性能总是有限的,最好的办法自然是实现横向扩展,那么组建tomcat集群是有效提升性能的手段。我们还是采用了Nginx来作为请求分流的服务器,后端多个tomcat共享session来协同工作。
4. 优化tomcat参数
这里以tomcat7的参数配置为例,需要修改conf/server.xml文件,主要是优化连接配置,关闭客户端dns查询。
<Connector port="8080"  
           protocol="org.apache.coyote.http11.Http11NioProtocol" 
           connectionTimeout="20000" 
           redirectPort="8443"  
           maxThreads="500"  
           minSpareThreads="20" 
           acceptCount="100"
           disableUploadTimeout="true"
           enableLookups="false"  
           URIEncoding="UTF-8" />
5. 改用APR库
tomcat默认采用的BIO模型,在几百并发下性能会有很严重的下降。tomcat自带还有NIO的模型,另外也可以调用APR的库来实现操作系统级别控制。
NIO模型是内置的,调用很方便,只需要将上面配置文件中protocol修改成org.apache.coyote.http11.Http11NioProtocol,重启即可生效。上面配置我已经改过了,默认的是HTTP/1.1。
APR则需要安装第三方库,在高并发下会让性能有明显提升。具体安装方法详见《Linux下解决Tomcat启动报The APR based Apache Tomcat Native library which allows …java.library…异常]》
6. 优化网络
Joel也明确提出了优化网卡驱动可以有效提升性能,这个对于集群环境工作的时候尤为重要。由于我们采用了linux服务器,所以优化内核参数也是一个非常重要的工作。给一个参考的优化参数:
1. 修改/etc/sysctl.cnf文件,在最后追加如下内容:
net.core.netdev_max_backlog = 32768
net.core.somaxconn = 32768
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_max_syn_backlog = 65536

2. 保存退出,执行sysctl -p生效



更多JAVA开发技术分享,可以看http://arching.wc.lt
分享到:
评论

相关推荐

    Tomcat服务器性能调优几个方面[定义].pdf

    Tomcat服务器性能调优是提升应用程序运行效率的关键环节,涉及到多个层面的调整。以下将详细阐述从操作系统、Java虚拟机、Apache与Tomcat的集成以及Apache和Tomcat集群等方面的调优策略。 首先,**操作系统调优**是...

    Tomcat7性能优化

    本文将围绕“Tomcat7性能优化”这一主题,详细介绍如何通过优化配置提高Tomcat服务器的并发能力,并深入探讨服务器资源(如CPU、内存、硬盘等)对处理能力的影响。 #### 二、理解服务器资源的重要性 在优化Tomcat...

    Tomcat服务器集群和负载均衡

    在IT行业中,Tomcat服务器是Java Web...总的来说,Tomcat服务器集群和负载均衡是提升Web应用性能和可用性的有效手段。通过精心设计和配置,可以创建一个高可用、高性能的Java Web服务环境,以满足不断增长的用户需求。

    tomcat7性能调优

    【Tomcat7性能调优】是一项关键的任务,它关乎服务器的稳定性和响应速度。Tomcat作为流行的Java应用服务器,其性能优化能显著...同时,定期监控服务器性能,根据实际情况进行微调,才能确保最佳的服务质量和用户体验。

    tomcat服务器工作原理

    **Tomcat服务器工作原理** ...理解Tomcat的工作原理有助于我们更好地管理和优化Java Web应用,提升服务器性能,解决运行中可能出现的问题。通过深入学习,我们可以根据应用需求定制Tomcat配置,使其达到最佳运行状态。

    tomcat 性能检测软件

    标题中的“tomcat 性能检测软件”指的是用于分析和监控Apache Tomcat服务器性能的工具。在IT领域,性能监控是确保应用稳定性和优化服务的关键环节。Tomcat是一款流行的开源Java Servlet容器,广泛用于部署Java Web...

    Apache+Tomcat服务器集群配置详细步骤

    ### Apache+Tomcat服务器集群配置详细步骤 #### 一、引言 在现代Web开发中,随着业务规模的不断扩大和用户需求的日益增长,单一服务器往往难以满足高性能、高可靠性的要求。为了应对这一挑战,通常采用Apache+...

    Tomcat服务器开发源码

    【标题】"Tomcat服务器开发源码"是一个与Java Web应用服务器相关的项目,主要针对Tomcat的源代码进行深入学习和研究。Tomcat是Apache软件基金会的Jakarta项目中的一个核心项目,它是一个开源的、免费的Web应用服务器...

    Tomcat性能优化

    【标题】:“Tomcat性能优化”意味着我们正在探讨如何提升Apache Tomcat服务器的运行效率,使其在处理Web应用时能够更快、更稳定地工作。Tomcat是一个开源的Java Servlet容器,广泛用于部署Java Web应用程序。 ...

    Tomcat服务器配置 视频教程 Tomcat视频

    10. **性能优化**:讨论如何调整JVM参数,如堆内存大小、垃圾收集策略,以及Tomcat的线程池设置,以提升服务器性能。 11. **故障排查**:学习如何通过日志、控制台输出以及服务器状态检查来诊断和解决常见的运行...

    tomcat服务器6,7,8三个服务器压缩版

    这个压缩包包含了Tomcat服务器的三个不同版本:6.0.43、7.0.57和8.0.15。每个版本都有其特定的功能特性和兼容性,以下是对这三个版本的详细讲解。 首先,Apache Tomcat 6.0.43是Tomcat服务器的一个较旧版本。在Java...

    Tomcat服务器

    【Tomcat服务器】是Apache软件基金会的Jakarta项目下的一个开源免费Web应用服务器,它主要负责处理基于Java Servlet和JavaServer Pages(JSP)的应用。Tomcat作为一个轻量级的服务器,广泛应用于小型到中型企业级...

    Tomcat 服务器7.0版本

    这个版本是Tomcat服务器的一个重要里程碑,引入了许多改进和新特性,旨在提高性能、安全性和稳定性。 首先,Tomcat 7.0遵循Java Servlet 3.0和JavaServer Pages (JSP) 2.2规范。Servlet 3.0引入了注解配置,允许...

    tomcat服务器7和8

    【标题】:“Tomcat服务器7和8” 在IT领域,Tomcat是一款广泛应用的开源Web服务器和Servlet容器,尤其在Java Web应用开发中占有重要地位。Tomcat 7和8是两个不同版本,每个版本都有其特定的功能和改进,为开发者...

    关于Tomcat服务器优化

    启动内存优化是提高Tomcat服务器性能的重要手段之一。合理的内存设置可以显著提升应用的运行效率。具体操作步骤如下: 1. **找到Tomcat安装目录**: - 登录到Linux服务器后,找到Tomcat的安装路径,通常为`*/...

    tomcat服务器搭建

    【标题】:Tomcat服务器搭建 【描述】:在IT领域,Tomcat是一个广泛应用的Java Servlet容器,主要用于部署和运行Java Web应用程序。本教程将详细阐述如何从零开始搭建一个功能完备的Tomcat服务器,包括下载、安装、...

    tomcat性能优化.pdf

    例如,选择合适的垃圾回收器、调整年轻代和老年代大小、查看GC日志文件等,这些都是提升Tomcat性能的有效手段。 总结来说,Tomcat性能优化是一个复杂的过程,需要结合实际情况,对每个组件和参数进行细致的调整和...

    tomcat7 优化 性能调优

    合理配置JVM参数对于提升Tomcat的整体性能同样非常重要。主要包括: - **JVM内存模型** - **Java栈**:每个线程创建时都会分配一定量的栈空间,用于存储局部变量、方法返回值等。 - **Java堆**:所有线程共享的...

    Tomcat服务器配置、启动分析、Servlet文件配置

    在IT行业中,Tomcat是一个广泛使用的Java Servlet容器,它实现...通过学习这些内容,开发者能够有效地管理Tomcat服务器,优化应用性能,以及提供稳定、安全的Web服务。不断探索和实践,你将在Tomcat的世界里游刃有余。

    tomcat performance tuning 性能调整

    Apache Tomcat性能调整是优化应用程序运行效率的关键环节,特别是在高并发和大数据量的场景下。以下是一些关于Tomcat性能...通过不断的测试和监控,可以找到最佳的配置组合,从而提升Tomcat服务器的运行效率和稳定性。

Global site tag (gtag.js) - Google Analytics