Как узнать, когда настраивать размер кучи при использовании G1 GC? - PullRequest
0 голосов
/ 15 октября 2018

В документе Oracle G1 GC G1 GC не рекомендует настраивать параметры JVM, поскольку пропускная способность и задержка стабильны.

https://docs.oracle.com/javase/10/gctuning/garbage-first-garbage-collector-tuning.htm#JSGCT-GUID-0BB3B742-A985-4D5E-A9C5-433A127FE0F6

Однако я не смог найти страницу в документето, насколько подходящий размер кучи сервера должен быть.Назначение сервера и объем трафика варьируются.Это может быть простой Restful API, или это может занять много времени.Поэтому размер кучи должен быть разным в зависимости от серверного приложения.Кроме того, если размер кучи недостаточен, полный сборщик мусора будет происходить несколько раз и в конечном итоге приведет к серьезным проблемам.

  1. Как определить подходящий начальный размер кучи?
  2. Когда следует увеличитьразмер кучи?
  3. Существуют ли методы и инструменты для мониторинга ненормальных признаков?

1 Ответ

0 голосов
/ 15 октября 2018

Я бы

  • создал бы эталон рабочей нагрузки, которую вы хотели бы оптимизировать для производительности
  • , настраивая приложение для распределений для этой рабочей нагрузки.Это может изменить все остальное, что вы делаете, поэтому сделайте это в первую очередь.например, с помощью Flight Recorder.
  • попробуйте приложение с разными размерами кучи и посмотрите, в какой момент добавление дополнительной памяти, кажется, не имеет значения.
  • попробуйте больше рабочих нагрузок, если у вас есть время.

Как определить подходящий начальный размер кучи?

Каков размер приложения, которое почти сразу увеличивается?Если вы проводите сравнительный анализ с большими размерами, это может помочь?

Когда вы должны увеличить размер кучи?

КОГДА после определения вашего приложения утечка памяти не возникаети разумно настроен, серверу нужно больше памяти или он работал бы быстрее, если бы у него было больше памяти.

Существуют ли методы и инструменты для мониторинга ненормальных признаков?

Дляинструмент, который вы можете запустить непрерывно, вы можете начать с jstat

...