为可执行文件创建的 Java 应用程序增加 Apache Tomcat Windows 服务的内存大小
Increase memory size of Apache Tomcat Windows Service for a Java application created by an executable file
我们有一个遗留的 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
在 service.bat 文件中增加这些参数
--JvmMs 128 --JvmMx 256
至 --JvmMs 1024 --JvmMx 2048
您似乎没有使用 JSS 安装程序安装 Tomcat。如果您已使用 JSS 安装程序安装 Tomcat,则可以使用 tomcat6w。
此时,您需要按照以下步骤操作:
- 运行 位于开始菜单 > 所有程序 > Apache Tomcat x > 配置下的快捷方式 Tomcat
- 在 Java 选项卡下,对内存池进行任何调整。
- 单击“应用”保存更改。
- 重新启动Tomcat。
解决方案是 运行 regedit
通过注册表编辑 Tomcat RAM 使用情况,浏览至:
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
管理器访问其配置时,以上内容适用。
试试这个
转到 windows 注册表并查找目录
HKEY_LOCAL_MACHINE\SOFTWARE\Apache 软件 Foundation\Procrun 2.0\htfty\Parameters\Java
那边可以看到参数JvmMs和JvmMx。将它们更改为所需的值并重新启动服务。
tomcat 安装的 bin 目录中应该有一个名为 catalina.bat
的文件(apache tomcat 7+ 中的 setenv.bat
)。您可以将您的选项添加到 CATALINA_OPS 并在重新启动后 tomcat 它们应该被应用。要检查是否应用了 jvisualvm(它会显示为您的 jvm 设置了哪些选项)。
您的 Tomcat 将有两个 exe 文件,Tomcat6.exe 和 Tomcat6w.exe
假设您的服务名称是 'MyService',如 'Windows Services' 所示,现在将 Tomcat6w.exe 重命名为 MyServicew.exe(注意还有一个 'w'文件名)。
现在双击这个 MyServicew.exe,一个直观的 UI 会呈现给您,里面有服务参数。
祝一切顺利!
我们有一个遗留的 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
在 service.bat 文件中增加这些参数
--JvmMs 128 --JvmMx 256
至 --JvmMs 1024 --JvmMx 2048
您似乎没有使用 JSS 安装程序安装 Tomcat。如果您已使用 JSS 安装程序安装 Tomcat,则可以使用 tomcat6w。
此时,您需要按照以下步骤操作:
- 运行 位于开始菜单 > 所有程序 > Apache Tomcat x > 配置下的快捷方式 Tomcat
- 在 Java 选项卡下,对内存池进行任何调整。
- 单击“应用”保存更改。
- 重新启动Tomcat。
解决方案是 运行 regedit
通过注册表编辑 Tomcat RAM 使用情况,浏览至:
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
管理器访问其配置时,以上内容适用。
试试这个
转到 windows 注册表并查找目录 HKEY_LOCAL_MACHINE\SOFTWARE\Apache 软件 Foundation\Procrun 2.0\htfty\Parameters\Java
那边可以看到参数JvmMs和JvmMx。将它们更改为所需的值并重新启动服务。
tomcat 安装的 bin 目录中应该有一个名为 catalina.bat
的文件(apache tomcat 7+ 中的 setenv.bat
)。您可以将您的选项添加到 CATALINA_OPS 并在重新启动后 tomcat 它们应该被应用。要检查是否应用了 jvisualvm(它会显示为您的 jvm 设置了哪些选项)。
您的 Tomcat 将有两个 exe 文件,Tomcat6.exe 和 Tomcat6w.exe
假设您的服务名称是 'MyService',如 'Windows Services' 所示,现在将 Tomcat6w.exe 重命名为 MyServicew.exe(注意还有一个 'w'文件名)。
现在双击这个 MyServicew.exe,一个直观的 UI 会呈现给您,里面有服务参数。
祝一切顺利!