今天来总结一下tomcat的一些优化的方案,由于本人才疏学浅,写的不好,勿喷!

tomcat对于大多数从事开发工作的童鞋应该不会很陌生,通常做为默认的开发环境来为大家服务,不过tomcat默认的一些配置对于生产环境来说是相当不够滴,特别对于内存以及线程的配置方面都很有可能成为日后性能的瓶颈。

接下来咱们就聊聊tomcat的优化,从内存以及线程两个方面来谈:

1.内存方面

tomcat的内存优化操作起来就比较简单了

如果是linux环境的话设置如下:

修改TOMCAT_HOME/bin/catalina.sh,在前面加入

JAVA_OPTS="-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m -Duser.timezone=Asia/Shanghai"

如果是windows环境的话设置如下:

修改TOMCAT_HOME/bin/catalina.bat,在前面加入

set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m

2.线程方面

在server.xml中 有以下配置:

<Connectorport="8080" protocol="HTTP/1.1" maxThreads="600" minSpareThreads="100"
maxSpareThreads="500" acceptCount="700"connectionTimeout="20000" />

先来了解一下各属性内容:

maxThreads="X" 表示最多同时处理X个连接

minSpareThreads="X" 初始化X个连接

maxSpareThreads="X" 表示如果最多可以有X个线程,一旦超过X个,则会关闭不在需要的线程

acceptCount="X" 当同时连接的人数达到maxThreads时,还可以排队,队列大小为X.超过X就不处理

这里是http connector的优化,如果使用apache和tomcat做集群的负载均衡,并且使用ajp协议做apache和tomcat的协议转发,那么还需要优化ajp connector。

<Connectorport="8009" protocol="AJP/1.3" maxThreads="600" minSpareThreads="100"
maxSpareThreads="500" acceptCount="700"connectionTimeout="20000"
redirectPort="8443" />

由于tomcat有多个connector,所以tomcat线程的配置,又支持多个connector共享一个线程池。

首先。打开/conf/server.xml,增加

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="20" maxIdleTime="60000" />

最大线程500(一般服务器足以),最小空闲线程数20,线程最大空闲时间60秒。

然后,修改<Connector ...>节点,增加executor属性,executor设置为线程池的名字:

<Connectorexecutor="tomcatThreadPool" port="80" protocol="HTTP/1.1"
connectionTimeout="60000" keepAliveTimeout="15000"
maxKeepAliveRequests="1" redirectPort="443" />

可以多个connector公用1个线程池,所以ajp connector也同样可以设置使用tomcatThreadPool线程池。

转自

浅谈tomcat中间件的优化

https://www.toutiao.com/i6499659893543272974/

转载于:https://www.cnblogs.com/paul8339/p/8056215.html

