На этой странице можно настроить параметры конфигурации виртуальной машины Java (JVM) процесса сервера приложений.
Для того чтобы открыть эту страницу административной консоли, подключитесь к административной консоли и перейдите в панель виртуальной машины Java.
При работе в
IBM i и на
распределенных платформах выберите Серверы > Типы серверов > Серверы приложений WebSphere >
имя_сервера. Затем в разделе Инфраструктура сервера выберите
Java и управление процессами > Определение процесса > Виртуальная машина Java
Сервер приложений | Выберите команду меню Серверы>Типы серверов>Серверы приложений WebSphere> имя-сервера. Затем в разделе Инфраструктура сервера выберите Java и управление процессами > Определение процесса > Управление > Виртуальная машина Java |
Диспетчер развертывания | Выберите Администрирование системы > Администратор развертывания. Затем в разделе Инфраструктура сервера выберите Java и управление процессами > Определение процесса > Управление > Виртуальная машина Java |
Агент узла | Выберите Администрирование системы > Агент узла > агент_узла. Затем в разделе Инфраструктура сервера выберите Java и управление процессами > Определение процесса > Виртуальная машина Java |
Сервер приложений | Выберите Серверы > Типы серверов > Серверы приложений WebSphere > имя_сервера. Затем в разделе Инфраструктура сервера выберите Java и управление процессами > Определение процесса > Виртуальная машина Java |
Диспетчер развертывания | Выберите Администрирование системы > Администратор развертывания. Затем в разделе Инфраструктура сервера выберите Java и управление процессами > Определение процесса > Виртуальная машина Java |
Агент узла | Выберите Администрирование системы > Агент узла > агент_узла. Затем в разделе Инфраструктура сервера выберите Java и управление процессами > Определение процесса > Виртуальная машина Java |
Стандартный путь к классам для виртуальной машины Java.
Если к этому полю необходимо добавить путь к классам, введите каждую запись пути к классам в отдельной строке таблицы. Добавлять двоеточие или точку с запятой в конце записей не нужно.
Тип данных | Строка |
Загрузочные классы и ресурсы для JVM. Эта опция доступна только для инструкций JVM, поддерживающих загрузочные классы и ресурсы.
Если к этому полю необходимо добавить путь к классам, введите каждую запись пути к классам в отдельной строке таблицы. Добавлять двоеточие или точку с запятой в конце записей не нужно.
Несколько путей разделяются двоеточием (:) или точкой с запятой (;), в зависимости от операционной системы, в которой работает JVM.
Несколько путей разделяются двоеточием (:) или точкой с запятой (;), в зависимости от операционной системы узла.
Подробный отладочный вывод загрузки классов. По умолчанию он выключен.
Если режим подробного отладочного вывода загрузки классов
включен, то отладочный вывод отправляется в один из стандартных протоколов
процесса.
Тип данных | Булевское значение |
Значение по умолчанию | false |
Подробный отладочный вывод сбора мусора. По умолчанию он выключен.
Если режим подробного отладочного вывода сбора мусора
включен, то отладочный вывод отправляется в один из стандартных протоколов
процесса.
Тип данных | Булевское значение |
Значение по умолчанию | false |
Если это поле включено, при каждом запуске сборщика мусора отчет направляется в выходной поток. Этот отчет должен давать представление о том, как работает процесс сбора мусора Java.
83,29/3724,32 * 100 = 2,236%
Если доля времени, затрачиваемого на сбор мусора, составляет более 5%, и сбор мусора выполняется часто, рекомендуется увеличить размер кучи Java.
Для того чтобы определить, растет ли размер выделенной кучи, посмотрите, не уменьшается ли процентная доля кучи, оставшаяся невыделенной, после каждого цикла сбора мусора. Если доля свободного пространства постоянно уменьшается, то это означает, что размер кучи постепенно растет. Это может сигнализировать об утечке памяти.
На платформе
z/OS
можно воспользоваться командой консоли
MVS
modify display, jvmheap для вывода информации о куче JVM. Кроме того, можно проверить записи
операций сервера и интервала SMF. Размер кучи JVM
также доступен для PMI и может отслеживаться программой
Tivoli
Performance Viewer.
Подробный отладочный вывод вызовов собственных методов. По умолчанию он выключен.
Тип данных | Булевское значение |
Значение по умолчанию | false |
Начальный размер кучи для JVM (в мегабайтах). Если это поле не заполнено, то применяется значение по умолчанию.
В
z/OS
значение по умолчанию для управляющего процесса равно 48 Мб, для подчиненного - 128 Мб. Эти значения по умолчанию применимы как для
31-разрядных, так и для 64-разрядных конфигураций.
Для IBM i и распределенных платформ начальный размер кучи по
умолчанию составляет 50 Мб.
Увеличение этого значения может ускорить запуск. Уменьшается число событий сбора мусора, достигается 10% выигрыш в производительности.
Увеличение размера кучи Java повышает производительность до тех пор, пока куча помещается в физической памяти. Если размер кучи превышает объем физической памяти и включена подкачка, то производительность заметно снижается.
Максимальный размер кучи для JVM (в мегабайтах). Если это поле не заполнено, то применяется значение по умолчанию.
Максимальный размер кучи по умолчанию равен 256 Мб. Это значение по умолчанию применимо как для 31-разрядных, так и для 64-разрядных конфигураций.
Увеличение максимального размера кучи может ускорить запуск. При этом уменьшается число событий сбора мусора, и достигается 10% выигрыш в производительности.
Увеличение этого значения повышает производительность до тех пор, пока куча помещается в физической памяти. Если размер кучи превышает объем физической памяти и включена подкачка, то производительность заметно снижается. По этой причине, следует задавать максимальный размер кучи так, чтобы она помещалась целиком в физической памяти.
Для того чтобы избежать подкачки, вы должны указать для этого
свойства значение, соответствующее минимум 256 Мб физической памяти для каждого
процессора и 512 Мб памяти для каждого сервера приложений. Если из-за подкачки
величина использования процессоров низка, то вместо увеличения максимального
размера кучи, если возможно, увеличьте доступную память. Увеличение
максимального размера кучи может привести не к повышению, а к снижению
производительности.
В IBM i, если свойство равно 0, то сборщик
мусора будет запускаться только при превышении порога сбора мусора. Для
любого другого значения, отличного от 0, сборщик мусора
будет запускаться по достижении указанного максимального размера кучи. Однако
все нити приложений, в отличие от обычного сборщика мусора, при достижении
максимального размера кучи будут ожидать окончания процесса сбора мусора. Это
может приводить к нежелательным паузам. Поэтому максимальный размер кучи должен
задаваться только как средство ограничения непредвиденного роста кучи, чтобы
размер кучи не мог превысить объем доступной памяти. В обычных обстоятельствах
максимальный размер кучи никогда не достигается.
Указывает, следует ли применять поддержку профилировщика HProf. Для того чтобы использовать другой инструмент профилирования, укажите его в параметре Аргументы HProf. По умолчанию HProf выключен.
Если свойство Запустить HProf равно true, то необходимо указать аргументы командной строки как значения свойства Аргументы HProf.
Тип данных | Булевское значение |
Значение по умолчанию | false |
Аргументы командной строки для профилирования, передаваемые в виртуальную машину Java, запускающую процесс сервера приложений. Эти аргументы можно указать при включенной поддержке HProf.
Аргументы HProf указываются, только если свойство Запустить HProf равно true.
Включает отладочный режим JVM. По умолчанию он выключен.
Если свойство Режим отладки равно true, то необходимо указать аргументы командной строки как значения свойства Аргументы отладки.
Тип данных | Булевское значение |
Значение по умолчанию | false |
Аргументы командной строки для отладки, передаваемые в виртуальную машину Java, запускающую процесс сервера приложений. Эти аргументы можно указать, если свойство Режим отладки равно true.
Если отладка включена на нескольких серверах приложений на одном и том же узле, то убедитесь, что значения аргумента адреса у этих серверов различны. Аргумент адреса определяет порт, применяемый для отладки. Если на двух серверах, для которых включена отладка, настроен один и тот же порт отладки, то серверы могут запуститься неправильно. Например, это возможно в случае, когда на обоих серверах оставлен аргумент адреса по умолчанию address=7777.
Если отладка включена на нескольких серверах приложений, то убедитесь, что значения аргумента адреса у этих серверов различны. Аргумент адреса определяет порт, применяемый для отладки. Если на двух серверах, для которых включена отладка, настроен один и тот же порт отладки, то серверы могут запуститься неправильно. Например, это возможно в случае, когда на обоих серверах оставлен аргумент адреса по умолчанию address=7777.
Тип данных | Строка |
Единицы измерения | Аргументы командной строки Java |
Задает аргументы командной строки для передачи в виртуальную машину Java, запускающую процесс сервера приложений.
Аргумент hotRestartSync включает функцию синхронизации оперативного перезапуска службы синхронизации. Эта функция указывает службе синхронизации, что установленная версия работает в среде, где обновления не применяются, когда администратор развертывания не активен. Следовательно, служба не должны выполнять полное сравнение хранилища при перезапуске серверов администратора развертывания или агента узла. Включение этой опции позволяет повысить эффективность первой операции синхронизации после перезапуска администратора развертывания или агента узла, особенно для конфигураций с ячейками, содержащими серверы разных выпусков, с несколькими узлами и несколькими запускаемыми приложениями.
Этот аргумент применим только для z/OS. Аргумент -Dcom.ibm.CORBA.RequestTimeout=тайм-аут задает тайм-аут ответа на запросы от клиента. Этот аргумент указывается с ключом -D. тайм-аут задается в секундах. Если сеть работает очень медленно, укажите большие значения тайм-аутов. Для коротких тайм-аутов сервер приложений может не дождаться ответа в среде с распределенной нагрузкой.
Задавать этот аргумент следует только в том случае, если в приложении возникают неполадки из-за тайм-аутов. У этого аргумента нет рекомендуемых значений.
Этот аргумент применим только для z/OS. Аргумент -Dcom.ibm.websphere.wlm.unusable.interval=интервал используется в случаях, когда состояние управления нагрузкой клиента обновляется слишком редко или слишком часто. Это свойство задает время, в течение которого среда выполнения клиента управления нагрузкой считает сервер недоступным и не пытается обратиться к серверу еще раз. Этот аргумент указывается с ключом -D. . Значение по умолчанию составляет 300 секунд. Если это свойство задано большим, сервер будет считаться недоступным в течение долгого времени. В течение всего этого времени протокол обновления управления нагрузкой не сможет обновить состояние клиента.
Этот аргумент применим только для z/OS. Аргумент -Dcom.ibm.ws.buffermgmt.impl.WsByteBufferPoolManagerImpl= позволяет указать, что память для отдельных прямых буферов байтов должна освобождаться сразу, как только буфер становится ненужным. Для этого аргумента поддерживается единственное значение com.ibm.ws.buffermgmt.impl.ZOSWsByteBufferPoolManagerImpl.
-Dcom.ibm.ws.buffermgmt.impl.WsByteBufferPoolManagerImpl=com.ibm.ws.buffermgmt.impl.ZOSWsByteBufferPoolManagerImpl
Этот аргумент также должен быть задан на платформе
z/OS при
применении пользовательского свойства zaioFreeInitialBuffers для канала TCP, для указания на
то, что канал должен освобождать начальные буферы считывания, используемые для
новых соединений, как только эти буферы становятся не нужными соединению.
Технология Java HotSpot в Java SE 6 использует адаптивную JVM, содержащую алгоритмы, которые со временем оптимизируют процедуру выполнения байтового кода. JVM может работать в двух режимах, -server и -client. В большинстве случаев рекомендуется включать режим -server, обеспечивающий более эффективное выполнение на длительных промежутках времени.
Режим по умолчанию - это -client, с меньшим временем запуска и меньшим расходом памяти. Однако этот режим снижает производительность долгих процессов. Используйте режим -server, при котором производительность выше, кроме случая, когда время запуска сервера важнее, чем производительность. Разницу между режимами -client и -server можно проанализировать, просмотрев размер процесса и время запуска сервера.
Аргумент -Xverify:none позволяет пропустить этап проверки при загрузке классов. При указании -Xverify:none выключается проверка классов Java, что может на 10-15% сократить время запуска. Однако, если указан этот аргумент, то поврежденные или недопустимые данные классов не обнаруживаются. Загрузка поврежденных данных классов может вызвать серьезные неполадки и даже сбой в работе JVM.
Аргумент -Xnoclassgc выключает сбор мусора классов. При этом незначительно улучшается повторное использование классов и повышается быстродействие. Однако ресурсы, принадлежащие этим классам, будут продолжать использоваться, даже если эти классы не вызываются.
Для того чтобы отслеживать сбор мусора, укажите параметр конфигурации verbose:gc. Полученный вывод позволяет определить, какое влияние на производительность оказывает освобождение этих ресурсов.
Если указать аргумент -Xnoclassgc, то при каждом повторном развертывании приложения следует обязательно перезапустить сервер приложений, чтобы очистить классы и статические данные от предыдущей версии приложения.
Аргумент -Xgcthreads включает сбор мусора несколькими нитями одновременно. Этот режим называется параллельным сбором мусора. Этот аргумент допустим только для IBM Developer Kit.
При вводе этого значения в поле Общие аргументы JVM укажите число процессоров системы. Например, если в компьютере 3 процессора, укажите -Xgcthreads 3. На узле с n процессорами число нитей по умолчанию равно n.
Аргумент -Xnocompactgc выключает уплотнение кучи. Уплотнение кучи - это наиболее ресурсоемкая операция сбора мусора. При работе с IBM Developer Kit следует избегать уплотнения кучи. При выключении уплотнения снимается вся дополнительная нагрузка.
Аргумент -Xgcpolicy задает стратегию сбора мусора. Этот аргумент допустим только для IBM Developer Kit.
Задайте этот аргумент равным optthruput, если вы хотите оптимизировать производительность, а длинные паузы на сбор мусора не представляют проблемы. Это применяемое по умолчанию, рекомендуемое значение.
Укажите для этого аргумента значение gencon в случае применения сборщика мусора c поддержкой поколений. Схема с поддержкой поколений обеспечивает высокую пропускную способность и снижение времени сбора мусора. Куча разбивается на новые и старые сегменты. Объекты с большим временем жизни передаются в старую область, а объекты с коротким временем жизни быстро собираются в новой области. Стратегия gencon предоставляет значительные преимущества для многих приложений. Однако она подходит не для всех приложений и, как правило, обладает более сложной конфигурацией.
Аргумент optavgpause включает параллельную маркировку нитей приложения, начинающихся из стека, вплоть до заполнения кучи. Тем самым паузы на сбор мусора становятся более равномерными, и длинные паузы не появляются. Это достигается ценой снижения производительности, потому что нити выполняют дополнительную работу.
Укажите значение subpool для повышения производительности в системах, в которых в обычном режиме используется более восьми процессоров. Эта стратегия доступна только для процессоров IBM System i, System p и System z. Стратегия subpool аналогичная стратегии optthruput. Единственное различие заключается в разделении кучи на подпулы с целью оптимизации выделения объектов.
Java Platform, Standard Edition 6 (Java SE 6) поддерживает сбор мусора с учетом возраста, при котором объекты с разным временем жизни содержатся в разных пулах памяти. Сбор мусора выполняется для таких объектов независимо с учетом возраста. Дополнительные параметры позволяют настроить размеры этих пулов памяти. Для повышения производительности укажите размер пула для короткоживущих объектов, чтобы они не оставались в пуле дольше одного цикла сбора мусора. Задать размер пула нового поколения можно с помощью параметров NewSize и MaxNewSize.
-XX:NewSize=нижняя_граница -XX:MaxNewSize=верхняя_граница -XX:SurvivorRatio=новое_соотношение
Можно также задать от 50% до 60% общего размера кучи для нового пула памяти для сбора мусора с учетом возраста.
Аргумент -Xminf задает минимальный свободный объем кучи в процентах. Если в куче остается меньше памяти, чем указано, она будет расширяться. В режиме с разрешенным сбросом кучи этот аргумент задает минимальный объем свободной памяти в промежуточной и временной кучах. Он задается как вещественное число от 0 до 1. Значение по умолчанию - 0,3 (30%).
Аргумент -Xshareclasses:none позволяет выключить работу с общими классам в процессе. Опция общих классов, которая доступна, начиная с Java SE 6, позволяет создавать кэш общих классов. Кэш общих классов позволяет ускорить запуск и снизить расход памяти. Его можно использовать для серверов приложений, агентов узлов и администраторов развертывания.
Если эта опция включена, очищайте кэш, когда он не используется. Для очистки кэша вызывайте программу каталог-сервера-приложений/bin/clearClassCache.bat/sh или остановите процесс и снова его запустите.
Тип данных | Строка |
Единицы измерения | Аргументы командной строки Java |
Полное имя и путь к исполняемому файлу JAR, с которым работает виртуальная машина Java.
Тип данных | Строка |
Единицы измерения | Путь |
Выключает компилятор JIT в коде JVM.
При выключении компилятора JIT заметно вырастает производительность. Поэтому для повышения производительности выключайте JIT.
Тип данных | Булевское значение |
Значение по умолчанию | false (JIT включен) |
Рекомендовано | JIT включен |
Параметры JVM в данной операционной системе.
При запуске процесса параметры JVM для сервера используются как параметры JVM для операционной системы.
При запуске процесса параметры JVM для узла используются как параметры JVM для операционной системы.
Ссылки, помеченные как (в сети), требуют подключения к Internet.