阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Tomcat中常用的调优

425次阅读
没有评论

共计 3123 个字符,预计需要花费 8 分钟才能阅读完成。

在平时使用 Apache、Nginx 或者是其他的提供相关 Web 服务软件中都有相应的性能模块调优修改,而在 Tomcat 中也有相应的性能调优修改的配置,在这里就简单的说一说比较常用的几个 Tomcat 中的性能调优配置参数,在 Tomcat 中调优参数可以分为 2 个部分:1、在 Tomcat 中的二进制文件夹 bin 目录下的 catalina.sh 或 catalina.bat 中添加修改配置 tomcat 使用运行参数;2、在 Tomcat 的 conf 文件夹中配置修改 server.xml 中的容器。

一、tomcat 使用运行参数 catalina.sh 调优

修改 catalina.sh 脚本,添加修改一下 JAVA_OPTS 变量参数:
JAVA_OPTS=”$JAVA_OPTS -Xms3072m -Xmx3072m -Xmn1536m\
-XX:PermSize=384m -XX:MaxPermSize=384m -XX:+UseConcMarkSweepGC\
-XX:+UseCMSCompactAtFullCollection -XX:CMSMaxAbortablePrecleanTime=500\
-XX:+CMSClassUnloadingEnabled -XX:+CMSClassUnloadingEnabled -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager”

-server:tomcat 默认是以一种叫 java –client 的模式来运行的,server 即意味着你的 tomcat 是以真实的 production 的模式在运行的性能更优
-Xms–Xmx:JVM 内存设置,JVM 初始分配的堆内存由 -Xms 指定,默认是物理内存的 1 /64;JVM 最大分配的堆内存由 -Xmx 指定,默认是物理内存的 1 /4。默认空余堆内存小于 40% 时,JVM 就会增大堆直到 -Xmx 的最大限制;
 空余堆内存大于 70% 时,JVM 会减少堆直到 -Xms 的最小限制,建议把最大和最小设置成一样有利于 JVM 的垃圾回收机制
–Xmn: 设置新生代,整个堆大小 = 新生代大小 + 年老代大小 + 持久代大小。此值对系统性能影响较大,Sun 官方推荐配置为整个堆的 3 /8
-XX: 每当 JDK 版本升级时,你的 JVM 都会使用最新加入的优化技术
-XX:PermSize: 设置非堆内存初始值,默认是物理内存的 1 /64
-XX:MaxPermSize: 设置永生代内存初始大小,即最大非堆内存的大小,默认是物理内存的 1 /4
-XX:+UseConcMarkSweepGC:CMS gc,这一特性只有 jdk1.5 即后续版本才具有的功能,它使用的是 gc 估算触发和 heap 占用触发
-XX:+UseCMSCompactAtFullCollection: 在使用 concurrent gc 的情况下, 防止 memoryfragmention, 对 live object 进行整理, 使 memory 碎片减少
-XX:+UseParNewGC: 对新生代采用多线程并行回收,这样收得快
-XX:+CMSClassUnloadingEnabled:CMS 收集器默认不会对永久代进行垃圾回收
-XX:CMSMaxAbortablePrecleanTime:CMS GC 需要经过较多步骤才能完成一次 GC 的动作,在 minor GC 较为频繁的情况下,很有可能造成 CMS GC 尚未完成,从而造成 concurrent mode failure, 可以通过 -XX: CMSMaxAbortablePrecleanTime 设置较小的值,以保证 CMS GC 尽快完成对象的回收,避免 concurrent mode failure 的现象,尤其是在 JDK 5.0+、6.0+ 的有些版本在 CMS-concurrent-abortable-preclean-start 和 CMS-concurrent-abortable-preclean 这两步间有可能会耗费很长的时间,导致可回收的旧生代的对象很长时间后才被回收,这是 Sun JDK CMS GC 的一个 bug

二、Tomcat 的 server.xml 配置文件

在 Tomcat 中的常用配置性能调优配置如下:
    <Connector port=”8080″ protocol=”HTTP/1.1″
              connectionTimeout=”15000″ maxThreads=”1000″ minSpareThreads=”100″
              maxProcessors=”1200″ acceptCount=”1000″
              enableLookups=”false” compression=”on”
              redirectPort=”8443″ />

connectionTimeout: 超时时间,单位毫秒,默认值为 60000,即 60 秒
maxThreads:tomcat: 起动的最大线程数,默认值为 200
minSpareThreads:Tomcat 初始化时创建的线程数。默认值 4
maxProcessors:Tomcat 运行时允许创建的最大线程数,默认值为 75,一般根据实际生产环境修改
acceptCount: 当 tomcat 起动的线程数达到最大时,接受排队的请求个数,默认值为 100,web server 允许的最大连接数还受制于操作系统的内核参数设置,通常 Windows 是 2000 个左右,Linux 是 1000 个左右,通常该值设置同 maxThreads 一样
enableLookups: 是否反查域名,默认值为 true。为了提高处理能力,应设置为 false
compression: 压缩传输,取值 on/off/force,默认值 off
redirectPort:SSL 的重定向端口,默认 8443

  总之,在平时需要根据实际生产情况修改,在 Tomcat 合理的性能调优后,会对 Tomcat 的总体性能会极大的提升。

更多 Tomcat 相关教程见以下内容

CentOS 6.6 下安装配置 Tomcat 环境  http://www.linuxidc.com/Linux/2015-08/122234.htm

RedHat Linux 5.5 安装 JDK+Tomcat 并部署 Java 项目  http://www.linuxidc.com/Linux/2015-02/113528.htm 

Tomcat 权威指南(第二版)(中英高清 PDF 版 + 带书签)  http://www.linuxidc.com/Linux/2015-02/113062.htm 

Tomcat 安全配置与性能优化 http://www.linuxidc.com/Linux/2015-02/113060.htm 

Linux 下使用 Xshell 查看 Tomcat 实时日志中文乱码解决方案 http://www.linuxidc.com/Linux/2015-01/112395.htm 

CentOS 64-bit 下安装 JDK 和 Tomcat 并设置 Tomcat 开机启动操作步骤 http://www.linuxidc.com/Linux/2015-01/111485.htm 

Ubuntu 16.04 下安装 Tomcat 8.5.9  http://www.linuxidc.com/Linux/2017-06/144809.htm

Tomcat 中 session 的管理机制  http://www.linuxidc.com/Linux/2016-09/135072.htm

Tomcat 的详细介绍:请点这里
Tomcat 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-09/147211.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3123字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7990565
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-8:有了NAS你可以干什么?软件汇总篇

星哥带你玩飞牛NAS-8:有了NAS你可以干什么?软件汇总篇

星哥带你玩飞牛 NAS-8:有了 NAS 你可以干什么?软件汇总篇 前言 哈喽各位玩友!我是是星哥,不少朋友私...
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸 前言 作为天天跟架构图、拓扑图死磕的...
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...
升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY 公司之前花钱购买的 ssl 证书快...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...
国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号 AI 知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率 大家好,我是星哥,...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击 PHP-FPM(FastCGl Process M...
免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

  免费无广告!这款跨平台 AI RSS 阅读器,拯救你的信息焦虑 在算法推荐主导信息流的时代,我们...