Tomcat -- catalina.bat

本文详细解释了如何在Tomcat的catalina.bat文件中手动分配内存以防止溢出,包括堆内存和非堆内存的设置建议,以及为何在Windows服务环境下需要修改注册表参数来确保正确的内存分配。同时,文中提到了如何避免因Java堆内存设置不当导致的OOM错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Tomcat – catalina.bat 配置

1. 手动分配内存,防溢出
# 位置:..\Tomcat\bin\catalina.bat;
# @echo off 下面添加(第二行):
set JAVA_OPTS=-server -Xms2048m -Xmx2048m -Xss512k -XX:NewSize=256m -XX:MaxNewSize=512m -XX:PermSize=256m -XX:MaxPermSize=512m 
# 默认单位是KB
-server: 启动jvm时以服务器方式启动,比客户端启动慢,但性能较好;
# 堆内存
-Xms: 初始化内存大小,默认是物理内存的1/64;(cpu性能高时此值应设的大一些)
-Xmx: 可以使用的最大内存,默认是物理内存的1/4;(建议设为物理内存的一半)
-Xss: 每增加一个线程(线程)消耗的内存;

# 非堆内存
-XX:NewSize: 新生成的池的初始大小,默认2M;
-XX:MaxNewSize: 新生成的池的最大大小,默认32M;
-XX:PermSiz: 设定内存的永久保存区初始值, 默认64M;
-XX:MaxPermSize: 设定内存的永久保存区最大值, 默认64M;


PS:
# 1. 建议把内存的最高值跟最低值的差值缩小,不然会浪费很多内存的,建议均设为物理内存的一半;
# 2. 默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、-Xmx 相等以避免在每次GC 后调整堆的大小;
# 3. 如果-Xmx 不指定或者指定偏小,应用可能会导致OOM错误,此错误来自JVM,不是Throwable的,无法用try…catch捕捉;

