Přeskočit na hlavní obsah
Navýšení paměti pro Javu

Klient se zasekává a přestává reagovat - málo paměti

Petr Pech avatar
Autor: Petr Pech
Aktualizováno před více než 2 měsíci

Pokud se Vám klient po nějaké době používání začíná zasekávat, intenzivně přitom využívá CPU až nakonec přestane reagovat úplně, máte s největší pravděpodobností nastaveno málo paměti pro Java proces. Typicky může tato situace nastávat při generování tiskových sestav nebo provádění exportů s větším objemem dat.

Identifikace problému

Tento krok lze vynechat. Problém nedostatku paměti lze ověřit spuštěním klienta z příkazové řádky (terminálu), za předpokladu použití stejné konfigurace paměti jako při normálním spuštění (viz konfigurační soubory). Spustit klienta z příkazové řádky je možné těmito způsoby:

  • Windows: C:\Program Files (x86)\WinStrom\spustit-winstrom.bat před spuštěním porovnejte parametry v tomto souboru se souborem parametry.txt

  • Linux: v terminálovém okně spustit /usr/bin/flexi shodné s normálním spuštěním aplikace

  • MacOS: v terminálovém okně spustit /Applications/FlexiBee.app/Contents/MacOS/JavaAppLauncher (na starších verzích Flexi je příkaz /Applications/FlexiBee.app/Contents/MacOS/flexibee-console) - před spuštěním porovnejte parametry v tomto souboru s konfigurací v Info.plist

V konzoli se pak při zasekávání způsobeném nedostatkem paměti zobrazují tyto chyby:

  1. java.lang.OutOfMemoryError: Java heap space

  2. java.lang.OutOfMemoryError: PermGen space

  3. java.lang.OutOfMemoryError: GC overhead limit exceeded

Úprava parametrů

Hodnoty parametrů ovlivňující maximální velikost paměti pro aplikaci lze změnit v těchto konfiguračních souborech:

  • Windows: C:\Program Files (x86)\WinStrom\parametry.txt, resp. na cestě kam jste provedli instalaci Flexi

  • Linux: /etc/default/flexibee doplnit parametr: FLEXIBEE_JAVA_ARGS="${FLEXIBEE_JAVA_ARGS} -Xms1g -Xmx2g"

  • MacOS: /Applications/FlexiBee.app/Contents/Info.plist upravit parametr <string>-Xmx1g</string> (v poslední kolekci array)

Nastavení paměti Javy je ve většině případů individuální, v závislosti na způsobu práce s příslušnou Java aplikací. Pokud by Vás zajímalo více o tom, jak pracuje Java s pamětí a jak nastavit její různé parametry, můžete čerpat z následujícího odkazu.

Při provádění pokročilejších změn v parametrech doporučujeme sledovat aktuální využití paměti a její uvolňování pomocí tohoto nástroje.

Doporučené hodnoty parametrů:

Minimum

Doporučené zvýšení

Java heap -Xmx1g

-Xmx1500m

Pokud potřebujete více než 1GB paměti, doporučujeme používat 64bit Javu. 32bit Java má limit mezi 1 - 1,2 GB, záleží na operačním systému. V případě, že provedete reinstalaci balíčku, bude potřeba provést nastavení parametrů bohužel znovu (platí pro Windows a MacOS).

Dostali jste odpověď na svou otázku?