tomcat的优化

TOMCAT的优化

tomcat的优化主要是从三个方面进行的,第一个是 tomcat配置的优化第二是对JVM虚拟机的优化第三是对Linux系统内核的优化,配置文件中的优化主要在tomcat中server.xml文件夹内

tomcat配置文件的优化

1、 maxThreads:
Tomcat 使用线程来处理接收的每个请求,这个值表示 Tomcat 可创建的最大的线程数,默认值是 200。
修改tomcat/conf/server.xml的配置文件,并修改 在模块中进行修改,如图
在这里插入图片描述

<Connector port="8081" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"maxThreads="300"    />

把TomCat的最大并发量改成300

2、minSpareThreads:
最小空闲线程数,Tomcat 启动时的初始化线程数,表示即使没有人使用也开这么多空线程等待,默认值是 10
下面是在第一题基础上把最小空闲线程数改成20
在这里插入图片描述
在Connector设置块中加入

minSpareThreads="20"

3、connnectionTimeout;
网络连接超时,单位:毫秒,设置为 0 表示永不超时,这样设置有隐患的。通常默认 20000 毫秒就可以。
可以在Connector模块里加入
在这里插入图片描述

connnectionTimeout="30000"

就可以设置完成长连接持续时间30秒

4、maxKeepAliveRequests
最大连接请求数
它用于指定允许的最大持久连接(Keep-Alive)请求数。持久连接允许客户端在单个TCP连接上发送多个HTTP请求,以减少连接的开销,提高性能。通俗的来说,就是一次长连接允许发送的HTTP请求数,通常默认是-1也就是不限制
在Connector模块里加入

maxKeepAliveRequests="100"

在这里插入图片描述
5、acceptCount
它用于指定在Tomcat已经满负荷工作时,接受新连接的请求数量。当所有的处理线程都在工作时,新的连接请求会被放置在一个队列中等待处理。默认值:acceptCount的默认值通常是100。这意味着当Tomcat的处理线程已满时,最多会接受100个新的连接请求,其余请求会被拒绝。

acceptCount="200"

将最大等待链接数设置成200
在这里插入图片描述
6、enableLookups
用于指定是否进行DNS反查(反向DNS查找)以返回客户端主机的主机名。将其设置为 true 表示Tomcat会尝试通过客户端IP地址查找对应的主机名,而将其设置为 false 则表示Tomcat不进行反查,直接返回IP地址,以提高性能。默认值:通常情况下,enableLookups 的默认值为 true,这意味着Tomcat会尝试进行DNS反查以获取客户端主机的主机名。从性能方面考虑建议关闭
在Connector模块里加入可以关闭DNS反查

enableLookups="false"

在这里插入图片描述

JVM虚拟机的优化

catalina.sh 中设置

JAVA_OPTS="$JAVA_OPTS -server -Xms2048m -Xmx2048m -XX:PermSize=1024m -XX:MaxPermSize=1024m -Xmn768m"
  1. -server:这个选项启用了JVM的Server模式,它是一种优化模式,适用于多核服务器,可以提供更好的性能。Server模式主要优化了编译和运行时的性能,适合长时间运行的应用程序。通常情况下,使用 -server 是一个好的做法,特别是在生产环境中。

  2. -Xms2048m -Xmx2048m:这两个选项用于设置JVM的堆内存大小。-Xms 设置堆的初始大小,-Xmx 设置堆的最大大小。在你的配置中,堆内存被设置为2GB,这意味着JVM会启动时分配2GB的初始堆空间,并且允许堆的最大大小达到2GB。这个设置可以根据你的应用程序和服务器的性能需求进行调整,通常设置为物理内存的一部分,以避免频繁的垃圾回收。

  3. -XX:PermSize=1024m -XX:MaxPermSize=1024m:这两个选项用于设置JVM的永久代(PermGen)大小。永久代主要用于存储类的元数据信息,例如类的结构、方法、字段等。在Java 8及更高版本中,永久代被元数据区(Metaspace)取代,因此这些选项在Java 8及以后的版本中不再有效。在你的配置中,永久代被设置为1GB,这通常足够存储大多数应用程序的类元数据。类元数据的大小取决于应用程序的复杂性和使用的库。

  4. -Xmn:这个选项用于设置JVM堆内存中的新生代大小。新生代是堆内存的一部分,用于存储新创建的对象。在你的配置中,新生代被设置为768MB,这是堆内存大小的3/8。通常情况下,新生代的大小应根据应用程序的内存分配模式和性能需求进行调整。较大的新生代可以容纳更多的新对象,但也会导致更频繁的垃圾回收。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/75410.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

