Docker & Java & velikost heap paměti

publikováno: 20.11.2018

Od Java 10 se bere v úvahu nastavení --memory parametru (například docker run --memory 1000m ...). Java automaticky přidělí heapu cca. 1/4 této velikosti (tzn. cca. 256MB).

Množství alokované paměti pro heap se dá ovlivnit pomocí přepínačů:

  • -XX:MaxRAMPercentage=50 (toto nastaví velikost heapu na cca. 50% přidělené paměti, čili cca. 500MB)
  • další přepínače: -XX:MinRAMPercentage, -XX:InitialRAMPercentage

Od Java 8u131 je možné použít ke stejnému účelu kombinaci následujících přepínačů (ale není to tolik flexibilní): 

  • -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XX:MaxRAMFraction=2

Následující:
Amazon Corretto
Reference

Školení mi pomohlo ujasnit si jak má správně probíhat testování kódu, představilo užitečné knihovny a nástroje. Vše bylo podáno zábavnou formou, takže nebyl problém udržet pozornost. Navíc byl výhodou dostatek

Certicon
David

Jedno z nejlepších školení za poslední roky. Kromě seznámení se Springem apod. mě velmi příjemně překvapila hluboká znalost probírané látky a schopnost ji srozumitelně vysvětlit v případě ad hoc dotazů.

Jaroslav

Přestože jsem Cčkař, tak jsem se na školení JUnit dozvěděl nové věci. Zejména co se týče metodiky jednotkového testování a některých odborných termínů.

Retia
Jaromír


Novinky

12.7.2020: The illusion of statelessness
Pěkný článek na téma, že nemusí být jednoduché dosáhnout toho, aby byla aplikace skutečně "stateless"

12.7.2020: ZGC -XX:SoftMaxHeapSize
Od Java 13 Garbage Collector ZGC umožňuje nastavit "soft limit" na velikost Java heap pomocí "-XX:SoftMaxHeapSize". Jakmile jsem zjistil, že něco takového existuje, tak jsem zajásal.

12.7.2020: Jakou "Javu" používat? (Open JDK, OracleJDK, AdoptOpenJDK, ...)
Na školení se mě stále lidi ptají jestli je Java stále zdarma ...