tomcat

一  Tomcat调优

      本节主要参考文章:https://www.cnblogs.com/jpfss/p/7390211.html

      GZIP压缩参考文章:https://www.cnblogs.com/DDgougou/p/8675504.html

      1.  JVM调优

           注:JDK调优在Tomcat里调而不需要在JDK里调优,Tomcat启动的是JVM的一个实

                  例,而JDK本身没有提供我们调优的地方。

     文件: \tomcat server folder\bin\catalina.sh

JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8
-server -Xms1024m -Xmx1024m
-XX:NewSize=512m -XX:MaxNewSize=512m -XXermSize=512m
-XX:MaxPermSize=512m -XX:+DisableExplicitGC"

      2.  设置监听器解决JRE和PermGen的内存泄漏

           性能表现不佳的另一个主要原因是内存泄漏,正如我之前说过:始终使用最新的

           tomcat服务器以获得更好的性能和可伸缩性。现在,这句话变成真的。如果我们使用

           最新的tomcat版本6.0.26及以上就可以解决这个错误,因为它包含了一个监听器来处

           理JRE和PermGen的内存泄漏。设置使用的监听器是server.xml中的:

<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />

      3.  连接池设置

           线程池指定Web请求负载的数量,因此,为获得更好的性能这部分应小心处理。可以

           通过调整连接器属性“maxThreads”完成设置。maxThreads的值应该根据流量的大小,

           如果值过低,将有没有足够的线程来处理所有的请求,请求将进入等待状态,只有当

           一个的处理线程释放后才被处理;如果设置的太大,Tomcat的启动将花费更多时间。

           因此它取决于我们给maxThreads设置一个正确的值。 

<Connector port="8080" address="localhost"
maxThreads="250" maxHttpHeaderSize="8192"
emptySessionPath="true" protocol="HTTP/1.1"
enableLookups="false" redirectPort="8181" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />

           在上述配置中,maxThreads值设定为“250”,这指定可以由服务器处理的并发请求的

           最大数量。如果没有指定,这个属性的默认值为“200”。任何多出的并发请求将收到

           “拒绝连接”的错误提示,直到另一个处理请求进程被释放。错误看起来如下,

