【问题标题】:How do I increase memory on Tomcat 7 when running as a Windows Service?作为 Windows 服务运行时,如何增加 Tomcat 7 的内存?
【发布时间】:2011-08-24 11:32:42
【问题描述】:

我正在尝试将 Tomcat 7 作为 Windows 服务(XP 和 Windows 7)运行。

我看到在 catalina.bat 中设置 -Xmx 和 -Xms jvm 参数的位置,但我不确定在使用 $CATALINA_HOME/bin/service.bat 安装服务名称时如何设置。我环顾四周,但我能找到的最好的结果是我需要更新 Windows 注册表项,但我不确定要编辑哪个。

我希望有更简单的方法,是吗?

更新:我没有使用 Windows 安装程序,主要是因为我在同一台机器上运行多个 tomcat 实例,但端口不同(出于我不想在这里讨论的原因)。如果我可以将安装程序与使用不同端口的多个实例一起使用,那么我想知道如何,但无论如何,是否可以在没有安装程序附带的 UI 工具的情况下增加 tomcat Windows 服务的内存?

【问题讨论】:

    标签: java windows tomcat tomcat7


    【解决方案1】:

    假设您已经从Tomcat homepage 下载并安装了 Tomcat 作为 Windows Service Installer exe 文件,然后检查系统托盘中的 Apache 羽毛图标(或者如果没有,请运行 Monitor Tomcat 从开始菜单)。双击羽毛图标并转到 Java 选项卡。在那里你可以配置内存。

    重新启动服务以使更改生效。

    【讨论】:

    • Hai @BalusC, 1. 我想添加-XX:MaxPermSize。如果我像你说的那样喜欢上面的内容,就足够了吗?还有 2. 我想将 -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled 添加到 catalina 批处理脚本中。我怎样才能?请指导我...
    • @vissu:如果您有新问题,请按右上角的 按钮。
    • 我更改了这个并保存。但是当我尝试再次启动它时,tomcat 没有启动。一旦我改回默认内存大小,我就可以再次启动 tomcat。
    • 或者你可以直接运行 .\bin\tomcat7w.exe ,即使你没有使用安装包。
    • 运行%CATALINA_HOME%\bin\tomcatXw.exe可以打开相同的对话框,其中X是主要版本号。另见tomcat.apache.org/tomcat-7.0-doc/windows-service-howto.html
    【解决方案2】:

    我认为,我自己的问题的答案是使用 tomcat7.exe:

    cd $CATALINA_HOME
    .\bin\service.bat install tomcat
    .\bin\tomcat7.exe //US//tomcat7 --JvmMs=512 --JvmMx=1024 --JvmSs=1024
    

    此外,您可以在没有系统托盘的情况下启动 BalusC 提到的 UI 工具或使用带有 tomcat7w.exe 的安装程序

    .\bin\tomcat7w.exe //ES//tomcat
    

    对此的补充说明:

    设置 --JvmXX 参数(通过 UI 工具或命令行)可能还不够。您可能还需要明确指定 JVM 内存值。从命令行可能看起来像这样:

    bin\tomcat7w.exe //US//tomcat7 --JavaOptions=-Xmx=1024;-Xms=512;..
    

    注意不要覆盖其他 JavaOption 值。您可以尝试更新 bin\service.bat 或使用 UI 工具并附加 java 选项(用新行分隔每个值)。

    【讨论】:

    • 您可以在这里找到更多这些选项directory.utk.edu/docs/windows-service-howto.html 此外,如果命令行选项中有特殊字符(例如,当您设置 javaagent 的路径时),您可能需要引用它们。更多需要注意的是,您可以使用 ++JvmOptions=... 将其附加到列表中,而不是 -- 删除其他所有内容。
    • ++JvmOptions 在大多数情况下更安全且足够,请小心使用 --JvmOptions 一个
    【解决方案3】:

    //ES/tomcat -> 如果您在安装过程中更改了服务名称,这可能不起作用。

    在没有任何服务名称的情况下运行命令

    .\bin\tomcat7w.exe //ES
    

    或使用确切的服务名称

    .\bin\tomcat7w.exe //ES/YourServiceName
    

    【讨论】:

      【解决方案4】:

      根据 catalina.sh 自定义应始终进入您自己的 setenv.sh(或分别为 setenv.bat),例如:

      CATALINA_OPTS='-Xms512m -Xmx1024m'
      

      我的猜测是启动服务时也会调用 setenv.bat。不过我可能是错的,因为我不是 Windows 用户。

      【讨论】:

      • 没有。 Setenv.bat 在作为服务运行时不会被调用。
      • downvote:setenv 作为 Windows 服务运行时不会被调用。
      【解决方案5】:

      如果您正在运行自定义命名服务,您应该会在 Tomcat/bin 目录中看到两个可执行文件
      就我而言,Tomcat 8

      08/14/2019  10:24 PM           116,648 Tomcat-Custom.exe
      08/14/2019  10:24 PM           119,720 Tomcat-Customw.exe
                     2 File(s)        236,368 bytes
      

      运行“w”终止的可执行文件将允许您在 Java 选项卡中配置 Xmx

      【讨论】:

      • 这个屏幕很有帮助,但我需要使用@bkumar 的命令来打开它。完整的命令是tomcat7w.exe //ES/MyServiceNameOnTaskManager
      • @MKYung 您也可以通过进入已安装/解压的 tomcat 文件夹的 bin 文件夹并执行 tomcat7w.exe(示例路径:C:\tomcat\bin\tomcat7w. exe)
      【解决方案6】:

      为Tomcat 7增加内存:

      确定您的服务名称,您将在服务属性中的“可执行文件路径”下找到它

      对我来说是 //RS//Tomcat70 所以名字是 Tomcat70

      然后以管理员身份写:

      tomcat7.exe //US//Tomcat70 --JvmOptions=-Xmx1024M
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-03
        • 1970-01-01
        • 1970-01-01
        • 2019-06-04
        相关资源
        最近更新 更多