# 注册 tomcat 为服务启动;
Windows 
在catalina.bat最前面加入 
set JAVA_OPTS=-Xms128m -Xmx350m 
如果用startup.bat启动tomcat,OK设置生效.够成功的分配200M内存. 
但是如果不是执行startup.bat启动tomcat而是利用windows的系统服务启动tomcat服务,上面的设置就不生效了, 
就是说set JAVA_OPTS=-Xms128m -Xmx350m 没起作用.上面分配200M内存就OOM了.. 
windows服务执行的是bin\tomcat.exe.他读取注册表中的值,而不是catalina.bat的设置. 
解决办法: 
修改注册表:
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Apache Software Foundation\Procrun 2.0\tomcat\Parameters\Java -> Options;
原值为 
-Dcatalina.home="C:\ApacheGroup\Tomcat 5.0" 
-Djava.endorsed.dirs="C:\ApacheGroup\Tomcat 5.0\common\endorsed" 
-Xrs //没有手动添加
加入 -Xms300m -Xmx350m 
重起tomcat服务,设置生效 
### 回答1: apache-tomcat-10.1.8.tar.gz 是一个压缩文件,其中包含了 Apache Tomcat 服务器的安装文件。Apache Tomcat 是一个开源的 Java Servlet 容器,它实现了 Java Servlet 和 JavaServer Pages (JSP) 规范,可用于运行基于 Java 技术的 Web 应用程序。 .tar.gz 是一种常见的文件压缩格式,通过使用 tar 命令打包文件,再用 gzip 压缩得到的文件。所以,解压缩这个文件需要使用 tar 和 gzip 命令。 首先,我们需要将这个文件下载到本地。然后,通过执行以下命令解压缩文件: ``` tar -zxvf apache-tomcat-10.1.8.tar.gz ``` 解压后,会得到一个名为 apache-tomcat-10.1.8 的目录,其中包含了 Tomcat 服务器的所有文件。 在这个目录下,可以找到 server.xml 文件,它是 Tomcat 服务器的主要配置文件。通过编辑这个文件,可以修改服务器的一些配置,比如端口号、连接池大小等。 在 bin 目录下,可以找到启动和停止 Tomcat 服务器的脚本文件。对于 Linux 或 macOS 系统,可以运行以下命令来启动 Tomcat 服务器: ``` ./catalina.sh start ``` 对于 Windows 系统,可以运行以下命令: ``` catalina.bat start ``` 启动后,可以通过访问 http://localhost:8080 来访问 Tomcat 服务器的默认页面。如果一切正常,将会显示欢迎页面。 除了以上提到的文件和目录,还有其他一些目录,比如 webapps 目录用于存放 Web 应用程序的 WAR 文件。将你开发的 Web 应用程序打包成 WAR 文件后,将其放置到这个目录下,即可在 Tomcat 服务器中运行你的应用。 总之,apache-tomcat-10.1.8.tar.gz 是 Apache Tomcat 服务器的安装文件。通过解压缩这个文件,并根据需要配置和启动服务器,我们就可以运行基于 Java 技术的 Web 应用程序了。 ### 回答2: apache-tomcat-10.1.8.tar.gz是一个压缩文件,其中包含了Apache Tomcat 10.1.8版本的安装包。Tomcat是一个开源的Java Web服务器软件,可用于部署和运行Java Web应用程序。 .tar.gz是一种常见的压缩文件格式,通过该文件格式可以将多个文件和文件夹打包成一个单独的文件,并经过压缩以减小文件大小。要使用这个安装包,首先需要将它解压缩。 解压缩.tar.gz文件可以使用命令行工具或者图形界面工具。在命令行中,可以使用tar命令来解压缩该文件。例如,可以输入以下命令来解压缩: tar -zxvf apache-tomcat-10.1.8.tar.gz 这将解压缩文件到当前目录。解压缩完成后,可以在文件夹中找到Apache Tomcat 10.1.8的所有文件和文件夹。 解压缩后的文件夹中包含了Tomcat的各种配置文件、示例应用程序和其他必要的文件。要安装Tomcat,可以根据具体的需求对这些文件进行配置和修改。 安装完成后,可以使用命令行运行Tomcat服务器。它将监听指定的端口,并处理来自客户端的请求。通过浏览器访问Tomcat服务器的地址和端口号,可以在浏览器中看到Tomcat的欢迎页面。 总之,apache-tomcat-10.1.8.tar.gz是Apache Tomcat 10.1.8版本的安装包,通过解压缩该文件并进行配置,可以安装并运行Tomcat服务器,以便部署和运行Java Web应用程序。 ### 回答3: Apache Tomcat 是一个开源的Web应用服务器,它是基于Java Servlet和Java Server Pages(JSP)技术的容器。apache-tomcat-10.1.8.tar.gz 是 Tomcat 的安装包,其中的.tar.gz代表文件的压缩格式。 首先,我们需要将该文件解压缩。在Linux系统中,可以通过使用命令行工具tar来完成解压操作。可以执行以下命令: tar -zxvf apache-tomcat-10.1.8.tar.gz 解压完成后,我们可以在当前目录下看到一个名为apache-tomcat-10.1.8的文件夹。该文件夹包含了Tomcat服务器的所有文件。 接下来,我们可以进行相应的配置。我们可以根据需要修改/conf目录下的server.xml文件来配置服务器端口、连接池等设置。 在配置完成之后,我们可以启动Tomcat服务器。首先,我们需要进入解压后的Tomcat目录,然后执行以下命令: ./bin/startup.sh Tomcat服务器启动后,我们可以通过访问http://localhost:8080来访问Tomcat的默认网页,确认服务器已经成功启动。 在服务器运行过程中,我们可以将自己开发的Web应用程序部署到Tomcat服务器中。我们可以将我们的应用程序打包成一个war文件,并将其放置在Tomcat的webapps目录下。Tomcat会自动为我们解压并部署这个应用程序。 总之,apache-tomcat-10.1.8.tar.gz是Tomcat的安装包,通过解压该文件,进行相应的配置和启动,我们可以搭建出一个Tomcat服务器来运行Web应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值