org.apache.tomcat.util.threads.ThreadPool logFull SEVERE: All threads (250) are
currently busy, waiting. Increase maxThreads (250) or check the servlet status

           如果应用提示上述错误,务必检查上述错误是否是由于单个请求花费太长时间造成的,

           这个问题的原因是这样的,有时候如果数据库连接不释放的话,进程将不会处理其它请

           求。

           注意:如果请求的数量超过了“750”,这将不是意味着将maxThreads属性值设置为“750”,

                     它意外着最好使用“Tomcat集群”的多个实例。也就是说,如果有“1000”请求,两个

                     Tomcat实例设置“maxThreads= 500”,而不在单Tomcat实例的情况下设置

                     maxThreads=1000

      4.  配置压缩

         (1)为什么要压缩?

                          HTTP压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求服务器对应资

                   源后,从服务器端将资源文件压缩,再输出到客户端,由客户端的浏览器负责解压缩并

                   浏览(可见,压缩的是响应)。即:通过减小HTTP响应大小来减少响应时间。相对于普

                   通的浏览过程HTML、CSS、Javascript、Text ,它可以节省40%左右的流量。更为重要

                   的是,它可以对动态生成的,包括CGI、PHP , JSP , ASP , Servlet、SHTML等输出的网

                   页也能进行压缩,压缩效率也很高。而GZIP本身就是一种网络流压缩算法,而且应用相

                   当广泛Tomcat有一个通过在server.xml配置文件中设置压缩的选项。压缩可以在

                   Connector像如下设置中完成。

         (2)GZIP压缩介绍:

                 (a)HTTP 协议支持GZIP 压缩机制,也称协议压缩。 HTTP GZIP压缩是由WEB服务器

                          和浏览器共同遵守的协议,也就是说WEB服务器和浏览器都必须遵守。目前主流的

                          服务器和浏览器都支持GZIP压缩技术。包括 Chrome、IE、FireFox、Opera 等;服

                          务器有 tomcat、Apache 和 IIS 等。

                 (b)GZIP 主要用来压缩html,css,javascript,等静态文本文件,也支持对动态生成的,包

                       括CGI、PHP , JSP , ASP , Servlet,SHTML等输出的网页也能进行压缩。

                 (c)GZIP 压缩的比率通常在3~10 倍之间,这样可以大大节省服务器的网络带宽,大大

                          提升浏览器的浏览速度。

                 (d)GZIP 是一种数据压缩格式,默认且目前仅使用deflate算法压缩data部分;deflate是

                          一种压缩算法,是huffman编码的一种加强。

                 (e)协议压缩就是依据HTTP协议进行压缩,不需要程序员进行压缩,解压编码,而是把

                          压缩过程交给WEB服务器,将解压过程交给客户端。 如果客户端为支持GZIP压缩的

                          浏览器,那么解压过程也不需要程序员参与,浏览器会按照一定的规则自动进行解压

                          缩;如果客户端为HttpClient ,那么就需要手动进行GZIP解码了。

                 (f)压缩过程:客户端发送http请求,如果请求头header中携带

                          Accept-Encoding: gzip,deflate (现在的浏览器一般默认都是这样),那么浏览器的意思

                         是:服务器需要进行GZIP压缩,再看响应内容的类型是否满足服务器配置的需要压缩的

                         类型,如果符合,那么WEB服务器在传输响应内容之前,会对响应内容进行压缩,并

                         在响应头中添加Content-Encoding gzip;如果不符合,那么将不压缩,直接返回。

                 (g) 解压过程:(浏览器)客户端接收到响应,如果响应头中包含

                           Content-Encoding GZIP,那么浏览器会自动将响应内容进行GZIP解压缩,然后再呈

                           现在页面上。如果不包含,那么将直接呈现在页面上。

                 (h)GZIP的缺点。相对于没有进行GZIP的工程来说,使用GZIP要增加服务器压缩的压力

                        (cpu消耗)、客户端解压缩的压力,故而对服务器的配置需求更高。另外压缩也要耗

                          费时间,想占用更小的空间,得到高压缩比率,肯定要牺牲较长的时间;反之,如果

                          时间较为宝贵,要求快速,那么所得的压缩比率一定较小,当然会占用更大的空间了

                        (压缩比率=原内容大小/压缩后大小,压缩比率越大,则表明压缩后占用空间的压缩

                          包越小),这就是物理空间与时间的矛盾。

         (3)笔者的案例

                  最近做了个项目,遇到这么一个问题:服务器返回给客户端的json数据量太大(大概

                  65M),在客户端加载了1分多钟才渲染完毕(当然这加载时间也和本地的下行带宽有关),

                  费时耗流量,用户体验极其不好。后来网上搜优化的方法,就是Http压缩         

         (4)Tomcat中配置的方法

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8181" compression="500"
compressableMimeType="text/html,text/xml,text/plain,application/octet-stream" />

                 在上面的配置中,当文件的大小大于等于500bytes时才会压缩。如果当文件达到了大小但是

                 却没有被压缩,那么设置属性compression="on"。否则Tomcat默认设置是“off”。

      5.  数据库调优

           Tomcat性能在等待数据库查询被执行期间会降低。如今大多数应用程序都是使用可能包含“命名

           查询”的关系型数据库。如果是那样的话,Tomcat会在启动时默认加载命名查询,这个可能会提

           升性能。另一件重要事是确保所有数据库连接正确地关闭。给数据库连接池设置正确值也是十

           分重要的。我所说的值是指Resource要素的最大空闲数(maxIdle),最大连接数

         (maxActive),最大建立连接等待时间(maxWait)属性的值。因为配置依赖与应用要求,我也

           不能在本文指定正确的值。你可以通过调用数据库性能测试来找到正确的值。

      6.  Tomcat的原生库基于Apache可移植运行时(Apache Portable Runtime简称APR),给程

         序员提供了超强的扩展性和性能,在产品运作中帮助融合原生的服务器技术以展现最佳的性能。

         想知道安装说明的朋友请参考Tomcat Native Library – (APR) Installation。

      7.  其它选项

          开启浏览器的缓存,这样读取存放在webapps文件夹里的静态内容会更快,大大推动整体性

          能。每当开机时,Tomcat服务器应当自动地重启。一般情况下HTTPS请求会比HTTP请求慢。

          如果你想要更好的安全性,即使慢一点我们还是要选择HTTPS。

