大多数人似乎建议通过编辑/usr/share/tomcat6/bin/catalina.sh文件来设置Tomcat6的Java / Tomcat堆内存大小,并添加如下内容:
# Set specific memory requirements for Tomcat6 (for server with ~512MB RAM).
CATALINA_OPTS="$CATALINA_OPTS -server -Xms128m -Xmx256m"
我正在尝试构建一个Ansible playbook来在Ubuntu上配置基于Tomcat的服务器,而且我觉得整个自定义catalina.sh文件都不是理想的 - 是否有其他配置文件或本地Tomcat和/或Java用来获取Xms
和Xmx
值的设置文件/系统?
或者......大多数人都使用自定义的catalina.sh文件,而我只是在一个小山丘上建造一座山?
答案 0 :(得分:5)
Tomcat从bin目录中读取setenv.sh
以获取这些额外设置。 setenv.sh
没有tomcat,但你可以为你创建一个并在其中设置CATALINA_OPTS。
Tomcat不建议使用JAVA_OPTS设置内存,因为它适用于启动和关闭。
答案 1 :(得分:1)
如果您通过“catalina.sh”脚本(直接或间接)启动,那么您有两个选择:
按照建议修改(“hack”!)脚本。
查找调用脚本的位置,并确保CATALINA_OPTS
设置为包含“-mx”选项...并导出...
后者可能“更干净”,但没有简单的,一刀切的方式来获得变量集和导出。如果您将Tomcat作为服务启动,则取决于您的发行版如何包装Tomcat。
[我是]只是在一个小山丘上建造一座山?
这取决于。如果您只是在非生产平台上执行此操作,那么是。如果您正在尝试构建一个生产系统,该系统将继续在您的发行版中进行包升级和升级,那么请注意(在后一种情况下,值得找出最佳方法为您的特定发行版。)
答案 2 :(得分:0)
为清楚起见:我在tomcat / bin中的setenv.sh脚本中使用了此命令。我可以验证它是否适用于Ansible或我自己的安装脚本:
CATALINA_OPTS="$CATALINA_OPTS -server -Xms512m -Xmx2048m"
请注意,这适用于Tomcat 8,但也应适用于Tomcat 7。