Size: a a a

QA — Load & Performance

2021 July 22

jj

jagga jagga in QA — Load & Performance
Последнее
источник

A

Alexander in QA — Load & Performance
мождете подсказать, какое значение init, commited или used важнее контрить в контексте мониторинга?
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
commited важно и used тоже. used <= commited. commited <= Xmx
Если used ~= commited ~= Xmx и при этом высокая интенсивность сборки мусора
то все плохо
источник

A

Alexander in QA — Load & Performance
committed почти на 95% заюзалась
источник

SK

Sergey Khoroshavin in QA — Load & Performance
надо на фактическое значение heap usage посмотреть, сам по себе высокий committed означает только потенциальное желание джавы использовать эту память, не фактическое использование
источник

SK

Sergey Khoroshavin in QA — Load & Performance
ну и + под коммент Вячеслава
источник

A

Alexander in QA — Load & Performance
1.725 из 2
источник

А

Апельсин in QA — Load & Performance
Решается увеличением хип сайза. И смотреть как на проме стоит значение
источник

А

Апельсин in QA — Load & Performance
2 гига хип сайза для более менее веб-сервера маловато, вроде это по умолчанию такое значение
источник

A

Alexander in QA — Load & Performance
Ну вот моя задача найти оптимальные параметры) теперь по идее надо поставить 4 гига и прогнать ещё раз?
источник

А

Апельсин in QA — Load & Performance
Ставь 10 ))
источник

А

Апельсин in QA — Load & Performance
Судя из практики, примерно 100 к слабо-средне весных операций в час и если нет утечек, то хип 10ка, но это у нас так
источник

А

Апельсин in QA — Load & Performance
Хотя я хрень написал
источник

А

Апельсин in QA — Load & Performance
Зависит от количества машин и от вообще что там у вас творится
источник

A

Alexander in QA — Load & Performance
Работа с постгресом и кафкой
источник

GG

Gugo Groci in QA — Load & Performance
Если говорить о памяти, которую ПО на Java может взять у ОС, то она делится на кучу, кэш классов, стэк потоков и память, выделяемую низкоуровневыми библиотеками (native). Инструментами Java можно получить все данные, кроме native-памяти. Они могут делиться на heap и non-heap.
Ещё память делится на такие классы:
Reserved - JVM говорит ОС, что ей может потенциально понадобиться столько памяти. ОС выделяет ей такой непрерывный блок в виртуальной памяти, фактически ничего не выделяется. Размер виртуальной памяти на x64 огромный, ОС не жалеет раздавать сколько угодно reserved.
Commited - JVM явно попросило ОС в пределах reserved выделить память через механизм malloc или отображением файла - mmap. ОС выделяет память, отдаёт JVM. Можно увидеть как параметр RSS в списке процессов. Хотя RSS не учитывает совместно используемые страницы памяти.
Used - JVM как-то пользуется выделенной памятью. Или не пользуется.
Init - размер commited при старте, задаётся параметром Xms. Увеличивается при необходимости автоматически до значения Xmx. Если не хватает - падаем с ООМ.
источник

GG

Gugo Groci in QA — Load & Performance
Если у вас большой размер выделенной памяти, может даже равный Xmx и всё быстро работает - значит всё отлично, вы нашли оптимальный размер.
источник

GG

Gugo Groci in QA — Load & Performance
Вообще рекомендуется Xmx делать равным Xms, чтобы не тратить время на выделение памяти.
источник

GG

Gugo Groci in QA — Load & Performance
Интенсивность работы GC с размером хипа никак не связана. То есть может быть связана, а может и нет. Если ПО много мусорит, то со временем любой хип забьется, и ГЦ будет очень долго отрабатывать. Просто не надо мусорить.
источник

A

Alexander in QA — Load & Performance
Чисто не там, где моют)
Спасибо за комментарий!
источник