Я установил сервер 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, для запроса флагов виртуальной машины и свойств системы во время выполнения.