Настраивал ли вы параметры запуска JVM?

«Настраивал ли вы параметры запуска JVM?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да. Основные параметры JVM для управления памятью и производительностью:

Ключевые параметры памяти:

  • -Xms — начальный размер кучи (heap). Пример: -Xms512m
  • -Xmx — максимальный размер кучи. Пример: -Xmx2g
  • -XX:MaxMetaspaceSize — лимит для метапространства (классы, методы). Пример: -XX:MaxMetaspaceSize=256m

Выбор сборщика мусора (GC):

  • -XX:+UseG1GC — активация G1 Garbage Collector (рекомендуется для современных приложений).
  • -XX:+UseParallelGC — для throughput-ориентированных задач.

Пример команды запуска:

java -Xms1g -Xmx4g -XX:+UseG1GC -XX:MaxMetaspaceSize=512m -jar application.jar

Best practices:

  1. Для production-сред устанавливайте -Xms и -Xmx равными, чтобы избежать затрат на динамическое расширение кучи.
  2. Включайте логирование GC для мониторинга: -Xlog:gc*:file=gc.log:time:filecount=5,filesize=10m
  3. Настройки зависят от нагрузки, объема данных и требований к паузам (pause time).