【优化】--Tomcat优化汇总

Java高级架构面试真题汇总:Nginx、 Netty、Zookeeper、Tomcat、Dubbo (一)Nginx是什么——相关面试题 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。 1、请列举Nginx的一些特性。 2、解释Nginx是否支持... 阅读详情

###############################################################################

优化针对实际业务,并不针对硬件环境或者简单的配置文件!

优化的目标是增强性能、增强安全性、增强鲁棒性、充分利用硬件资源、降低成本。

优化的目的是在提高业务处理能力的基础上充分发挥硬件的性能,两者相辅相成。

优化的意义在于节省运营成本。

优化成功与否的关键是运营成本是否得到降低。

###############################################################################

1.内存设置(VM参数调优)

(1). Windows环境下,是tomcat解压版(执行startup.bat启动tomcat) ,解决办法:

修改“%TOMCAT_HOME%\bin\catalina.bat”文件,在文件开头增加如下设置:

set JAVA_OPTS=-Xms512m-Xmx512m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=512m

备注:一定加在catalina.bat最前面。

(2). Windows环境下,是tomcat安装版(利用windows的系统服务启动tomcat),解决办法:修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\ApacheSoftware Foundation\Procrun 2.0\Tomcat6\Parameters\JavaOptions

原值为:

-Dcatalina.home=E:\Tomcat 6.0

-Dcatalina.base=E:\Tomcat 6.0

-Djava.endorsed.dirs=E:\Tomcat 6.0\common\endorsed

-Djava.io.tmpdir=E:\Tomcat 6.0\temp

-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager

-Djava.util.logging.config.file=E:\Tomcat 6.0\conf\logging.properties

加入:

Xms512m -Xmx512m -XX:PermSize=128M -XX:MaxNewSize=256m-XX:MaxPermSize=512m

重起tomcat服务,设置生效。

(3). Linux环境下, ,解决办法:

修改“%TOMCAT_HOME%\bin\catalina.sh”文件,在文件开头增加如下设置:JAVA_OPTS=’-Xms256m -Xmx512m’

 

各参数详解:

JVM参数

JVM参数默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、 -Xmx相等以避免在每次GC 后调整堆的大小。

在较大型的应用项目中,默认的内存是不够的,有可能导致系统无法运行。常见的问题是报Tomcat内存溢出错误“java.lang.OutOfMemoryError: Java heap space”,从而导致客户端显示500错误。

-Xms:设置JVM初始内存大小(默认是物理内存的1/64)

-Xmx:设置JVM可以使用的最大内存(默认是物理内存的1/4,建议:物理内存80%)

-Xmn:设置JVM最小内存(128-256m就够了,一般不设置)

PermGen参数

PermGen space的全称是PermanentGeneration space,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGenspace进行清理,所以如果你的应用中有很CLASS的话,就很可能出现“java.lang.OutOfMemoryError: PermGen space”错误。

对于WEB项目,jvm加载类时,永久域中的对象急剧增加,从而使jvm不断调整永久域大小,为了避免调整),你可以使用更多的参数配置。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小,那么就会产生此错误信息了。

-XX:PermSize :为JVM启动时Perm的内存大小

-XX:MaxPermSize :为最大可占用的Perm内存大小(默认为32M)

-XX:MaxNewSize,默认为16M

其它参数:

-XX:NewSize :默认为2M,此值设大可调大新对象区,减少Full GC次数

-XX:NewRatio :改变新旧空间的比例,意思是新空间的尺寸是旧空间的1/8(默认为8)

-XX:SurvivorRatio :改变Eden对象空间和残存空间的尺寸比例,意思是Eden对象空

间的尺寸比残存空间大survivorRatio+2倍(缺省值是10)

-XX:userParNewGC 可用来设置并行收集【多CPU】

-XX:ParallelGCThreads 可用来增加并行度【多CPU】

-XXUseParallelGC 设置后可以使用并行清除收集器【多CPU】

2.修改tomcat让其支持NIO

server.xml

对每个 Connector

修改前:

protocol="HTTP/1.1"connectionTimeout="20000" redirectPort="8443"/>

修改成支持NIO的类型,配置如下:

protocol="org.apache.coyote.http11.Http11NioProtocol"connectionTimeout="20000" redirectPort="8443" />

3.并发数设置

默认的tomcat配置,并发测试时,可能30个USER上去就当机了。

server.xml

对每个Connector添加

maxThreads="600"//最大线程数

minSpareThreads="100" //初始化时创建的线程数

maxSpareThreads="500" //一旦线程超过这个值,Tomcat会关闭不需要的socket线程

acceptCount="700"//指定当所有可以使用的处理请求的线程数都被使用时,可以放到

处理队列中的请求数,超过这个数的请求将不予处理

