Tomcat性能调优方案_第1页
Tomcat性能调优方案_第2页
免费预览已结束,剩余3页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、操作系统调优 对于操作系统优化来说, 是尽可能的增大可使用的内存容量、 提高 CPU 的频率, 保证文件系统的读写速率等。经过压力测试验证,在并发连接很多的情况下, CPU 的处理能力越强,系统运行速度越快。 。 【适用场景】 任何项目。 二、 Java 虚拟机调优 应该选择 SUN 的 JVM ,在满足项目需要的前提下,尽量选用版本较高的 JVM , 一般来说高版本产品在速度和效率上比低版本会有改进。 比性能提高了近 10%-20%,比性能提高 25%-75%。 因此对性能要求较高的情况推荐使用 。 【适用场景】 任何项目。 三、 Apache 集成 Tomcat Web 服务器专门处理

2、 HTTP 请求,应用服务器是通过很多协议为应用提供商业逻 辑。虽然 Tomcat 也可以作 web 服务器,但其处理静态 html 的速度比不上 Apache, 且其作为 web 服务器的功能远不如 Apache,因此把 Apache 和 Tomcat 集成起来, 将 html和 Jsp 的功能部分进行明确分工,让 Tomcat 只处理 Jsp 部分,其他的由 Apache, IIS等 web 服务器去处理,由此大大提高 Tomcat 的运行效率。 如果一个项目中大量使用了静态页面、 大量的图片等, 并有有较大的访问量, 推 荐使用 Apache 集成 Tomcat的方式来提高系统的整体性能

3、。 Apache 和 Tomcat 的整合有三种方式,分别是 JK、http_proxy 和 ajp_proxy.其中 JK方式是最常见的方式,JK 本身有两个版本分别是 1 和 2,目前 1 最新版本是 1.2.8,而版本 2 早已经废弃了。http_proxy 是利用 Apache 自带的 mod_proxy 模块 使用代理技术来连接 Tomcat。 Ajp_proxy 连接方式其实跟 http_proxy 方式一样, 都是由 mod_proxy 所提供的功能。只需要把配置中的,同时连接的是 Tomcat 的 AJP Conn ector 所 在的端口。 相对于 JK 的连接方式,后两种在

4、配置上比较简单的,灵活性方面也一点都不逊 色。但就稳定性而言不像 JK 这样久经考验,所以建议采用 JK 的连接方式。 Apache+JK+Tomcat 配置: 使用到的两个配置文件分别是:和。其中是 Apache 服务器的配置文件,用来加 载 JK 模块以及指定 JK 配置文件信息。是到 Tomcat 服务器的连接定义文件。 【部署步骤】 1. 安装 Apache 服务器 2. 部署 Tomcat 3. 将拷贝到 modules 目录下面 4. 修改和 【适用场景】 大量使用静态页面的应用系统。 四、 Apache 和 Tomcat 集群 对于并发要求很高的系统,我们需要采取负载均衡的方式来

5、分担 Tomcat 服务器 的压力。负载均衡实现大概有四种:第一是通过 DNS,但只能简单的实现轮流 分配,不能处理故障;第二是基于 MS IIS,wi ndows 2003 server 本身就带了负载 均衡服务; 第三是硬件方式, 通过交换机功能或专门的负载均衡设备来实现; 第 四种是软件的方式, 通过一台负载均衡服务器进行, 上面安装软件。 使用 Apache Httpd Server做负载均衡器,Tomcat 集群节点使用 Tomcat 就可以做到上述第四种 方式,这种方式比较灵活, 成本相对比较低, 另外一个很大的优点就是可以根据 应用情况和服务器的情况做一些灵活的配置。所以推荐使用

6、 Apache+Tomcat 集群 来实现负载均衡。 采用 Tomcat 集群可以最大程度的发挥服务器的性能,可以在配置较高的服务器 上部署多个 Tomcat,也可以在多台服务器上分别部署 Tomcat,Apache 和 Tomcat 整合的方式还是 JK 方式。经过验证,系统对大用户量使用的响应方面, Apache+3Tomccat 集群 Apache+2Tomcat 集群 Apache 集成 Tomcat 单个 Tomcato 并且采用 Apache+多 Tomcat 集群的部署方式时,如果一个 Tomcat 出现 宕机,系统可以继续使用, 所以在硬件系统性能足够优越的情况下, 需要尽量发

7、 挥软件的性能,可以采用增加 Tomcat 集群的方式。 Apache+Tomcat 集群的方式使用到得配置文件有、。其中是对 JK 信息的配置, 包括 JK 的路径等,配置文件是对 Tomcat 服务器的连接定义文件。 Apache 需要调整运行参数,这样才能构建一个适合相应网络环境的 web 服务。 其中可进行的优化配置如下: 1. 设置 MPM (Multi Processing Modules 多道处理模块)。ThreadPerChild,这个参 数用于设置每个进程的线程数,在 Windows 环境下默认值是 64,最大值是 1920, 建议 设置为 100-500 之间 ,服 务器

8、性能 高的话 值大 一些 ,反 之小一 些。 MaxRequestPerChild 表示每个子进程能够处理的最大请求数。这个参数的值更大 程度上取决于服务器的内存, 如果内存比较大的话可以设置为很大的参数, 否则 设置一个较小的值,建议值是 3000. 2. 关闭 DNS 和名字解析 HostnameLookups off 3. 打开 UseCanonicalName 模块 UseCanonicalName on 4. 关闭多余模块 一般来说,不需要加载的模块有, 、 . 5. 打开 KeepAlive 支持 KeepAlive on, KeepAliveTimeout 15 MaxKeepA

