问题:Tomcat线程数是不是越大越好呢?

答案肯定是否定的。

Tomcat的处理速度跟线程数不是完全成正比的,设置不恰当会出现相反的效果。服务的负载计算包括了CPU的使用率和资源等待。

第一种情况,资源等待比较少,那么系统响应时间就是限制在CPU的计算上面了。

这时候线程数应该设置小一点,降低同一时间争抢CPU的线程数,可以提高线程效率,从而提升系统的处理能力。

第二种情况,资源等待比较多,比如文件的读写或者请求数据库等。

这时候线程数就要增加一些,这样子才能提高处理的请求个数,从而提高系统的处理能力。

现实,当线程比较多的时候,cpu在线程切换时消耗的时间随着线程数量的增加越来越大,从而导致系统的处理能力降低。

connectionTimeout="30000"

redirectPort="8443"

maxThreads="600" acceptCount="800"/>

maxThreads:tomcat起动的最大线程数,即同时处理的任务个数,默认值为200

acceptCount:当tomcat起动的线程数达到最大时,接受排队的请求个数,默认值为100

acceptCount一般跟maxThreads设置差不多大就可以了,具体还是需要看访问高峰期,排队的请求是否多,是否会出现timeout请求比较多,进行对应的调整。

总结

因此,线程数没有固定的值,需要通过不断地测试和调整、优化才能找到最适合的值。

如果设的过小,可以保证接收的请求较快相应,但是处理的同时处理的请求个数有限,超过的请求可能就直接被拒绝了。

如果设的过大,就会出现大量超时的现象,也有可能出现java虚拟机资源不够用 ,或者系统文件句柄不够用的情况。

一个tomcat处理不过来我们可以多开几个啊!你们觉得呢?

Tomcat线程数与处理速度的关系的更多相关文章

  1. cpu个数、核数、线程数、Java多线程关系的理解

    cpu个数.核数.线程数.Java多线程关系的理解 2017年12月08日 15:35:37 一 cpu个数.核数.线程数的关系 cpu个数:是指物理上,也及硬件上的核心数: 核数:是逻辑上的,简单理 ...

  2. tomcat高并发优化的参数优化并查看tomcat线程数

    在Tomcat配置文件conf下面 server.xml 中的配置中和连接数相关的参数有: minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10 maxProcessor ...

  3. 聊下并发和Tomcat线程数(错误更正)

    本文前半部分结论存在严重错误,请看最后2015-1-20更新部分. 最近一直在解决线上一个问题,表现是: Tomcat每到凌晨会有一个高峰,峰值的并发达到了3000以上,最后的结果是Tomcat线程池 ...

  4. 聊下并发和Tomcat线程数(Updated)

    最近一直在解决线上一个问题,表现是: Tomcat每到凌晨会有一个高峰,峰值的并发达到了3000以上,最后的结果是Tomcat线程池满了,日志看很多请求超过了1s. 服务器性能很好,Tomcat版本是 ...

  5. 浅谈并发和tomcat线程数

    假设Tomcat每到固定一个时间会有一个高峰,峰值的并发达到了3000以上,最后的结果是Tomcat线程池满了,日志看很多请求超过了1s. 服务器性能很好,Tomcat版本是7.0.54,配置如下 & ...

  6. 并发和Tomcat线程数

    转自 http://zhanjindong.com 最近一直在解决线上一个问题,表现是: Tomcat每到凌晨会有一个高峰,峰值的并发达到了3000以上,最后的结果是Tomcat线程池满了,日志看很多 ...

  7. tomcat 线程数与 mysql 连接数综合调优

    目前线上系统包含 数据收集+数据分析+中心服务,三个均为 tomcat,共用一个mysql服务. 由于tomcat最大线程数200 *3 =600,最大并发时,会有600个jdbc连接.当然这是极端情 ...

  8. spring boot tomcat 线程数 修改初始线程数 统计性能 每百次请求耗时

    [root@f java]# tail -30 nohup.outsearchES-TimeMillisSpent:448P->1602@fT->http-nio-8080-exec-3t ...

  9. 证明线程池ThreadPoolExecutor的核心线程数,最大线程数,队列长度的关系

    关于线程池的几个参数,很多人不是很清楚如何配置,他们之间是什么关系,我用代码来证明一下. package www.itbac.com; import java.util.concurrent.*; p ...

随机推荐

  1. Ajax技术使用补充

    Ajax技术使用补充 一.Ajax发送数据的几种形式 发送字符串或数字 $.ajax({ url:"/ajax_test.html/", type:'POST', data:{'v ...

  2. 堆优化dijstra

    因为spfa没事就被卡一卡,所以堆优化dijstra就显得很重要,在最短路或者其模型里边,最少有一条边是没有被更新过的,也就是它是最短的,同理从这个点开始也有一条边最短,所以每次就找最短的然后松弛操作 ...

  3. Vue-Router 学习笔记

    1:当router-link组件默认渲染成一个a标签,通过to属性指定目标地址,当对应的路由匹配成功,会自动给激活的标签设置class属性值 API 1:to:表示目标路由的链接,当被点击时,内部会立 ...

  4. 016.OpenStack及云计算(面试)常见问题

    什么是云计算? 云计算是一种采用按量付费的模式,基于虚拟化技术,将相应计算资源(如网络.存储等)池化后,提供便捷的.高可用的.高扩展性的.按需的服务(如计算.存储.应用程序和其他 IT 资源).   ...

  5. asp.net core下的如何给网站做安全设置

    首先,我们来看下stack overflow网站的请求头文件: 可以看到一些我们熟悉或是陌生的HTTP头部文件字段.在这里我们在对HTTP输入流的头部文件中,做一些基本的防护.首先要明确,既然我们是对 ...

  6. Django基础(三)

    知识预览 Ajax前戏:json Ajax简介 jquery实现的ajax JS实现的ajax 回到顶部 Ajax前戏:json 什么是json? 定义: JSON(JavaScript Object ...

  7. phpmyadmin 修改执行时间

    D:\xampp\phpMyAdmin\libraries\config.default.php $cfg['ExecTimeLimit'] = 0;

  8. Java笔记(十一)通用容器类和总结

    通用容器类和总结 一.抽象容器类 一)AbstractCollection 提供了Collection接口的基础实现,具体来说,实现了如下方法: public boolean addAll(Colle ...

  9. Charles——前端必备模拟后端数据

    Charles--前端必备模拟后端数据 现在都是前后端分离开发了,前端开发者经常会遇到一个问题如何模拟后端数据来进行开发调试,在这里给大家介绍一个前端神器--Charles. 安装 安装就不赘述了,直 ...

  10. CCNA