浅谈tomcat中间件的优化【转】相关推荐

  1. 浅谈tomcat优化

    前言 对于JavaWeb开发人员而言,Tomcat已成为默认的web服务器,但是在生产环境下使用Tomcat部署应用,我们如果采用Tomcat默认的配置,尤其是内存和线程的配置,其配置都很低,容易成为 ...

  2. 【浅谈DOM事件的优化】

    浅谈DOM事件的优化 在 JavaScript 程序的开发中,经常会用到一些频繁触发的 DOM 事件,如 mousemove.resize,还有不是那么常用的鼠标滚轮事件:mousewheel (在 ...

  3. 你的驱动听话吗 浅谈ATI显卡驱动优化

    你的驱动听话吗 浅谈ATI显卡驱动优化内容简介:对于显卡稍有了解的朋友一定不会陌生ATI显卡.昔日,ATI显卡凭借其优秀的视频回放能力和出色的着色渲染能力俘获众多DIY爱好者的心,甚至有网友将ATI的 ...

  4. 浅谈网站访问速度优化

    周末女朋友公司的智慧医保项目上线了,但是web端访问速度比较慢,然后就来问问我有没有好的优化方案.于是就这篇[浅谈网站访问速度优化]就诞生了. 1.备案:好多个人网站为了方便,往往不喜欢备案,就把网站 ...

  5. tomcat 优化_浅谈Tomcat服务器优化方法

    对于JavaWeb开发人员而言,Tomcat已成为默认的web服务器,但是在生产环境下使用Tomcat部署应用,我们如果采用Tomcat默认的配置,尤其是内存和线程的配置,其配置都很低,容易成为性能瓶 ...

  6. 浅谈Tomcat服务器优化方法

    对于JavaWeb开发人员而言,Tomcat已成为默认的web服务器,但是在生产环境下使用Tomcat部署应用,我们如果采用Tomcat默认的配置,尤其是内存和线程的配置,其配置都很低,容易成为性能瓶 ...

  7. 浅谈微博SEO搜索优化小技巧

    [微博营销] 时下最热门的互动平台莫过于微博了,微博的火爆,为每天生活在互联网中的人提供了一个全新的社交模式.微博也正由于其良好的互动性及操作的简单性吸引了大量的用户聚集.面对如此庞大的市场,新浪.网 ...

  8. MYSQL优化浅谈,工具及优化点介绍,mysqldumpslow,pt-query-digest,explain等

    MYSQL优化浅谈 msyql是开发常用的关系型数据库,快速.稳定.开源等优点就不说了. 个人认为,项目上线,标志着一个项目真正的开始.从运维,到反馈,到再分析,再版本迭代,再优化- 这是一个漫长且考 ...

  9. 浅谈Hive SQL的优化

    目前团队的数据处理都在Hadoop集群上, 一是因为需要处理的数据量都是亿级的,这种规模的数据适合用Hadoop集群并行处理: 二是免除了分库分表给查询处理上带来的麻烦.Hive是基于Hadoop的一 ...

最新文章

  1. 网站项目必备——12款白富美型 jQuery 图片轮播插件
  2. JQueryMiniUI按照时间进行查询
  3. oracle 数据库开发应用实例,招生录取系统,oracle与plsql教程打包下载
  4. Redis在windows下的安装
  5. java实例变量可以被覆盖吗_Java继承覆盖实例变量
  6. 未找到要求的 from 关键字_性能优化|这恐怕是解释Explain关键字最全的一篇文章
  7. 字符串substring方法在jkd6,7,8中的差异
  8. leetcode1438. 绝对差不超过限制的最长连续子数组
  9. 怎样用计算机算屋面的坡度,屋顶坡度要怎么算,一般是多少?
  10. 数据结构 —— 递归和树
  11. AI说,它可以把你变成个游戏 | 3D人体模型 · CVPR
  12. MVC 异常处理机制
  13. 对MySQL数据库日志文件进行维护
  14. java工程师面试几百问_不是吧?面试被问了几百遍的JVM,你还搞不清楚?
  15. SM3密码杂凑算法和SM2数字签名算法的PDF签名方法
  16. Unity3d C#获取海康摄像头直播视频流预览萤石截图实现
  17. 我读《非暴力沟通》- 马歇尔 *卢森堡 - 让爱融入生活
  18. 解决 remote Support for password authentication was removed on August 13, 2021.
  19. Java毕设项目-学生档案管理系统
  20. 结构化设计向导与IP核生成工具——IP核生成时.xaw与.xco的区别

热门文章

  1. Android Weekly Notes Issue #225
  2. WCF 之 消息契约(MessageContract)
  3. Ubuntu Terminal Shortcut
  4. Codeforces Gym 100187M M. Heaviside Function two pointer
  5. 关于项目管理的一些想法
  6. Nginx 入门级配置
  7. 联海网站开发-操作说明-会员系统及诵读之星
  8. windows server 2008 系列讲座三部曲--在线讲座预告
  9. HDFS写入和读取过程
  10. 深度学习进行目标识别的资源列表