当前位置: 首页 > news >正文

Tomcat调优参数

JVM优化

        Tomcat是一个Web容器,所有的jar其实都共享Tomcat中的JVM参数,所以Tomcat的JVM参数优化至关重要。

        Tomcat的JVM参数是在启动脚本中设置的,如想要设置最大堆内存和最小堆内存时:

        在windows的启动脚本catalina.bat中的set "CURRENT_DIR=%cd%"下面,添加 set JAVA_OPTS=-Xms512m -Xmx512m -XX:ParallelGCThreads=8 -XX:PermSize=128m -XX:MaxPermSize=256m

        在linux的启动脚本catalina.sh中的注释后,既,# OS specific support. $var _must_ be set to either true or false.后添加:JAVA_OPTS="-Xms512m -Xmx512m -XX:ParallelGCThreads=8 -XX:PermSize=128m -XX:MaxPermSize=256m"

        其它的JVM参数也如上设置,如果服务器只跑Tomcat一个应用,那么建议设置最大堆内存为机器总内存的75%—80%,其它情况根据实际进行设置。

连接器优化

        在Tomcat中,连接器是IO事件处理的关键,如果连接器设置好了,则能够处理更多的IO事件,即处理更多的连接。

        连接器的优化内容如下:

        1.关闭Tomcat中默认的AJP连接器,该协议基本用不到而Tomcat默认开启,将其从配置文件中删掉即可。

        2.连接器支持3种运行模式,NIO、BIO、APR,最好设置为NIO模式或者APR模式,如果对并发要求高,最好设置为APR模式,APR模式需要额外的安装类库。

        3.可根据实际情况设置连接器的参数,如:maxThreads、compression、processorCache、acceptCount等。

缓存优化

        1.对于使用共同jar包的项目,可以在Tomcat中添加到共享类加载器中,节省jvm类加载资源,避免重复加载。

        2.启用连接器中的缓冲设置。

其它优化

        1.使用Nginx部署静态资源,最好不要把静态资源放在Tomcat中部署,实现动静隔离。

        2.有条件可以使用CDN加速静态资源

        3.一定要把Tomcat部署在内网环境中,部署Nginx在外层处理连接,让Tomcat只处理内网转发过来的请求,此做法能大大提升性能,因为当网络不好时,会导致很多的超时请求,占用Tomcat的资源,用Nginx把这些有问题的请求拦截在外,节省Tomcat的线程以及IO资源。(如果Tomcat直接对外发布时,处理极限到了,可试试该条优化,极大提升性能)

相关文章:

  • Linux系统如何通过编译方式安装python3.11.3
  • Java——接口
  • Vue 2与Vue 3的区别
  • java图书电子商务网站的设计与实现源码(springboot+vue+mysql)
  • vue3父组件使用ref获取子组件的属性和方法
  • java 拦截器-用户无操作超时退出利用Redis
  • 【智能算法应用】模拟退火算法求解多车型车辆路径问题HFVRP
  • 在CSDN上成长的感悟,你的粉丝长啥样?
  • DEM、DSM和DTM之间的区别及5米高程数据获取
  • DragonKnight CTF2024部分wp
  • 缓存归纳总结1
  • go语言泛型Generic最佳实践 --- slices包
  • Unity 代码实现Animator开始和结束播放动画回调
  • 代码审计--一道简单的文件包含题目的多种利用方式
  • Jenkins + github 自动化部署配置
  • 2017-08-04 前端日报
  • Apache的基本使用
  • ES6核心特性
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • HashMap ConcurrentHashMap
  • IP路由与转发
  • Java 内存分配及垃圾回收机制初探
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • js面向对象
  • LeetCode算法系列_0891_子序列宽度之和
  • Python socket服务器端、客户端传送信息
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • Redis学习笔记 - pipline(流水线、管道)
  • spring + angular 实现导出excel
  • Webpack 4x 之路 ( 四 )
  • WebSocket使用
  • XML已死 ?
  • zookeeper系列(七)实战分布式命名服务
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 对象管理器(defineProperty)学习笔记
  • 给第三方使用接口的 URL 签名实现
  • 关于字符编码你应该知道的事情
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 前端自动化解决方案
  • 深入浏览器事件循环的本质
  • 手写一个CommonJS打包工具(一)
  • linux 淘宝开源监控工具tsar
  • 昨天1024程序员节,我故意写了个死循环~
  • #14vue3生成表单并跳转到外部地址的方式
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • $ git push -u origin master 推送到远程库出错
  • (C#)获取字符编码的类
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (分类)KNN算法- 参数调优
  • (计算机网络)物理层
  • (四)c52学习之旅-流水LED灯
  • (学习总结)STM32CubeMX HAL库 学习笔记撰写心得
  • (一)、软硬件全开源智能手表,与手机互联,标配多表盘,功能丰富(ZSWatch-Zephyr)
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (转)linux 命令大全