我已经使用 Server 2008 和 IIS 7 设置了一个 Tomcat 服务器。
如何判断是否实际使用了 JAVA_OPTS 环境变量?
我之前听说我必须编辑 service.bat 文件才能使用 JAVA_OPTS 环境变量,但我怎么知道它是否成功?
我一直没能找到是否有办法在日志或其他更定量的东西中查看它。我能想到的尝试测试它的唯一方法是编辑变量并尝试判断性能是否存在差异。我将 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 没有影响任何东西。
抱歉,如果这是一个广泛的问题,但关于后端实际发生的事情,我还没有找到好的线索。有人可以阐明这一点吗?
好吧,我找到了我正在寻找的信息,所以我将接受我的回答,因为我提供了更多细节,但 +1 给 David Levesque 作为线索。
我发现我试图设置的内存设置没有被使用。为了更改内存设置,我在 \bin 文件夹中使用了 tomcat7w。
运行以下命令:
然后应弹出以下内容:
单击带下划线的 Java 选项卡并在突出显示的区域添加参数。
为了检查这一点,我使用了 jinfo 可执行文件(在 \bin 文件夹中)。Jinfo 打印给定 Java 进程的 Java 配置信息。使用以下语法运行此命令:
下面的小脚本节省了我每次都必须找出 Tomcat 的 PID 的时间,所以我想我不妨把它贴在这里:
您可以使用
jinfo
JDK 附带的实用程序在运行时查询 VM 标志和系统属性。