connectionTimeout="20000"

redirectPort="8443" />

 

或者

name="tomcatThreadPool"namePrefix="catalina-exec-" maxThreads="500"minSpareThreads="400" />

executor="tomcatThreadPool"port="80" protocol="HTTP/1.1" connectionTimeout="20000"enableLookups="false"

redirectPort="8443"URIEncoding="UTF-8" acceptCount="1000" />

4.Java虚拟机调优

应该选择SUN的JVM,在满足项目需要的前提下,尽量选用版本较高的JVM,一般来说高版本产品在速度和效率上比低版本会有改进。 JDK1.4比JDK1.3性能提高了近10%-20%,JDK1.5比JDK1.4性能提高25%-75%。

5.禁用DNS查询

当web应用程序向要记录客户端的信息时,它也会记录客户端的IP地址或者通过域名服务器查找机器名转换为IP地址。DNS查询需要占用网络,并且包括可能从很多很远的服务器或者不起作用的服务器上去获取对应的IP的过程,这样会消耗一定的时间。为了消除DNS查询对性能的影响我们可以关闭 DNS查询,方式是修改server.xml文件中的enableLookups参数值为false。

 

Server.xml

对每个Connector

设置enableLookups="false":

enableLookups="false"redirectPort="8443" URIEncoding="UTF-8"acceptCount="1000" />

6.设置解决乱码问题

Server.xml

对每个Connector设置

URIEncoding="UTF-8"acceptCount="1000" />

7.启用Tomcat压缩(HTTP压缩)功能

Server.xml

对每个Connector设置

 

<Connector port="80"maxHttpHeaderSize="8192"  maxThreads="150" minSpareThreads="25"

 maxSpareThreads="75"enableLookups="false" redirectPort="8443"acceptCount="100"
 connectionTimeout="20000"disableUploadTimeout="true" URIEncoding="utf-8"
compression="on"
compressionMinSize="2048"
   noCompressionUserAgents="gozilla, traviata" 

compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"  />

 

1) compression="on" 打开压缩功能
2) compressionMinSize="2048" 启用压缩的输出内容大小,这里面默认为2KB
3) noCompressionUserAgents="gozilla, traviata" 对于以下的浏览器,不启用压缩
4) compressableMimeType="text/html,text/xml"压缩类型
      

参考列表

http://blog.sina.com.cn/s/blog_790229d301017ow2.html


Tomcat Linux 7、8、9版本汇总与部署指南 Apache Tomcat是一个开源的Web服务器和Servlet容器,由Apache软件基金会负责开发和维护。它是一个免费、开放源代码的Servlet容器,实现了Java Servlet和JavaServer Pages(JSP)技术规范。Tomcat提供了一个运行时环境,用于运行Java代码。它被广泛用作小型独立的Web应用服务器,也可以作为其他应用服务器的Servlet引擎。Tomcat作为一个独立的Web服务器,支持JSP和Servlet标准,是Java EE应用的必要组成部分。pwd。 阅读详情

相关推荐

CentOS 7下kkFileView 4.4.0离线部署全攻略(含LibreOffice 7.5配置避坑指南)

本文详细介绍了在CentOS 7环境下离线部署kkFileView 4.4.0的全流程,包括LibreOffice 7.5的配置避坑指南、中文字体解决方案以及企业级运维实践。通过本指南,用户可以在内网环境中快速搭建稳定可靠的文档在线预览服务,提升办公效率。

weixin_28481133的博客 290

tomcat优化

-server:启用jdk的server版本 -xms:虚拟机初始化时的最小堆内存 -xmx:虚拟机可使用的最大堆内存(尽量设置为xms一样的值,避免jvm因为频繁的gc导致性能大起大落) -xx:permsize设置非堆内存的初始值,默认为物理内存的1/64 -xx:maxnewsize:新生代占整个堆内存的最大值,也称内存最大永久保留区域 常见报错 outofmemoryerror 内存溢出...

运维从业人员 205

快速玩转 Llama2!机器学习 PAI 最佳实践(一)—低代码 Lora 微调及部署

本实践将采用阿里云机器学习平台PAI-快速开始模块针对 Llama-2-7b-chat 进行开发。PAI-快速开始支持基于开源模型的低代码训练、布署和推理全流程,适合想要快速开箱体验预训练模型的开发者。

阿里云云栖号 1766

Tomcat部署及优化

