想给 Tomcat 分配更多的内存,但是缺少 catalina.sh

Want to allocate more memory to Tomcat but catalina.sh is missing

我是 运行 Tomcat8 服务器 linux (RedHat)。它运行的机器共有 15GB Ram,我想将其中的 11GB 分配给 tomcat 服务器。目前只有3.3GB可用。

我安装了 openjdk 64 位。

我正在尝试将 CATALINA_OPTS 设置为 -Xms512M -Xmx11g 并将 JAVA_OPTS 设置为 -d64 -Xms256m -Xmx12g

我找到了一些关于 setenv.shcatalina.sh 的操作说明,但我找不到这两个内容:tomcat8/bincatalina_home 或 [=20] =] 都指向 /root.

那么如何增加 Tomcat 服务器的可用内存?

谢谢!

catalina.sh 在 tomcat/bin

之下

似乎 catalina.sh 在最新的 tomcat 版本中不再存在,或者它与我使用的是亚马逊虚拟机并且他们有某种修改的事实有关tomcat8 分布我会怀疑。

解决方法: usr/share/tomcat8/conf/ 下有一个 tomcat8.conf 文件。 添加行 JAVA_OPTS="-Xms1g -Xmx12g" 就成功了。

更新: 请查看此post

下方的评论

在 RedHat 等发行版中,标准 Tomcat 结构分散在不同的位置,主要的 catalina.sh 确实不存在。

您可能会找到两个配置文件。假设 Tomcat 8,你会发现:

  • /etc/tomcat8/tomcat8.conf - 这是主文件
  • /etc/sysconfig/tomcat8 - 这是从上面继承的每个服务文件。

此拆分旨在让您可以拥有多个 Tomcat 个实例 运行,它们共享一些设置,并且第一个/第二个/第三个实例具有不同的设置。

例如,如果您想更改软件的位置,通常这会被共享,因此您会更改 /etc/tomcat8/tomcat8.conf,但如果您想更改命令行参数(将上下文传递给 Tomcat 实例)或更改特定实例的内存,您将使用 /etc/sysconfig/tomcat8。 tomcat 的第二个实例可以命名为 tomcat8b,在这种情况下,它的配置文件将是 /etc/sysconfig/tomcat8b.

如果您不打算 运行 第二个实例,则更改任一文件。