【问题标题】:Increase memory size of Apache Tomcat Windows Service for a Java application created by an executable file为由可执行文件创建的 Java 应用程序增加 Apache Tomcat Windows 服务的内存大小
【发布时间】:2019-06-21 10:09:22
【问题描述】:

我们有一个旧版 Java Web 应用程序,我们使用可执行文件将其部署到 Windows Server 2012 机器上,并且需要增加其内存池大小,因为我们遇到了很多内存不足异常。

它在 Program Files 上创建自己的文件夹,包括 tomcat bin 文件夹和一个名为“Apache Tomcat servicename”的 Windows 服务,它基本上是 Tomcat 版本 6,但是当我尝试通过 tomcat6w.exe 编辑其 Java 选项时,它说这个服务是未安装在系统上。

有没有办法将应用程序正在使用的tomcat服务更改为从http://tomcat.apache.org/安装的tomcat服务

或者在创建可执行文件以硬编码那里的内存池大小时编辑 service.bat(或任何其他文件?)?

service.bat 中有一行如下:

"%EXECUTABLE%" //US//%SERVICE_NAME% ++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties" --JvmMs 128 --JvmMx 256

【问题讨论】:

  • 您需要检查创建服务并在那里进行更改的可执行文件中发生的情况。

标签: java apache jvm executable tomcat6


【解决方案1】:

你的 Tomcat 会有两个 exe 文件,Tomcat6.exe 和 Tomcat6w.exe

假设您的服务名称是“Windows 服务”中所示的“MyService”,现在将 Tomcat6w.exe 重命名为 MyServicew.exe(注意文件名中也有一个“w”)。

现在双击这个 MyServicew.exe,一个直观的 UI 会显示给 Monkey,其中包含服务参数。

一切顺利!

【讨论】:

    【解决方案2】:

    在 service.bat 文件中增加这些参数 --JvmMs 128 --JvmMx 256--JvmMs 1024 --JvmMx 2048

    【讨论】:

      【解决方案3】:

      您似乎没有使用 JSS 安装程序安装 Tomcat。如果您使用 JSS Installer 安装了 Tomcat,则可以使用 tomcat6w。

      此时,您需要按照以下步骤操作:

      • 运行位于开始菜单 > 所有程序 > Apache Tomcat x > 配置 Tomcat 下的快捷方式
      • 在 Java 选项卡下,对内存池进行任何调整。
      • 点击应用保存更改。
      • 重新启动 Tomcat。

      【讨论】:

        【解决方案4】:

        解决方案是通过注册表编辑 Tomcat RAM 使用情况,方法是运行 regedit,浏览到:

         HKEY_LOCAL_MACHINE > SOFTWARE > Wow6432Node > ApacheSoftwareFoundation >
           Procrun 2.0 > apache-tomcat > Parameters > Java
        

        并编辑以下值:

        JvmMs  REG_DWORD   0x00000800 (2048)
        JvmMx  REG_DWORD   0x00001000 (4096)
        

        上述情况适用于 Tomcat 作为 Windows 服务并通过自定义可执行文件安装且无法通过 tomcatxw.exe 管理器访问其配置的情况。

        【讨论】:

          【解决方案5】:

          试试这个

          1. 进入 Windows 注册表并找到目录 HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\htfty\Parameters\Java

          2. 你可以在那里看到参数JvmMs和JvmMx。将它们更改为所需的值并重新启动服务。

          【讨论】:

          • @Alex 没关系,我看到你已经有了解决方案。我昨天起草了答案,但忘记发布了。
          【解决方案6】:

          在tomcat安装的bin目录下应该有一个名为catalina.bat的文件(apache tomcat 7+中的setenv.bat)。您可以将您的选项添加到 CATALINA_OPS 并在重新启动 tomcat 后应用它们。用于检查是否应用了 jvisualvm(它会显示为您的 jvm 设置了哪些选项)。

          【讨论】:

          • 这在 Tomcat 作为 Windows 服务运行时不适用。
          • 只是一个错字,应该是 catalina.bat 和 setenv.bat,我已经更新了我的帖子
          • 我的意思是当 Tomcat 作为 Windows 服务运行时 setenv.bat 不会被调用。 “这里描述的所有环境变量和“setenv”脚本仅在您使用标准脚本启动 Tomcat 时使用。例如,如果您在 Windows 上将 Tomcat 作为服务安装,则服务包装器会直接启动 Java 而不会使用脚本文件。”更多信息:tomcat.apache.org/tomcat-7.0-doc/RUNNING.txt
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-08-24
          • 2011-04-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多