调用微信公众号创建会员卡接口报错48001

调用文档&#xff1a;1.新版会员卡介绍 | 微信开放文档 接口地址&#xff1a; HTTP请求方式: POSTURL:https://api.weixin.qq.com/card/create?access_tokenACCESS_TOKEN 错误描述&#xff1a;48001 {"errcode":48001,"errmsg":"api unauthorized hi…

Fastjson反序列化漏洞

文章目录 一、概念二、Fastjson-历史漏洞三、漏洞原理四、Fastjson特征五、Fastjson1.2.47漏洞复现1.搭建环境2.漏洞验证&#xff08;利用 dnslog&#xff09;3.漏洞利用1)Fastjson反弹shell2)启动HTTP服务器3)启动LDAP服务4)启动shell反弹监听5)Burp发送反弹shell 一、概念 啥…

U3D外包开发框架及特点

U3D&#xff08;Unity3D&#xff09;是一款流行的跨平台游戏开发引擎&#xff0c;用于创建2D和3D游戏以及交互性应用程序。U3D有许多常用的开发框架和库&#xff0c;这些框架和库可以扩展其功能&#xff0c;使开发人员更轻松地构建游戏和应用程序。以下是一些常用的U3D开发框架…

【计算机网络】 确认应答机制与超时重传

文章目录 ACK机制——确认应答机制超时重传 ACK机制——确认应答机制 当我们客户端发送了一个数据&#xff0c;seq是1100&#xff0c;那么服务端在收到时就会回一个ack101的ACK包&#xff0c;代表101之前的包我都收到了&#xff0c;下面请你从101继续发送。然后客户端就会发送1…

2.linux的组管理和权限管理

一、组管理 1.Linux组的介绍 在linux中每个用户必须属于一个组&#xff0c;不能独立于组外。在linux中每个文件有所有者&#xff0c;所有组&#xff0c;其他组的概念 ①所有者 ②所在组 ③其他组 ④改变用户所在组 2.文件/目录 所有者 哪个用户创建了文件&#xff0c;就…

【webrtc】时间戳reordered 重新排序、环绕的判断

inter_frame_delay_.CalculateDelay( ) 计算传输抖动值 webrtc源码分析(6)- jitter delay计算详解 大神对这块的使用,内涵外延,有深入细致的讲解。输入rtp时间戳、到达时间(当前系统时间?)-- 在rtp的时间戳的处理上,inter_frame_delay_.CalculateDelay( ) 计算传输抖动值…

《向量数据库指南》——向量数据库的底层原理是什么?

向量数据库的底层实现原理可以根据具体的数据库系统和索引方法而有所不同。不同的向量数据库可能使用不同的数据结构和算法来支持高效的向量存储和相似性搜索。以下是一些常见的底层实现原理和概念: 1、向量存储: 数据结构:向量数据库通常使用数据结构来存储向量数据。这些数…

Java测试(10)--- selenium

1.定位一组元素 &#xff08;1&#xff09;如何打开本地的HTML页面 拼成一个URL &#xff1a;file: /// 文件的绝对路径 import os os.path.abspath(文件的绝对路径&#xff09; &#xff08;2&#xff09;先定位出同一类元素&#xff08;tag name&#xff0c;name&…

DGA行为转变引发了对网络安全的担忧

Akamai的研究人员发现&#xff0c;在域名系统(DNS)流量数据中&#xff0c;动态种子域生成算法(DGA)家族的行为发生了令人担忧的变化。这一发现揭示了恶意行为者如何调整他们的策略来延长他们的指挥与控制(C2)通信通道的寿命&#xff0c;以保护他们的僵尸网络。 从技术角度来看…

计算机网络基础知识(非常详细)

1. 网络模型 1.1 OSI 七层参考模型 七层模型&#xff0c;亦称 OSI&#xff08;Open System Interconnection&#xff09;参考模型&#xff0c;即开放式系统互联&#xff0c;是网络通信的标准模型。一般称为 OSI 参考模型或七层模型。 它是一个七层的、抽象的模型体&#xff…

