Tomcat优化(心得经验)

【建议收藏】Tomcat 优化总结 Tomcat作为一个稳定、高性能且易于使用的Servlet容器,适用于各种类型的Java Web应用程序,并且在许多不同的应用场景中都得到了广泛的应用和认可。例如企业级Web应用程序、电子商务平台、 教育和培训项目等。后端开发人员通常需要针对 Tomcat 来做优化,V 哥今天整理了 Tomcat的优化策略给你参考,上干货!(备注:有想跳槽的兄弟文末联系)。Tomcat作为Java应用程序运行在JVM上,通过调整JVM参数来优化内存、垃圾回收等方面的性能。这包括设置堆大小、垃圾回收算法、线程池参数等。通过- 阅读详情
 

 

 

最近用httpclient做performance testing时,发现当线程加到150时服务端就会抛出socket资源用尽的错误,根本没法再往上加,响应的速度也是相当的慢,后来经过研究,发现在server.xml中修改以一部分,增加节点数目,可以很好的提高性能:

  <Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150"

   minSpareThreads="30" maxSpareThreads="75" enableLookups="false"

   redirectPort="8443" acceptCount="100" connectionTimeout="20000"

   disableUploadTimeout="true" />

  以上为默认配置,适当修改红色字体部分的值,几个参数意义分别为:

maxThreads:Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。

acceptCount:指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。

connnectionTimeout:网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。

minSpareThreads:Tomcat初始化时创建的线程数。

maxSpareThreads:一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程

  对于Connector 8443也有相应的设置,如果同时会用到http与https,应合理分配这两个数据.如果只用到其中的一个,可以将另外一个尽量设置小一点.

  此外,还可以给Java虚拟机设置使用的内存来提高性能,Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大。

  Windows下,在文件{tomcat_home}/bin/catalina.bat,Unix下,在文件{tomcat_home}/bin/catalina.sh的前面,增加如下设置:

  JAVA_OPTS='-Xms【初始化内存大小】 -Xmx【可以使用的最大内存】'

  需要把这个两个参数值调大。例如:

  JAVA_OPTS='-Xms256m -Xmx512m'

 

  测试发现,当tomcat线程数增大,但没有超过最大线程数时,平均响应时间会增大,但这不意味着tomcat在线程增多时响应速度变慢.在测试数据中,我们发现,由于线程数增多,在请求时需要排队,导致一部分请求会一直排队,随着线程数的增多,排队等待的最大时间也会越来越大,而这些大数据才是导致平均响应时间变大的罪魁祸首.响应时间大于3s的请求占总请求的比例一直维持在3%-5%.

 

 

补充:在代码方便,代码中的System.out语句会严重影响代码执行的效率,就将这些为必要的语句在调试完成之后全部删除以提高效率.

Spring Boot中Tomcat配置 在某些情况下,我们可能需要自定义Tomcat的连接器,以满足特定的安全需求或性能优化需求。这时,我们可以通过编写配置类来实现。@Bean// 可以添加其他自定义配置在这个配置类中,我们创建了一个自定义的Tomcat连接器,并将其添加到TomcatServletWebServerFactory中。通过这种方式,我们可以更灵活地控制Tomcat的行为。Tomcat连接器配置详解在Spring Boot项目中配置Tomcat是一个既简单又复杂的过程。 阅读详情

相关推荐

银河麒麟V11 + KVM/QEMU + GT 710 GPU直通 Win10 完整操作流程文档

宿主机:RTX 5080专门运行ollama大模型服务,通过SSH/VNC远程管理Win10虚拟机:GT 710直通,物理键盘专属,通过物理显示器处理视频应用硬件隔离:两个系统完全隔离,互不干扰,性能最大化两种不同的直通方式直通方式 配置方法 设备在宿主机的状态 典型应用场景PCIe设备直通 vfio-pci.ids=10de:128b,10de:0e0f 设备完全从宿主机消失,被vfio-pci驱动接管 GPU、网卡、NVMe硬盘。