Tomcat部署和启动优化 前言:tomcat是啥玩意? 自从 JSP 发布之后,推出了各式各样的 JSP 引擎。Apache Group 在完成 GNUJSP1.0 的开发以后,开始考虑在 SUN 的 JSWDK 基础上开发一个可以直接提供 Web 服务的 JSP 服务器, 当然同时也支持 Servlet, 这样 Tomcat 就诞生了。 Tomcat 是 Apache 软件基金会(Apach...

qq_45682385的博客 385

STM32F103电压采集proteus仿真

基于HAL库,仿真单片机型号为stm32f103R6,代码keil5。通过单片机的ADC采集功能,测量四路电压,数据经由DMA传输,并将结果通过串口输出,结果比较确,误差在0.01V左右。目前仿真采集四路比较稳定,多了会乱码。proteus版本8.11安装包链接:https://pan.baidu.com/s/1yhNKLl1lGSU9KU0tTuAxcg?pwd=dxe8提取码:dxe8项目下载地址:.

weixin_42490599的博客 4767

powerdesigner导出sql将name放到comment注释上

【代码】powerdesigner导出sql将name放到comment注释上。

weixin_45947759的博客 1352

Tomcat常用的优化技巧

在Tomcat服务器上部署的应用系统,如果用户并发量小,系统可能不会出问题,但是并发量大时,系统反应速度迅速下降,由于不了解原因拼命在自己的应用中寻找问题,从而浪费了宝贵的时间。

智庵的博客 1665

ROS2仿真抓取分拣案例,使用myCobot 280机械臂结合ROS2系统搭建机械分拣站

本案例展示了如何利用myCobot 280 urdf模型构建一个对象分类站,并在ROS2 jazzy中完成运动规划。

m0_71627844的博客 2125

Tomcat实战-调优方案

Tomcat的默认配置,性能并不是最优的,我们可以通过优化tomcat以此来提高网站的并发能力。提高Tomcat的性能可以分为两个方向。 服务器资源服务器所能提供CPU、内存、硬盘的性能对处理能力有决定性影响,所以说服务器性能牛B,Tomcat也不会太差。当然提高服务器的硬件配置,是需要大量RMB的支持的。所以不到万不得已不会采用这种方式,一般公司会采取下面这种通过优化配置,来提升Tomcat性能的

陌上花开,可缓缓归矣 2万+

IEEE Transactions on Industrial Informatics(TII)投稿全流程解析:从准备到成功提交

本文详细解析了向IEEE Transactions on Industrial Informatics(TII)投稿的全流程,涵盖从投稿前的格式准备、内容结构优化到在线提交系统实操等关键环节。重点强调了遵守TII严格的格式规范、双盲评审要求以及如何构建有说服力的学术叙述,旨在帮助研究者提升稿件质量,顺利通过评审。

weixin_28396629的博客 1864

IMX335摄像头原理图设计,已量产

从工程组织上看,IMX335 模组和 IMX415 模组属于同一类产品:核心矛盾不是外设多,而是高速图像链路、电源域和调试接口要同时兼顾。ATK-MCIMX335 这张图的结构也很直接,三路 LDO、本地 24MHz 可选时钟、4-lane MIPI 数据对和一组主板侧标准接口,构成了一张非常典型的量产摄像头子板。

不脱发的程序猿 440

Tomcat优化实践——网站运维

http://my.oschina.net/mynote/blog/181613

ceasar11的专栏 812

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Tomcat6优化汇总

Tomcat6优化汇总 前言: 上个星期对平台开发系统进行了首次压测,在晶晶的压力测试帮助下,终于将IBM R61的本本跑出了2100用户的好成绩(Tomcat6+Oracle11g+PlatForm+Ubuntu8.10)! 另,不过细节过程可能忘记了,晶晶表介意,大概吧事实讲述清楚,好不!!:) 楔子: 压力测试,通过对tomcat6的逐步优化,终于让IBM R61压测用户跑上了

弦上爱的专栏 1054

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

tomcat常规优化汇总

1、调整jvm启动参数 JAVA_OPT="-server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=512M XX:MaxMetaspaceSize=1024M -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=80 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=

Swordzjc的专栏 229

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Tomcat,Weblogic,Redis等应用优化汇总

tomcat,weblogic,redis等应用优化 一、 tomcat优化 禁用tomcat的AJP协议 在服务状态页面中可以看到,默认状态下会启用AJP服务,并且占用8009端口。 注释: 可以看到AJP服务不存在了。 2. 使用线程池提高性能 在tomcat中每一个用户请求都是一个线程,所以可以使用线程池提高性能。 vim server.xml <!‐‐将注释打开‐‐> <!‐‐ 参数说明: maxThreads:最大并发数,默认设置 200,一般建议在 500 ~ 1

qq_34362409的博客 2014

Tomcat6优化汇总–让R61本本也能跑上两千