Tomcat性能在等待数据库查询被执行期间会降低。如今大多数应用程序都是使用可能包含“命名查询”的关系型数据库。如果是那样的话,Tomcat会在启动时默认加载命名查询,这个可能会提升性能。另一件重要事是确保所有数据库连接正确地关闭。给数据库连接池设置正确值也是十分重要的。我所说的值是指Resource要素的最大空闲数(maxIdle),最大连接数(maxActive),最大建立连接等待时间(maxWait)属性的值。因为配置依赖与应用要求,我也不能在本文指定正确的值。你可以通过调用数据库性能测试来找到正确的值。

转载于:https://www.cnblogs.com/jialanshun/p/10939604.html

升级Tomcat解决Tomcat 安全漏洞【为了同一个tomcat版本安装多个服务】2026-7-16 如果是Java web应用,需要迁移webapps目录下的war文件。主要迁移conf目录下的文件,尤其是server.xml文件。访问日志路径配置,修改server.xml。为了同一个tomcat版本安装多个服务。访问 127.0.0.1:8080。 阅读详情

相关推荐

SpringBoot3 + OAuth2.1实战:5分钟搞定授权码模式(含完整代码)

本文详细介绍了如何在SpringBoot3环境中快速实现OAuth2.1的授权码模式,包括环境配置、核心安全实现及完整代码示例。通过Spring Security集成,开发者可以高效构建企业级安全认证系统,解决版本兼容性问题,提升开发效率。

weixin_29216353的博客 141

tomcat-Dockerfile 可配置tomcat的访问日志_dockerfile java -jar 指定tomcat日志

libapr1。

2401_87378735的博客 1704

解密电商大促背后的智慧:LSTM与ARIMA模型的双剑合璧

举个例子,如果某东发现某款新推出的电子产品在促销前夕搜索量突然暴涨,虽然这个产品没有过去的销售记录,但LSTM模型可以结合用户对类似产品的行为模式、实时的市场反馈,迅速捕捉到这些变化,并预测这款产品在大促期间的需求会急剧上升。想象一下,如果预测不准确,备货不足,商品很快就卖光了,大量用户可能在促销期间买不到想要的商品,这不仅让用户失望,还会影响某东的品牌形象。这种情况就像我们看一部很长的电视剧,看得越久,前面的情节可能就越来越模糊,到最后有些关键的情节细节都忘了,影响了对整个剧情的理解。

小蒋聊技术 2091

深入Tomcat:JNDI在TOMCAT中的应用

 说句实话,在J2EE应用中很少用Tomcat得,一般都用Weblogic,Jboss,不过在网上发现了这篇文章,对于想对Tomcat做深入研究的朋友的确不错!JNDI在TOMCAT中的应用 在J2EE应用中,JNDI可以简化开发者的工作。而TOMCAT则使用户可以很方便的使用JNDI来开发自己的应用。 一.JNDI的配置 用户只需要配置TOMCAT的$CATALINA_HOME/CONF/S

上海夜未眠 2632

win11下的MySQL安装

目前官方最新版本是8.0.26,考虑到其稳定性、可靠性还需一定周期保证,所以使用官方版求稳定仍然建议5.7系列。3、选择MySQL Servers 5.7.38 -x64,然后按绿色箭头将选中的版本移植到右边选中框中。4、点击下方蓝色Advanced Options,选择安装位置。1、在开始界面搜索MySQL,点击command line。4、在“系统变量”中选择“path”,点击编辑。5、新建——>增加MySQL路径——>确定,12、execute,安装好后next。9、不需要做修改,直接点击next。.

rensweet的博客 2万+

时空双重机器学习在环境政策评估中的创新应用

因果推断是数据分析中的核心问题,特别是在环境政策评估领域。传统方法如差异分析法(DID)在处理时空维度上的复杂相关性时存在局限。机器学习技术,特别是双重机器学习(DML),通过分阶段建模有效解决了混杂变量问题。结合贝叶斯加性回归树(BART)的灵活建模能力,可以更准确地捕捉空间和时间模式。这种时空双重机器学习(ST-DML)方法在柬埔寨森林砍伐案例中表现出色,通过Wendland基函数有效处理了空间自相关问题。该技术框架不仅适用于环境政策评估,还可扩展至空气质量、水资源管理等其他领域,为政策制定提供更精准的

weixin_28685045的博客 346

TOMCAT

TOMCAT tomcat是什么: tomcat是一个中间件,在B/S架构中,浏览器发出的http请求经过tomcat中间件,转发到最终目的服务器上,响应消息再通过tomcat返回给浏览器 tomcat做的主要事情: 开启监听端口监听用户的请求,解析用户发来的http请求,然后访问你指定的应用系统,然后你返回的页面经过tomcat返回给用户 Apache、Nginx和tomcat的区别: Apa...

