Tomcat调优【精简版】

Tomcat调优
优化Tomcat内存分配
调整Tomcat启动脚本contalina.sh,设置tomcat启动时分配的内存很可使用的最大内存;
CATALINA_OPTS
调整Tomcat线程池
Tomcat默认使用的线程池:ThreadPoolExecutor
可以通过修改server.xml的 Connector 节点下的 maxThreads、minSpareThreads 和 acceptCount 参数来调整线程池的大小和性能。
情况举例:
情况1:接受一个请求,此时tomcat起动的线程数没有到达maxThreads,tomcat会起动一个线程来处理此请求。
情况2:接受一个请求,此时tomcat起动的线程数已经到达maxThreads,tomcat会把此请求放入等待队列,等待空闲线程。
情况3:接受一个请求,此时tomcat起动的线程数已经到达maxThreads,等待队列中的请求个数也达到了acceptCount,此时tomcat会直接拒绝此次请求,返回connection refused
maxThreads如何配置
1,计算型的任务多的话,减少线程数
2,io较多的,增加线程数
优化tomcat缓存
可以通过调整 server.xml 中的 Connector 节点下的 enableLookups、maxKeepAliveRequests 和 keepAliveTimeout 等参数来优化 Tomcat 的缓存设置,减少网络连接的开销。
配置文件模板:
配置tomcat内存:
catalina.sh
#Make the umask available when using the org.apache.catalina.security.SecurityListenerJAVA_OPTS="-Xms512m -Xmx1024m -XX:MaxMetaspaceSize=256m -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`"
配置线程数,压缩,缓存
server.xml
<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"maxThreads="100"//处理任务的最大线程数minSpareThreads="8"//最小空闲线程acceptCount="80"//当最大线程数到了之后接受的请求进入队列的数量,超出这个数会被拒绝处理enableLookups="false"//关闭DNS查找(关闭DNS缓存)maxKeepAliveRequests="100"//长连接的请求数keepAliveTimeout="1000"//长连接的在线时长compression="on"//启用压缩compressionMinSize="2048"//压缩的大小maxParameterCount="1000"/>
compressionMinSize="2048"启用压缩的输出内容大小,默认为2KB
●noCompressionUserAgents=“gozilla,traviata” 对于以下的浏览器,不启用压缩 ●compressableMimeType=“text/html,text/xml,text/javascript,text/css,text/plain” 哪些资源类型需要压缩
可以配置一个线程池
引用线程池
<Connector port="8080" protocol="HTTP/1.1"executor="tomcatThreadPool"connectionTimeout="20000"redirectPort="8443"enableLookups="false"maxKeepAliveRequests="100"keepAliveTimeout="1000"compression="on"compressionMinSize="2048"maxParameterCount="1000"/>
这样设置注意不要有重复的配置项
相关文章:
Tomcat调优【精简版】
Tomcat调优 优化Tomcat内存分配 调整Tomcat启动脚本contalina.sh,设置tomcat启动时分配的内存很可使用的最大内存; CATALINA_OPTS 调整Tomcat线程池 Tomcat默认使用的线程池:ThreadPoolExecutor 可以通过修改server.xml的 Connector 节点下的 maxThreads、minSpareThread…...
通过NDK编译C程序运行在iMX6q开发板上
在之前想要在Ubuntu系统中编译c语言程序为可执行文件并放在装有Android6.0.1系统的imx6q开发板上运行,采用gcc编译器进行编译的时候,虽然可以生成可执行文件但是却出现了错误,最终采用手段仍然无法在板子上运行,但是转换思路后&am…...
【学习笔记】Java 一对一培训(2.1)Java基础语法
【学习笔记】Java 一对一培训(2.1)Java基础语法 关键词:Java、Spring Boot、Idea、数据库、一对一、培训、教学本文主要内容含Java简介、Java基础语法、Java对象和类、Java基本数据类型、Java变量类型、Java修饰符计划2小时完成,…...
外贸独立站哪家好?推荐的独立站建站平台?
如何选外贸独立站搭建系统?创建贸易网站的工具有哪些? 在如今全球贸易不断蓬勃发展的背景下,外贸独立站成为许多企业拓展国际市场的首选之一。然而,要想在竞争激烈的市场中脱颖而出,选择一家合适的外贸独立站服务提供…...
六、变量与常量
变量与常量 1.变量与常量1.1标识符和关键字1.1.1.标识符1.1.2.关键字 1.2.声明变量1.3.声明常量1.4.变量的有效范围1.4.1.成员变量1.4.2.局部变量 1.5.训练11.6.训练2 —————————————————————————————————————————————————— …...
Fork() 函数:“父” 与 “子” 进程的交互(进程的创建)
阅读导航 前言一、fork函数初识1. 基本概念2. fork函数返回值 二、fork函数的写时拷贝三、总结温馨提示 前言 前面我们讲了C语言的基础知识,也了解了一些数据结构,并且讲了有关C的一些知识,也学习了一些Linux的基本操作,也了解并…...
JupyterNotebook设置Python环境的方法步骤
不多说,看链接。 https://stackoverflow.com/questions/39604271/conda-environments-not-showing-up-in-jupyter-notebook conda activate myenv pip install ipykernel python -m ipykernel install --user --name myenv --display-name "Python (myenv)&q…...
腾讯云阿里云云服务器 Linux 操作系统 BT 宝塔面板快速建站教程
宝塔面板概述 宝塔面板是一款服务器管理软件,支持Windows和Linux系统,可以通过Web端轻松管理服务器,提升运维效率。总体来说,宝塔面板具有操作简单、功能丰富、安全可靠等特点,是一款非常实用的服务器管理软件。 宝塔…...
【Linux】死锁理解
什么是死锁 因为资源调度的方式不合理或者资源的稀缺性,导致进程间的相互等待。 死锁的四个必要条件:互斥条件,请求和保持条件,环路等待条件,不可剥夺条件。 死锁的预防只要破坏死锁产生的四个必要条件。通常采用预…...
基于Java所涉及的人工智能的框架
11 References: [1] Java中人工智能的框架_永远的12的博客-CSDN博客...
【力扣】三角形最小路径和
目录 题目 例子 示例 1: 示例 2: 前言 思路 思想 代码 调用的函数 主函数 所有代码 力扣提交的代码 运行结果 小结 题目 给定一个三角形 triangle ,找出自顶向下的最小路径和。 每一步只能移动到下一行中相邻的结点上。相邻的结…...
【Linux】指针常量和常量指针
这个是指针常量,不能修改指向【其实就是引用的原型】:可以理解为const是否限制了星号 这个是常量指针,可以改指向,不能改值:...
LCP 22.黑白方格画
题目来源: leetcode题目,网址:LCP 22. 黑白方格画 - 力扣(LeetCode) 解题思路: 分别计算当涂0行,1行,2行.......时能否满足要求,若能ÿ…...
Java并发编程第8讲——ThreadLocal详解
ThreadLocal无论是在项目开发还是面试中都会经常碰到,它的重要性可见一斑,本篇文章就从ThreadLocal的使用、实现原理、核心方法的源码、内存泄漏问题等展开介绍一下。 一、什么是ThreadLocal ThreadLocal是java.lang下面的一个类,在JDK 1.2版…...
2023复旦大学计算机科学技术(网络空间安全)保研记录
BG:中九rank前5%、科研经历少、无竞赛 复旦大学计算机科学与技术--网络空间安全方向,参营4天(6.26-6.29),管午饭,住宿自理 6.26--报道听会,6.27--听会+实验室参观 给了…...
linux系统通过docker安装python的jieba,如何找到jieba路径替换分词文件
1、安装python镜像 python镜像名为 jetz_python3.7.131、进入容器 首次安装镜像后,容器启动,进入容器中,其中py37是容器名称,后面会一直用到 docker run -it --name py37 jetz_python3.7.13 /bin/bash如果进入过容器退出了,而容器已存在,上面的的 命令会报错,直接根…...
Python Functions-函数
目录 创建函数 调用函数 参数还是自变量? 参数数量 任意参数,*args 关键字参数 任意关键字参数,**kwargs 默认参数值 将列表作为参数传递 The pass Statement 递归 函数是一个只有在被调用时才运行的代码块。 可以将称为参数的数…...
【人工智能】机器学习的入门与提升
目录 1.入门 1.1.从何处开始 1.2.数据集 1.3.数据类型 2.平均中位数模式 2.1.均值、中值和众数 2.2.均值 2.2.1.实例 2.2.2.运行结果 2.3.中值 2.3.1.实例 2.3.2.运行结果 2.3.3.实例 2.3.4.运行结果 2.4.众数 2.4.1.实例 2.4.2.运行结果 2.5.章节总结 3.标准…...
WEB漏洞原理之---【XMLXXE利用检测绕过】
文章目录 1、概述1.1、XML概念1.2、XML与HTML的主要差异1.3、XML代码示例 2、靶场演示2.1、Pikachu靶场--XML数据传输测试玩法-1-读取文件玩法-2-内网探针或攻击内网应用(触发漏洞地址)玩法-3-RCE引入外部实体DTD无回显-读取文件开启phpstudy--apache日志…...
element-table排序icon没有点亮
<el-table :data"tableData" ref"tableRef"border :sort"defaultSort":default-sort"defaultSort"><el-table-column sortable :sort-orders"sortOrder" prop"date" label"日期"> </el-…...
AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