上个星期对平台开发系统进行了首次压测,在晶晶的压力测试帮助下,终于将IBM R61的本本跑出了2100用户的好成绩(Tomcat6+Oracle11g+PlatForm+Ubuntu8.10)! 另,不过细节过程可能忘记了,晶晶表介意,大概吧事实讲述清楚,好不!!:) 楔子: 压力测试,通过对tomcat6的逐步优化,终于让IBM R61压测用户跑上了2100人,有点极限的样子,单在整个测试...

kalogen的专栏 171

高频面试题汇总:Java性能优化JVM、Tomcat、MySQL一次彻底扫盲

性能优化是什么?性能优化,简而言之,就是在不影响系统运行正确性的前提下,使之运行地更快,完成特定功能所需的时间更短。 在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身。养成良好的编码习惯非常重要,能够显著地提升程序性能。 今天就由京东资深技术官来详解「Java性能优化」问题,从JVM、Tomcat、MySQL三种调优方式来详细讲解,以下含一些面试题、脑图以及调优文档等资料。 核心技术JVM、Tomcat、MySQL面试题一次彻底扫盲 1. 调优篇 JVM知识整理 JV

文章中资料均可获取,有需要请添加yunduoa2019即可 153

tomcat知识汇总

tomcat 体系架构 Tomcat系列(4)——Tomcat 组件及架构详细部分 tomcat-架构原理 Tomcat(二):tomcat配置文件server.xml详解和部署简介 四张图带你了解Tomcat系统架构 深入理解 Tomcat (二) 从宏观上理解 Tomcat 组件及架构 【面试总结】–tomcat调优方案 图解Tomcat类加载机制(阿里面试题) tomcat 知识汇总 Tomcat 面试题汇总 Tomcat安装、配置、优化及负载均衡详解 Java虚拟机工作原理详解 Tomcat 架构

qq_18846731的博客 159

Tomcat常见问题汇总

1.在服务器上一定要开启-server参数 #直接在一堆注释下添加即可 #即是在 # OS specific support.注释之前 JAVA_OPTS= -server 2.tomcat启动很慢 因为原因 org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom 产生JVM上的随机数与熵池策略花了太...

weixin_30709809的博客 180

【Linux】Tomcat优化

文章目录1、Tomcat整体架构2、Tomcat优化2.1 JVM内存优化2.2 JVM内存调整2.3 JVM相关监控(了解)2.3.1 jps2.3.2 jstat2.3.3 jmap2.3.4 jstack2.3.5 jhat2.3.6 手动编写内存监控界面:2.4 压缩传输2.5 并发连接调优2.6 禁用DNS查询2.7 IO优化2.8 添加Listener2.9 版本号隐藏相关文章🔅 1、Tomcat整体架构   Tomcat中最顶层的容器是Server,代表着整个服务器,从上图中可以看出,一个

liu_chen_yang的博客 3323

TOMCAT优化

Tomcat是我们经常使用的 servlet容器之一,甚至很多线上产品都使用 Tomcat充当服务器。而且优化后的Tomcat性能提升显著,本文从以下几方面进行分析优化。           一、内存优化         默认情况下Tomcat的相关内存配置较低,这对于一些大型项目显然是不够用的,这些项目运行就已经耗费了大部分内存空间,何况大规模访问的情况。即使是本文中的这个只有

qiaojieqq11的博客 9665

Tomcat优化

Tomcat优化 tomcat服务器在JavaEE项目中使用率非常高,所以在生产环境对tomcat的优化也变得非常重要了。对于tomcat的优化,主要是从2个方面入手,一是,tomcat自身的配置,另一个是tomcat所运行的jvm虚拟机的优化。 1、Tomcat配置优化 1.1、部署安装tomcat 下载并安装:https://tomcat.apache.org/download-80.cgi ...

lai赖的博客 1447

Tomcat 优化

转载自https://www.cnblogs.com/klslb/p/8665266.html 一.Tomcat内存优化 **   Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 java_OPTS 参数。   JAVA_OPTS参数说明   -server 启用jdk 的 server 版;   -Xms java虚拟机初始化时的最小内存;   -Xmx java虚拟机可使用的最大内存;   -XX: PermS..

qq_34823218的博客 2600

Tomcat优化篇

reloadable:如果这个属性设为true,tomcat服务器在运行状态下会监视在WEB-INF/classes和WEB-INF/lib目录下 class文件的改动,如果监测到有class文件被更新的,服务器会自动重新加载Web应用。你可以简单地理解为,Tomcat将以JNI的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网络传输操作,从而大大地提高Tomcat对静态文件的处理性能。nio:new I/O,同步非阻塞的I/O操作,比传统的bio有更好的并发运行性能。

技术与业务融合思维 1565
上一篇: 【优化】--Memcache优化汇总
下一篇: 【安装与配置】--CollabNetSubversionEdge安装与使用
D_Chasel
博客等级 码龄15年 2粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值