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

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/flexibee 
    • shodné s normálním spuštěním aplikace
  • MacOS: v terminálovém okně spustit /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

První značí nedostatečnou velikost celkové paměti a lze upravit Java parametrem -Xmx, zatímco druhý nedostatečnou velikost PermGen oblasti a upravit lze parametrem -XX:MaxPermSize.

Ú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 FlexiBee
  • Linux: /etc/default/flexibee
    • doplnit parametr: FLEXIBEE_JAVA_ARGS="${FLEXIBEE_JAVA_ARGS} -Xmx1g -XX:MaxPermSize=256m"
  • MacOS: /Applications/FlexiBee.app/Contents/Info.plist

Doporučené hodnoty parametrů:

               Minimum                               Doporučené zvýšení

Java heap     -Xmx800m                             -Xmx1200m

PermGen     -XX:MaxPermSize=128m        -XX:MaxPermSize=256m

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).

Tento článek byl užitečný pro 5 osob. Pomohl Vám tento článek?