9、liveRequests 1000 根据实际经验,通过 Apache 和 Tomcat 集群的方式提高系统性能的效果十分明 显,这种方式可以最大化的利用硬件资源,通过多个 Tomcat 的处理来分担单 Tomcat 时的压力。 【部署步骤】 1. 安装 Apache 服务器 2. 部署 Tomcat 集群,即多个相同的 Tomcato 3. 将拷贝到 modules 目录下面 4. 修改、和 【适用场景】 并发用户量及在线使用用户数量比较高的系统。 五、Tomcat 自身优化 1. JVM 参数调优:-Xms表示 JVM 初始化堆的大小,-Xmx表示 JVM 堆的最大值。 这两个值的大小一般根

10、据需要进行设置。 当应用程序需要的内存超 出堆的最大值时虚拟机就会提示内存溢出, 并且导致应用服务崩溃。 因此一般建 议 堆 的 最 大 值 设 置 为 可 用 内 存 的 最 大 值 的 80%。 在 中 , 设 置 JAVA_OPTS=-Xms256m -Xmx512m,表示初始化内存为 256MB,可以使用的最 大内存为 512MB。 2. 禁用 DNS 查询 当 web 应用程序向要记录客户端的信息时,它也会记录客户端的 IP 地址或者 通过域名服务器查找机器名转换为 IP 地址。DNS 查询需要占用网络,并且包括 可能从很多很远的服务器或者不起作用的服务器上去获取对应的 IP 的过程

11、,这样会消耗一定的时间。为了消除 DNS 查询对性能的影响我们可以关闭 DNS 查询, 方式是修改文件中的 enableLookups 参数值: Tomcat4 Tomcat5 disableUploadTimeout=true/ 3. 调整线程数 通过应用程序的连接器(Connector)进行性能控制的的参数是创建的处理请求 的线程数。Tomcat 使用线程池加速响应速度来处理请求。在 Java 中线程是程序 运行时的路径,是在一个程序中与其它控制线程无关的、 能够独立运行的代码段。 它们共享相同的地址空间。 多线程帮助程序员写出 CPU 最大利用率的高效程序, 使空闲时间保持最低,从而接受

12、更多的请求。 Tomcat4 中可以通过修改 minProcessors 和 maxProcessors 的值来控制线程数。 这 些值在安装后就已经设定为默认值并且是足够使用的, 但是随着站点的扩容而改 大这些值。minProcessors 服务器启动时创建的处理请求的线程数应该足够处理一 个小量的负载。也就是说,如果一天内每秒仅发生 5 次单击事件,并且每个请求 任务处理需要 1 秒钟,那么预先设置线程数为 5 就足够了。 但在你的站点访问量 较大时就需要设置更大的线程数,指定为参数 maxProcessor 啲值。maxProcessors 的值也是有上限的,应防止流量不可控制(或者恶意的

13、服务攻击) ,从而导致超 出了虚拟机使用内存的大小。如果要加大并发连接数,应同时加大这两个参数。 web server 允许的最大连接数还受制于操作系统的内核参数设置,通常 Win dows 是 2000 个左右, Linux 是 1000 个左右。 在 Tomcat5 对这些参数进行了调整,请看下面属性: maxThreads Tomca 使用线程来处理接收的每个请求。这个值表示 Tomcat 可创建 的最大的线程数。 acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处 理队列中的请求数,超过这个数的请求将不予处理。 connnectionTimeout 网络

14、连接超时,单位:毫秒。设置为 0 表示永不超时,这样 设置有隐患的。通常可设置为 30000 毫秒。 min SpareThreads Tomca 初始化时创建的线程数。 maxSpareThreads 一旦创建的线程超过这个值, Tomcat 就会关闭不再需要的 socket 线程。 最好的方式是多设置几次并且进行测试,观察响应时间和内存使用情况。在不 同的机器、操作系统或虚拟机组合的情况下可能会不同,而且并不是所有人的 web 站点的流量都是一样的,因此没有一刀切的方案来确定线程数的值。 Connector port=80 maxSpareThreads=75 maxThreads=150

15、 enableLookups=false minSpareThreadacceptCount=100 debug=0 connectionTimeout=20000 六、APR 库使用 Tomcat 中使用 APR 库, 其实就是在 Tomcat 中使用 JNI 的方式来读取文件以及进 行网络传输。可以大大提升 Tomcat 对静态文件的处理性能,同时如果你使用了 HTTPS 方式传输的话,也可以提升 SSL 的处理性能。 一般在 Windows 下,可以直接下载编译好的二进制版本的 dll 库文件来使 Tomcat 启用APR,一般建议拷贝库文件到 Tomcat 的 bin 目录下。而在 Linux 下,可以 直接解压和安装 bin 目录下的文件,编译之前要确保 apr 库已经安装。 怎么才能判断 Tomcat 是否已经启用了 APR 库呢方法是通过看 Tomcat 的启动日 志: 如果没有启用 APR,则启动日志一般有这么一条: start 如果启用了 APR,则这条日志就会变成: start 下载地址: 调优综述 根据以上分析,如果想要 Tomcat 达到最优的效果,首先要争取使得操作系统以 及网络资源达到最优,并且最好使用高版本

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论