Portál AbcLinuxu, 10. května 2025 11:10

Dotaz: swap a java

25.10.2019 17:40 chtel_bych_se_zeptat
swap a java
Přečteno: 383×
Odpovědět | Admin
Dobry den, chtel bych se zeptat na nasledujici vec. Na nekolika serverech jsem nasel situaci, kdy je pomerne znacne ukousnuto ze swapu, ackoliv je stale dost volne RAM. Kdyz jsem zjistoval co swap uzira, byla to vzdy java.

Chtel bych se zeptat proc tomu tak je? Mam domenku ze zde mozna byl peak, kdy se cast nepouzivanych dat v RAM odswapovala na disk, pak peak poklesnul, ale data ve swapu zustala - je to mozne? Pokud tam visi ale dlouho a nebyl na ne zadny pozadavek, nemelo by je jadro uklidit?

Podobnou teorii jsem cetl, ale neprijde mi to moc pravdepodobne.

Moc diky za uzitecne informace.

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Max avatar 25.10.2019 18:45 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: swap a java
Odpovědět | | Sbalit | Link | Blokovat | Admin
Já provozuji nemálo javovských aplikačních serverů a tento problém nemám. Jednak vím, že java aplikáč = minimálně "-Xms2048m -Xmx2048m". Takže tam, kde mi něco na jave běží, jedu minimálně 3GiB ram. Pak jedu standardně swappiness = 10.

Jelikož jsi nenapsal co provozuješ, s kolika klienty, nebo aspoň kolik prostředků tomu dáváš, tak se můžeme jen dohadovat. Nicméně myslím si, že máš poddimenzované prostředky.
Zdar Max
Měl jsem sen ... :(
25.10.2019 19:36 chtel_bych_se_zeptat
Rozbalit Rozbalit vše Re: swap a java
Ahoj, diky za odezvu. Tady je jeden example.
free -m
              total        used        free      shared  buff/cache   available
Mem:          64169       11568       32535          59       20065       62328
Swap:          8191         825        7366
cat /proc/sys/vm/swappiness
30
I kdyz ted koukam ze ta java nakonec nema toho swapu naalokovano tolik. Je to proste souhrn vice procesu.
for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 2 -n -r | head -2
java 123028 kB
java 80256 kB
Takze je proste hodnota swapiness zbytecne velika a jadro uklizi do swapu casteji nez by bylo vubec potreba?

Max avatar 27.10.2019 13:31 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: swap a java
To je tvé prostředí a ty musíš znát náročnost aplikací, které provozuješ. Taktéž by jsi je měl nějak monitorovat, takže by jsi měl znát využité zdrojů v nějakém čase. A podle toho by jsi si pak měl nadimenzovat hw, nebo případně poladit nějaké nastavení. Výpis aktuálního stavu paměti nic neříká.

Pokud nemonitoruješ, tak si nějaký monitoring rozjeď, to je základ.

Pokud jde o úroveň swappiness, tak jedu 10, a to jen kvůli pojistce, kdyby náhodou (ať už kvůli nějakému náhodnému sežrání ram, tak i kvůli tomu, že v historii se objevovaly bugy v aplikacích, které nechtěly fungovat bez swapu v OS, nebo se swappiness 0. Dřív to byl třeba problém mysql)
Zdar Max
Měl jsem sen ... :(
25.10.2019 18:49 debian+
Rozbalit Rozbalit vše Re: swap a java
Odpovědět | | Sbalit | Link | Blokovat | Admin
Existuje hodnota, pri kt. zacina swapovat. Tusim ak je realne uzivana RAM programmami zaplnena na 90%. Zisti a pripadne zmen na mensiu, ak chces.
Max avatar 25.10.2019 19:29 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: swap a java
O takové hodnotě nic nevím a nikdy jsem se s ní snad nesetkal. Navíc pokud systému dochází ram, tak je třeba přidat ram serveru, nebo ubrat té jave (pokud to jde).
Zdar Max
Měl jsem sen ... :(
25.10.2019 21:35 debian+
Rozbalit Rozbalit vše Re: swap a java
Citaj: o /proc/sys/vm/swappiness v man proc alebo google.

Inac mimochodom, pri Jave sa da nastavit, kolko pamate ma pouzivat. Nema zmysel pouzivat prilis velku hodnotu na while(1) {echo "dfsadfs"; sleep(1)}. To zalezi od aplikacie a jej narokov. Pre viac vid man java a hladaj slovo memory.
Max avatar 27.10.2019 11:06 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: swap a java
Proč bych si měl čítat o swappiness, když o něm sám píšu? Já vím, co swappiness dělá.
Já jsem jen tvůj komentář pochopil tak, že swapování lze řídit v rámci javy. Pokud jsi se tedy špatně nevyjádřil a myslel jsi to skutečně tak, tak bych rád věděl, jakými parametry to lze ovlivnit. Protože já se s tím nesetkal.
Zdar Max
Měl jsem sen ... :(
28.10.2019 15:20 debian+
Rozbalit Rozbalit vše Re: swap a java
Zamerom bolo poukazat na 1 veci.
  1. swappiness - to si pochopil
  2. Spravenanie java stroja sa da oplyvnit. Raz som videl prispevok, ze sa da oplyvnik pouzivanie pamete v java, a tym padom neplati, ze apka objeme a la hello_wordl, musi mat zaber pamete defaulny, ked vyuziva iba maly zlomok. Je to moznost oplyvnit. Vid. man pages pre javu. To len ze taka moznost existuje.
28.10.2019 16:02 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: swap a java
Max si to ale nepotrebuje Googliť. Max s tým reálne roky pracuje, takže tomu rozumie viac ako človek čo našiel nejaké linky na prvej strane vyhľadávača Google. Kľudne pokračuj.
25.10.2019 19:42 R
Rozbalit Rozbalit vše Re: swap a java
Odpovědět | | Sbalit | Link | Blokovat | Admin
Java si alokovala pamat a nepouziva ju. Kedze ju neuvolnila, tak niekde musi byt.
Jendа avatar 25.10.2019 21:42 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: swap a java
Odpovědět | | Sbalit | Link | Blokovat | Admin
Může to být paměť, na kterou se už dlouho nesáhlo, a proto jádro vyhodnotilo, že bude lepší ji odložit na disk a RAM použít pro něco užitenějšího, třeba cache. Jak agresigně se má odklávat řídí parametr swappiness.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.