Tomcat

Tomcat-如何檢查目前使用的記憶體設置

  • August 7, 2012

我已經使用 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。

執行以下命令:

tomcat7w //ES//<ServiceName>

然後應該彈出以下內容:

Java 服務管理器

點擊帶下劃線的 Java 選項卡並在突出顯示的區域中添加參數。


為了檢查這一點,我使用了 jinfo 執行檔(在 \bin 文件夾中)。Jinfo 列印給定 Java 程序的 Java 配置資訊。使用以下語法執行此命令:

jinfo -flags PID-of-Tomcat-executable

下面的小腳本為我節省了一些時間,不必每次都找出 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%

引用自:https://serverfault.com/questions/411141