weixin_45285654的博客 1155

linux 查看连接数,并发数

软连接  ln -s /home/ictfmcg/data/photo /var/jtnd/data/photo tomcat 6的Connector配置如下  <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPo

Code-lover's Learning Notes 3124

两种方法解决这个问题OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.

两种方法解决这个问题OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.在进行深度学习比如在训练yolov8模型时,在加载训练集和验证集时会报以下那个错误时会导致模型训练中断,有以下两个方法去解决这个问题,来使模型正常训练。

weixin_73044854的博客 2万+

多方面,全访问的剖析Tomcat十大线程和四大通道

tomcat服务器在JavaEE项目中使用率非常高,所以在生产环境对tomcat的优化也变得非常重要了。 本专题课在调优压测时我们选择tomcat9,那我们为什么选择9版本呢?因为9的性能更高,更稳定。 在源码研究演示过程中我会选择tomcat7,8,9三套源码进行比较演示性能的差异。 一、Tomcat配置优化 对于tomcat的优化,主要是从2个方面入手,一是,tomcat自身的配置,另一个是tomcat所运行的jvm虚拟机的调优。 1、部署安装tomcat9 1、下载并安装:https:/.

smart_an的专栏 4126

OFDM时频脉冲形状与子载波正交性的理解

从多载波调制的角度来理解子载波间正交,首先要明确OFDM默认的脉冲成型是时域矩形窗,时域上每个子载波 ej2πfnte^{j2πf_nt}ej2πfn​t 都被一个矩形窗脉冲gT(t)g_T(t)gT​(t)成型。其次,OFDM子载波间隔 等于 OFDM符号周期的倒数,这是子载波正交的条件。 ​ 根据时频脉冲形状,可以从时域上理解如左图(注意是矩形脉冲 乘 复指数),从频域上理解如右图(sinc脉冲 卷 频点)。 ​

weixin_43803202的博客 2215

手把手教你复现KDD 2024时空预测顶会论文:以UniST和ImputeFormer为例的代码实战与避坑指南

本文详细指导如何复现KDD 2024顶会论文中的UniST和ImputeFormer模型,涵盖环境配置、数据处理、模型训练及评估等关键步骤。通过实战案例和避坑指南,帮助研究者掌握时空预测与插补技术,提升在智慧城市、交通管理等领域的应用能力。

weixin_29204205的博客 279

Tomcat的优化

Tomcat优化、系统内核优化、jvm

guyunbingyb的博客 991

LVGL 丝滑菜单3(Silk Menu)

h。

摸鱼专家 92

Tomcat部署及优化

什么是Tomcat以及它的功能组件;Tomcat的安装部署以及优化;常见的多实例部署

2201_75444658的博客 1540

Visual Studio Code + MCP Server + Claude Code 三件套进行 ABAP 开发

本文介绍了如何在Visual Studio Code中利用Claude Code和SAP官方提供的MCP Server进行ABAP开发。作者分享了19年ABAP开发经验,从手动编码到如今通过自然语言生成高质量代码的技术演进。详细说明了配置步骤:启用ADT MCP Server、安装Claude Code扩展、配置.claude.json文件,并验证MCP Server的14个功能。通过实例演示了如何用自然语言指令让Claude Code创建包含冒泡排序实现和单元测试的ABAP类,展示了MCP Server在

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1301

【Python机器学习】零基础掌握RFECV特征选择

通过应用算法,有效地识别了影响购买意愿的关键特征(浏览时长和点击数)和历史货币流通的主要因素(年代、人口和货币流通量)。这样的特征选择不仅提高了模型的解释能力,还可能用于电商推荐系统和历史研究的优化。优点总结,这种方法可以高效地找出对目标变量有最大影响的特征,进而可以用于各种实际应用场景,如电商推荐和历史研究。优点名称对应描述说明高解释性易于理解哪些特征最为重要泛化性能强通过交叉验证提高模型的稳健性应用场景多样可用于电商、金融、历史研究等多个领域。