qq_45300162的博客 2158

Figma做原型设计一篇教会你,全栈软件开发必备技能,前后端岗位锐减找工作的底牌

本文介绍了使用Figma进行前端应用原型设计的方法与优势。Figma作为主流设计工具,能够满足大多数应用系统的原型设计需求,强调系统设计应保持简洁合理。文章详细说明了Figma的基本操作流程,包括创建Frame页面、组件使用、交互设置等核心功能,并指出命名规范的重要性。同时对比了Axure、墨刀等其他设计工具的特点,建议根据具体需求选择合适的平台。最后强调原型设计主要关注交互功能展示,业务逻辑应通过需求文档表述。整体而言,Figma凭借其简洁高效的特点,已成为原型设计的优选工具。

有问题或资源连接有缺失的可以私信公众号新潮看世界获取 460

tomcat优化总结

系统发生了比较严重的性能问题,因为事情紧急只能取消自己的休假计划,赶到现场调试系统。 到了之后,首先检查了Tomcat的配置文件server.xml,原来一直以为肯定是配置服务器的同学没有把Tomcat中默认的允许访问的最大数75给改掉,后来发现不是这个问题,在配置文件中设置Context的地方有一段非常的诡异:有一个Context的路径是在%Tomcat%/webapps/ROOT中的一个目录A

怪手大分的专栏 1万+

组建高效AI开发团队:角色、技能与协作

在当今科技飞速发展的时代,人工智能(AI)已经成为各个领域的核心驱动力。组建高效的AI开发团队对于企业和科研机构来说至关重要,它能够推动创新、提高竞争力、实现业务目标。本文的目的在于为那些希望组建或优化AI开发团队的管理者、技术负责人以及相关从业者提供全面的指导。范围涵盖了团队角色的定义、所需技能的分析、团队协作的策略,以及实际项目中的应用和相关资源的推荐。本文将首先介绍AI开发团队的核心概念与联系,包括团队角色、技能和协作之间的关系。接着阐述核心算法原理和具体操作步骤,结合数学模型和公式进行详细讲解。

2502_91592937的博客 995

Backtrader官方中文文档:第四章Concepts基本概念

官方Concepts章节:https://backtrader.com/docu/concepts/

汇渊科技 2602

如何配置Tomcat,以及Tomcat和IIS的配置(1)

