Sziasztok!
A következő problémával fordulok hozzátok:
Van egy CentOS 6.4-et futtató szerverem ( 64 bites ) 32GB memóriával. Ezen 6-7db java process fut darabonként 2-3GB memóriahasználattal. ( start scriptekben: -Xmx3G -Xms3G )
A free -g azt írja, hogy 7GB cache-d memória van, de amikor elindítanék még egy java processt 2GB-os memória használattal, akkor OutOfMemory-t kapok. Úgy gondolnám, hogy fel kellene szabadítania a gyorsítótárazott-ból elegendőt, de hozzá sem nyúl. a SWAP sincs használva.
Merre keressem a problémát?
Szerk.:
A process a következő beköpéssel száll el: OutOfMemoryError: unable to create new native thread
- 5794 megtekintés
Hozzászólások
Laikusként: ez inkább tűnik valami Java feature-nek, mint OS oldali problémának.
- A hozzászóláshoz be kell jelentkezni
+1, az OS a gyorsítótárat azonnal kidobja ha szükség van arra a mem területre
// Happy debugging, suckers
#define true (rand() > 10)
- A hozzászóláshoz be kell jelentkezni
Én is így számoltam a memória felhasználásnál :)
- A hozzászóláshoz be kell jelentkezni
A jelenség reboot után (viszonylag) közvetlenül is jelentkezik?
- A hozzászóláshoz be kell jelentkezni
Ezt még nem volt lehetőségem tesztelni. Ezelőtt minden szépen ment, csak ahogy ez a java process ( ami szinte ugyanaz mint a többi ) kerül rá, azóta történnek ilyenek. Ha memory leak van, attól ki kéne ürítenie a cache-t, vagy azt nem venné észre OS szinten?
- A hozzászóláshoz be kell jelentkezni
sysctl vm.overcommit_memory=1 után?
--
zsebHUP-ot használok!
- A hozzászóláshoz be kell jelentkezni
A usernek nincs beállítva limit? Ulimit és környéke.
Aki tudja, csinálja, aki nem tudja, tanítja... Hm... igazgatónak talán még jó lennék. :)
- A hozzászóláshoz be kell jelentkezni
ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 256675
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 1024
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
- A hozzászóláshoz be kell jelentkezni
+1
Már szaladtam bele ilyenbe, amikor a Sacred 2-t akartam elindítani...
- A hozzászóláshoz be kell jelentkezni
vm.min_free_kbytes=2097152 (vagy még magasabb...)
Ha numa architektúra akkor ez is segíthet:
vm.zone_reclaim_mode=1
- A hozzászóláshoz be kell jelentkezni
Jobban megvizsgálva a logokat, a következővel száll el a java: OutOfMemoryError: unable to create new native thread
- A hozzászóláshoz be kell jelentkezni
Hány bites Java?
Oracle, vagy Open Java?
Az egyikkel, vagy a másikkal is ugyanezt csinálja?
- A hozzászóláshoz be kell jelentkezni
google elég sok találatot ad erre a hibaüzenetre. Pl.: http://javaeesupportpatterns.blogspot.hu/2012/09/outofmemoryerror-unabl…
- A hozzászóláshoz be kell jelentkezni
Én ezt találtam "viccesnek": http://devgrok.blogspot.hu/2012/03/resolving-outofmemoryerror-unable-to…
Szóval ha nem memória gond, még lehet, hogy elérték az egy user által megnyitható fájlok limitjét, ami jelen esetben 1024.
Aki tudja, csinálja, aki nem tudja, tanítja... Hm... igazgatónak talán még jó lennék. :)
- A hozzászóláshoz be kell jelentkezni
Ez tűnik a legvalószínűbbnek, megpróbálom átírni a limitet és úgy megnézni, köszönöm :) Majd jelentkezem!
- A hozzászóláshoz be kell jelentkezni