Mr数据杨 1999

tomcat 使用 memcached管理session ,并且实现统一登录

为什么80%的码农都做不了架构师?>>> ...

weixin_34050427的博客 114

北京大学MuMo多模态肿瘤分类模型复现与迁移学习

本项目复现了北京大学MuMo多模态肿瘤分类模型,并针对特定医学影像数据集进行迁移学习。MuMo模型通过整合CT、MRI、PET等多模态医学影像数据,显著提升了肿瘤分类准确性。项目内容包括环境配置(Python 3.8+、PyTorch 1.9+)、数据预处理(DICOM/NIfTI格式处理、强度归一化)、多模态数据集类实现,以及训练验证测试集划分。关键特点是采用MONAI医学影像处理库,实现三维医学影像的标准化预处理流程,并支持多种模态数据的并行加载与联合训练,为后续模型复现和迁移学习奠定基础。

max500600的博客 1241

性能优化心得

系统的性能的好坏由很多因素决定,我从实际项目经验中总结大概有如下几点: 1sql,hql查询语句编写的好坏 2代码中递归,循环嵌套未正确使用 3数据库及连接池设置未进行优化 4tomcat设置未进行优化 5框架的性能制约 如struts2 关于sql语句和代码引起的性能问题,本篇暂且不谈。这里仅谈谈如何优化系统运行的环境,来提高系统的性能。     从我们目前的公安项目情况来看,服务

keydot2007的专栏 1549

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

基于tomcat,mysql项目性能优化的几个切入点

       好记性不如烂笔头,遗憾地发现自己最近的遗忘率实在是高啊,很多之前明明掌握的一些技能,小细节以及心得,因为没有及时反思,记录,结果不得不花费大量的时间从头梳理。笨拙的人貌似经常容易在一些简单的事情中陷入反复的周旋。     言归正传吧,说到性能优化,大道理大家都懂,真遇到问题时候大不了google嘛,正是这样一种观望的心态造成了自己始终没法把这方面的知识纳入自己的技术体系中,上周所负责

技术收藏 1333

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

tomcat服务器维护心得

作为一个java开发菜鸟,维护了几个月公司内部项目,项目是通过tomcat6.0t发布的,服务器使用linux操作系统,数据库是oracle10g,框架采用标准的SSH框架,开发使用MyEclipse8.5,过程很纠结,在这里吧这段时间遇到的问题和解决方法分享一下。 1.tomcat内存修改 通过以下现象,可以初步判断JVM内存不足: 程序抛异常,java.lang.OutOfMemoryE

football98的专栏 3704

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

tomcat,mysql,性能优化

基于tomcat,mysql项目性能优化的几个切入点 关键字: tomcat,mysql,性能优化 好记性不如烂笔头,遗憾地发现自己最近的遗忘率实在是高啊,很多之前明明掌握的一些技能,小细节以及心得,因为没有及时反思,记录,结果不得不花费大量的时间从头梳理。笨拙的人貌似经常容易在一些简单的事情中陷入反复的周旋。 言归正传吧,说到性能优化,大道理大家都懂,真遇到问题时候大不了...

fangyong2006的专栏 318

最近做面试官的经验心得

公司最近想找个初中级java,一到三年的那种,老大安排我筛简历+一面。老实说市面上找工作的程序员,工作经验在这个年龄段的比较多,每天都有五六十封简历过来(小公司大佬勿喷),但是陆陆续续招了一个多月了,仍然没有招到合适的,期间当然也有那种我们觉得合适但是最终没谈拢的,不过大部分来应聘的人员还是存在一些明显的问题,无论是简历还是面试。网上现在大多都是面经,所以今天我想以一个面试官的视角给大家谈一下,找...

jimoluoxue2016的博客 657
上一篇: Oracle总结
下一篇: hibernate一级缓存和二级缓存的区别
zljjava
博客等级 码龄15年 155粉丝 15原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值