如何配置Tomcat,以及Tomcat和IIS的配置(1)1、首先要先下载JDK和Tomcat,我使用的版本是JDK_1_4_2_08和Tomcat5.0.16.下载网址请自己网上搜。下面先安装JDK,然后再安装Tomcat。安装完成以后就要添加环境变量了。右击我的电脑->属性->高级->环境变量,在系统变量中新建或编辑环境变量需要添加的环境变量如下:(1)、JAVA_HOME(JDK运行使用

1469

LearningToRank(LTR)排序算法LGBMRanker的原理和使用

1. 写在前面 在最近新闻推荐的比赛中, 接触到了一个排序模型LGBMRanker, 该模型与普通的分类模型LGBMClassifier不太一样, 普通的分类模型在进行推荐的时候, 往往是先预测某个商品或者文章用户会不会点击, 也就是它的目标是预测用户点击某篇文章或者某个商品的概率, 然后根据这个概率值进行排序, 排完之后,把最靠前的几个返回回来给用户进行推荐。 而LGBRanker模型, 它不关心用户点击某篇文章的概率, 而是根据用户点击或者不点击的这个行为, 直接去预测最后商品或者文章的一个相对顺序,

Miracle8070 1万+

TOMCAT服务

1.用户通过浏览器进行了一个操作,比如输入网址并回车,或者是点击链接,接着浏览器获取了这个事件。2.浏览器向服务端发出TCP连接请求。3.服务程序接受浏览器的连接请求并经过TCP三次握手建立连接。4.浏览器将请求数据打包成一个HTTP协议格式的数据包。5.浏览器将该数据包推入网络,数据包经过网络传输,最终达到端服务程序6.服务端程序拿到这个数据包后,同样以HTTP协议格式解包,获取到客户端的意图。7.得知客户端意图后进行处理,比如提供静态文件或者调用服务端程序获得动态结果。

CZZDg的博客 1151

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

TOMCAT实验

配置Java环境Java环境被存放在 /etc/alternatives/目录下解压tomcat安装包到/usr/local/目录下,并制作软连接tomcat启动tomcat,查看端口浏览器访问。

weixin_65846252的博客 1001

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

shell脚本部署tomcat

#!/bin/bash #AUTHOR:AN #DATE:2019-08-29 #FUNCTION: #DESCRIBE:快速部署Tomcat ######################定义变量###################### Nfs_Dir=/cloud_nsd #NFS共享目录 Script_Path=$Nfs_Dir/shell #脚本路径 Soft_Path...

运维@小兵的博客 609

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

tomcat和apache

1. tomcat是什么?做什么用的? 2. tomcat和apache是什么关系?整合是怎么回事? 3. jsp和它们什么关系? 4. apache,tomcat,jsp,php,mysql能一起用吗? 1.TOMCAT是个支持JSP和Servlet的东东,当然也可以做为小型的WEB服务器来用。 2.APACHE是个大型的WEB服务器

ios_xumin的专栏 1446

tomcat下查看并发流量

http://wangxuliangboy.javaeye.com/blog/235081 如何在WINDOW下配置TOMCAT APR:   APR是什么呢,(Tomcat can use the Apache Portable Runtime to provide

yinshuiy的专栏 2262

Tomcat 中的JVM问题

1.TOMCAT初始JVM大小为64M,在将应用正式部署后,可以通过调整catalina.bat中的内容调整tomcat的初始JVM大小,以获得更好的性能。范例如下(catalina.bat):%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Xms128m -Xmx256m -Djava.endorsed.dirs="%JAVA_ENDO

技术无疆 3599

java 内嵌tomcat_Embed Tomcat Java(内嵌tomcat启动简述)

简单记录一下内部tomcat启动maven pom.xmlorg.apache.tomcat.embedtomcat-embed-core8.5.28org.apache.tomcattomcat-jasper8.5.28org.springframeworkspring-web5.0.4.RELEASEcompileorg.springframeworkspring-webmvc5.0.4.R...

weixin_30141959的博客 1193

Windows 下安装 Tomcat 及搭建 Tomcat 服务

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为比较流行的Web 应用服务器。........

Talk is cheap. Show me the code 955

Docker 安装 Tomcat

=== 方法一、通过 Dockerfile构建 创建Dockerfile 首先,创建目录tomcat,用于存放后面的相关东西。 runoob@runoob:~$ mkdir -p ~/tomcat/webapps ~/tomcat/logs ~/tomcat/conf webapps目录将映射为tomcat容器配置的应用程序目录 logs目录将映射为tomcat容器的日志目录 conf目录里的配置文件将映射为tomcat容器的配置文件 进入创建的tomcat目录,创建Dockerfile FROM java

m0_67393295的博客 359

3. TOMCAT学习——TOMCAT的生命周期

TOMCAT包含很多组件。这些组件需要跟随TOMCAT一起启动和关闭。如何达到这种目的呢?TOMCAT引入了生命周期的概念。 生命周相关的接口和类包括 1. org.apache.catalina.Lifecycle 2. org.apache.catalina.LifecycleListener 3. org.apache.catalina.LifecycleEvent 4. org.apac...

程序猿的日常笔记 769

tomcat 集群

集成 集成……老听人说具体它是个啥东东咧,下面这个关于tomcat集成就解释的蛮清楚的 借鉴一下下 目录 TOMCAT集群 1 1 集群 1 1.1 什么是集群 1 1.2 集群的特性 1 1.3 集群的分类 1 1.4 TOMCAT集群配置的优缺点 2 1.5 APACHE+TOMCAT 2 1.6 环境说明 2 2 软件安装 3 2.1 安装说明

牵手*-*白首 966

linux搭建tomcat

1:配置多个tomcat,(也可单个) tomcat官网 1.下载tomcat wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.47/bin/apache-tomcat-8.5.47.tar.gz 2.解压 tar -xvf 名称 3.重命名,并复制多个出来(如果只需要配置一个,就不需要复制了) mv 文件名称 新文件名称 4.配置环境变量 vi /etc/profile 添加如下 (如果只需要配置一

weixin_43564690的博客 454
上一篇: 需要反复记忆的东西--暂时无用
下一篇: 拦截器和过滤器的区别
anshuo7139
博客等级 码龄10年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值