SpringMVC实现增删改查

文章目录 一、配置文件1.1 导入相关pom依赖1.2 jdbc.properties&#xff1a;配置文件1.3 generatorConfig.xml&#xff1a;代码生成器1.4 spring-mybatis.xml &#xff1a;spring与mybatis整合的配置文件1.5 spring-context.xml &#xff1a;上下文配置文件1.6 spring-mvc-xml:…

2023高教社杯数学建模B题思路代码 - 多波束测线问题

# 1 赛题 B 题 多波束测线问题 单波束测深是利用声波在水中的传播特性来测量水体深度的技术。声波在均匀介质中作匀 速直线传播&#xff0c; 在不同界面上产生反射&#xff0c; 利用这一原理&#xff0c;从测量船换能器垂直向海底发射声波信 号&#xff0c;并记录从声波发射到…

什么是SpringMVC以及SpringMVC框架的优点

它是基于MVC开发模式的框架,用来优化控制器.它是Spring家族的一员.它也具备IOC和AOP. 什么是MVC? 它是一种开发模式,它是模型视图控制器的简称.所有的web应用都是基于MVC开发. M:模型层,包含实体类,业务逻辑层,数据访问层 模型 模型(Model)&#xff1a;就是业务流程/状态…

Pytest模式执行python脚本不生成allure测试报告

1.安装allure 下载allure的zip安装包 将allure.zip解压到python的lib目录中 将allure的bin路径添加到环境变量path中(注意&#xff1a;配置环境变量后&#xff0c;一定要重启电脑。因为环境变量没生效&#xff0c;我搞了半天在pycharm不能生成报告&#xff0c;在cmd中可以生成…

Swift页面添加水印

本文主要讨论的是给图片或者视图添加全屏水印。比较常见的是添加单个水印,这个比较好处理,网络上也有很多参考的方法。本文实现的是铺满的全屏水印,具体参考效果如下: 实现思路: 1、根据水印文本以及相应样式生成水印图片,水印图大小根据文本计算而来 2、生成需要铺满水…

SpringBoot【基础篇】

一、快速上手 按照要求&#xff0c;左侧选择web&#xff0c;然后在中间选择Spring Web即可&#xff0c;选完右侧就出现了新的内容项&#xff0c;这就表示勾选成功了 关注&#xff1a;此处选择的SpringBoot的版本使用默认的就可以了&#xff0c;需要说一点&#xff0c;SpringBo…

PHPWord 模板输出checkbox复选框和checked已勾选状态,以及 模板替换时数据如何分行

PHPWord 模板输出checkbox复选框和checked已勾选状态,以及 模板替换时数据如何分行 期望目标 和 模板配置复选框代码数据分行显示在使用PHPWORD模板替换时,经常会有 动态渲染选择项 和 选择项需要被勾选的要求,以及动态数据分行显示等要求。 本文根据 空复选框、勾选复选框…

[Linux 基础] linux基础指令(1)

文章目录 1、Linux下基本指令1.ls指令2.pwd指令3.cd指令4.touch指令5.mkdir指令6.rmdir指令 && rm指令7.man指令8.cp指令9.mv指令10.cat指令11.more指令12.less指令 Linux学习笔记从今天开始不断更新了。第一篇我们从基础指令开始学起。 1、Linux下基本指令 好多人都说…

创建开机自启的脚本

在启动许多ros节点时有多种方式&#xff0c;我推荐使用launch来启动所有的节点&#xff0c;这也是一种规范的方式。以后会慢慢向这个方向靠。 除此之外还可以通过创建的脚本来启动&#xff1a; 脚本位置不限&#xff0c;只需要&#xff1a; sudo gedit xxx.sh在里面添加相应的…

Jetsonnano B01 笔记2:GPIO库-Pycharm远程调试-点灯

今日继续我的Jetsonnano 学习之路,今日主要学习使用Pycharm远程调试Jetsonnano以及驱动使用Jetsonnano的GPIO库&#xff0c;最终尝试使用jetson点亮第一个LED。 本文搬运成分较多&#xff0c;因为Jetsonnano资料比较少&#xff0c;做这些笔记方便自己以及大家查阅。 目录 一…