`
晨星★~雨泪
  • 浏览: 446945 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

tomcat性能调优(一)

阅读更多

当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。因此一般建议堆的最大值设置为可用内存的最大值的80%。

一次完全的垃圾收集应该不超过 3-5 秒。

你应该使用物理内存的 80% 作为堆大小。

虽然tomcat也可以作web服务器,但其处理静态html的速度比不上apache,且其作为web服务器的功能远不如apache,因此我们想把apache和tomcat集成起来,将html与jsp的功能部分进行明确分工,让tomcat只处理jsp部分,其它的由apache,IIS等这些web服务器处理,由此大大节省了tomcat有限的工作\"线程"。

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

Tomcat4中可以通过修改minProcessors和maxProcessors的值来控制线程数。这些值在安装后就已经设定为默认值并且是足够使用的,但是随着站点的扩容而改大这些值。minProcessors服务器启动时创建的处理请求的线程数应该足够处理一个小量的负载。也就是说,如果一天内每秒仅发生5次单击事件,并且每个请求任务处理需要1秒钟,那么预先设置线程数为5就足够了。但在你的站点访问量较大时就需要设置更大的线程数,指定为参数maxProcessors的值。maxProcessors的值也是有上限的,应防止流量不可控制(或者恶意的服务攻击),从而导致超出了虚拟机使用内存的大小。如果要加大并发连接数,应同时加大这两个参数。web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。

maxThreads
 Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。
 
acceptCount//等待队列
 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。
 
connnectionTimeout
 网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。
 
minSpareThreads//线程递增最小范围
 如果当前没有空闲线程,且没有超过maxThreads,一次性创建的空闲线程数量。Tomcat初始化时创建的线程数量也由此值设置。
 
maxSpareThreads //线程递增最大范围
 一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。

线程数可以大致上用 "同时在线人数*每秒用户操作次数*系统平均操作时间" 来计算。

理解:tomcat在2个条件(没有空闲线程也没有超出maxthreads)下一次创建的空闲线程数量。
      TOMCAT需要启动一些线程来处理请求,就算没有请求,这些线程也不关闭(如果线程数量没有超过maxThreads)
      如果线程不够的话就要增加,但是每次增加不是增加一个而是一批,一批数量就是minSpareThreads到maxSpareThreads之间的取值。
   当仍没有超出maxThreads,且已经达到maxSpareThreads上限的时候(当所有可以使用的处理请求的线程数都被使用时), acceptCount取值为:可以放到处理队列中的请求数,如100。

  最好的方式是多设置几次并且进行测试,观察响应时间和内存使用情况。在不同的机器、操作系统或虚拟机组合的情况下可能会不同,而且并不是所有人的web站点的流量都是一样的,因此没有一刀切的方案来确定线程数的值。

分享到:
评论

相关推荐

    Tomcat性能调优方案

    一、操作系统调优 二、Java虚拟机调优 三、Apache集成Tomcat 四、Apache和Tomcat集群 五、Tomcat自身优化 六、APR库使用

    Tomcat性能调优

    **Tomcat性能调优**是Web服务器领域中的一个重要话题,特别是在处理高并发和大数据量的Web应用时。Tomcat作为一款流行的开源Java Servlet容器,其性能优化能够显著提升应用程序的响应速度和整体效率。以下是对Tomcat...

    Tomcat性能调优实战总结

    Tomcat性能调优是一个涉及多方面技术的复杂过程,主要包括对外部环境的调整和Tomcat自身配置的优化。在实际应用中,我们需要通过压力测试来评估系统的性能表现,然后根据测试结果进行必要的优化。 **1. 外部环境...

    tomcat7性能调优

    【Tomcat7性能调优】是一项关键的任务,它关乎服务器的稳定性和响应速度。Tomcat作为流行的Java应用服务器,其性能优化能显著提升应用程序的运行效率。本文将深入探讨如何针对Tomcat7进行调优。 首先,我们关注的是...

    通向架构师的道路(第四天)之Tomcat性能调优-让小猫飞奔.docx

    【标题】:“通向架构师的道路(第四天)之Tomcat性能调优-让小猫飞奔.docx” 【描述】:本篇文档是关于如何优化Apache Tomcat以提升其性能,使它能够处理更高的并发用户量并实现性能显著提升的技术指南。作者提到...

    Tomcat性能调优方案[参考].pdf

    Tomcat性能调优方案 一、操作系统调优 操作系统调优是指通过调整操作系统的设置来提高服务器的性能。对于操作系统优化来说,需要尽可能地增大可使用的内存容量、提高CPU的频率,保证文件系统的读写速率等。通过...

    使用visualvm工具进行tomcat性能调优和性能监控.docx

    使用 VisualVM 工具进行 Tomcat 性能调优和性能监控 本文主要介绍了如何使用 VisualVM 工具来进行 Tomcat 的性能调优和性能监控。下面将详细介绍相关知识点: 一、JDK 内存优化 在 Tomcat 中,默认的堆大小为 128...

    tomcat7 优化 性能调优

    ### Tomcat7 优化与性能调优 #### 一、引言 在现代Web应用开发中,Apache Tomcat因其轻量级、灵活且易于部署的特点成为开发者们的首选应用服务器之一。然而,在面对高并发访问场景时,如何有效地优化Tomcat以提高...

    JVM优化3(Tomcat参数调优,JVM参数调优,jvm字节码,代码优化).pdf

    总结而言,该文档覆盖了Tomcat服务器优化、JVM参数调整、字节码级别的优化以及代码层面的优化等多个方面,旨在通过一系列配置和操作,提升Java应用以及Web服务器的性能和效率。同时,也提到了性能测试的重要性和在...

    Tomcat 调优及 JVM 参数优化

    这篇文章将深入探讨Tomcat调优与JVM参数优化的各个方面,帮助你提升服务器性能。 首先,我们来了解一下Tomcat调优的基础知识。Tomcat调优主要包括以下几个方面: 1. **线程池配置**:调整`maxThreads`和`...

    Tomcat性能调优及配置技巧

    ### Tomcat性能调优及配置技巧 #### 一、Tomcat设置Gzip,减少网络流量 Gzip是一种常用的压缩算法,通过将响应的数据进行压缩,可以显著减少数据在网络中的传输量,从而加快页面加载速度,提升用户体验。在Tomcat...

Global site tag (gtag.js) - Google Analytics