我已经使用Server 2008和IIS 7build立了一个Tomcat服务器。
我怎么知道JAVA_OPTS环境variables是否被实际使用?
我以前听说过,为了使JAVA_OPTS环境variables能够被使用,我必须编辑service.bat文件,但是如何判断它是否成功呢?
我一直无法确定是否有方法在日志中查看这些数据,或者是其他更加定量的数据。 我能想到的唯一方法就是编辑这个variables,试着去判断这个variables是否有差异。 我将JAVA_OPTS设置为以下内容:
-server -Xmx1k -Xms1k-Xmn1k -Xss128k -XX:+UseParallelGC -XX:ParallelGCThreads=20 -XX:PermSize=1k -XX:MaxPermSize=1k
另外,我发现文档说在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
至:
"%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" %JAVA_OPTS%
我运行命令时没有错误
service install ServiceName
到目前为止,似乎一切运行的速度都像以前一样快,我重新安装了更改的内存设置的服务,使我认为JAVA_OPTS不影响任何东西。
对不起,如果这是一个广泛的问题,但我还没有find一个很好的结果,关于在后端实际发生的事情。 有人可以解释一下吗?
好吧,我find了我正在寻找的信息,所以我会接受我的答案,因为我给了更多的细节,但是+1给David Levesque的线索。
我发现我试图设置的内存设置没有被使用。 为了更改内存设置,我在\ bin文件夹中使用了tomcat7w。
运行以下命令:
tomcat7w //ES//<ServiceName>
那么应该popup以下内容:
单击加下划线的Java选项卡,并在突出显示的区域中添加参数。
为了检查这个,我使用了jinfo可执行文件(在\ bin文件夹中)。 Jinfo打印给定Java进程的Javaconfiguration信息。 使用以下语法运行此命令:
jinfo -flags PID-of-Tomcat-executable
下面的小脚本让我每次都find了Tomcat的PID,所以我想我不妨在这里发帖:
@echo off for /f "tokens=1,2 delims= " %%i in ('=tasklist ^| findstr "tomcat"') do ( echo Tomcat Executable = %%i echo Tomcat Process ID = %%j set tomcat_pid=%%j ) echo %tomcat_pid% %JAVA_HOME%\bin\jinfo -flags %tomcat_pid%
您可以使用JDK附带的jinfo
实用程序在运行时查询VM标志和系统属性。