Назад | Перейти на главную страницу

Tomcat - Как проверить текущие настройки памяти

Я установил сервер Tomcat с использованием Server 2008 и IIS 7.
Как узнать, действительно ли используется переменная среды 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 Дэвиду Левеску для потенциальных клиентов.

Я обнаружил, что настройки памяти, которые я пытался установить, не используются. Чтобы изменить настройки памяти, я использовал tomcat7w в папке \ bin.

Выполните следующую команду:

tomcat7w //ES//<ServiceName>

Затем должно появиться следующее:

Щелкните подчеркнутую вкладку Java и добавьте аргументы в выделенные области.


Чтобы это проверить, я использовал исполняемый файл jinfo (в папке \ bin). Jinfo печатает информацию о конфигурации Java для данного процесса Java. Выполните эту команду, используя следующий синтаксис:

jinfo -flags PID-of-Tomcat-executable

Следующий небольшой скрипт избавил меня от необходимости каждый раз узнавать PID Tomcat, поэтому я решил, что могу опубликовать его здесь:

@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%

Вы можете использовать jinfo утилита, поставляемая с JDK, для запроса флагов виртуальной машины и свойств системы во время выполнения.