To je v pořádku, nepsal jsem, že daná aplikace je jediná na PC, Ve
skutečnosti je tam daná aplikace spuštěna několikrát (zpracováni obrazu
z více kamer, v tomto konkrétním případě 2x) + databáze + AS JBoss + OS
a další programy. Jedna instance problematické aplikace má nastaveno Xmx
na 1024m.
Jaroslav Hurdes
Dne 13.4.2012 11:03, Jiří Zůna napsal(a):
Zdravim,
Na vasem popisu situace me zaujalo max. 12GB pameti a 33%-ni vuziti
(takze +- 4GB obsazene pameti).
A ted moje silena domnenka:
Java je pouze 32bit proces, tudiz dal nez za 4GB nevidi a pamet pro
stack se alokuje mimo heapu (a samozrejme i mimo permgen). Myslim si,
ze pro javu se v tech jejich ctyrech gigabajtech uz nenajde misto pro
novy stack pro nove vlakno (muze tam byt os, dalsi programy, ...) a
tak skonci s OOM, idkyz je vlastne 66% pameti nevyuzite.
Jestli to ale skutecne tak muze byt, si nejsem jisty.
Hodne zdaru,
:J
On Thursday, April 12, 2012, Jaroslav Hurdes wrote:
Systém má k dispozici 12 GB RAM. Využití paměti je na cca 33% CPU
20% Procesu cca 70, Threadu cca 5000 na cely OS, takže docela v
pohodě.
Jaroslav Hurdes
Dne 12.4.2012 20:59, Peter Hanuliak napsal(a):
skusali ste pozriet ako vyzeraju zdroje windows systemu? ako
on vyzera
s threadmi? pamatou a pod?
2012/4/12 Roman Pichlík<[email protected]>:
hmm je uz to opravdu jenom strelba od boku, co zkusit
nastavit PermSpace?
2012/4/12 Jaroslav Hurdes<[email protected]>:
Ne, tato třída nemá s JNI nic společného. Je to
jednoduchý server, který na
požádání vytvoří thread, obslouží požadavek a ukonči
se. Tato třída má na
svědomí ten celkový počet spuštěných threadu, které
ale žijí jen velmi
krátce (klient se zeptá na stav aplikace a po odeslání
zprávy je thread
ukončen). Jaroslav Hurdes
Dne 12.4.2012 20:13, Roman Pichlík napsal(a):
Vola se to JNI v ramci
CommandClientsManager$Client.start?
2012/4/12 Jaroslav Hurdes<[email protected]>:
Vláken je spuštěno pouze 26, viz výpis z
dokumentace k jconsole
Threads
Live threads: Current number of live daemon
threads plus non-daemon
threads
Peak: Highest number of live threads since JVM
started.
Daemon threads: Current number of live daemon
threads
Total started: Total number of threads started
since JVM started
(including
daemon, non-daemon, and terminated).
DLL je volána přes JNI a nemělo by tam
vzniknout souběžně více vláken
(získávání obrazu z frame grabberu).
Jaroslav Hurdes
Dne 12.4.2012 19:26, Roman Pichlík napsal(a):
To je pocet celkove vytvorenych vlaken po dobu
behu, nikoliv zivych,
tech je tam relativne malo, 67 pokud dobre
pocitam.
2012/4/12 Martin Caslavsky<[email protected]>:
Máte 2.500 vláken a další už nejde vytvořit...
První odkaz v Google
popisuje tenhle problém:
http://stackoverflow.com/questions/763579/how-many-threads-can-a-java-vm-support
Martin Caslavsky
On 12 April 2012 18:08, Jaroslav
Hurdes<[email protected]> wrote:
Zdravím, bojuji s vyjímkou, která nastává v mé
aplikaci a nedaří se mi
objevit příčinu. Vyjímka je následující:
Exception in thread "Thread-6"
java.lang.OutOfMemoryError: unable to
create
new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:640)
at
cz.nitta.licenceplate.server.business.communicator.CommandClientsManager$Client.start(CommandClientsManager.java:357)
at
cz.nitta.licenceplate.server.business.communicator.CommandClientsManager.addClient(CommandClientsManager.java:118)
at
cz.nitta.licenceplate.server.business.communicator.ClientsGatekeeper.addClient(ClientsGatekeeper.java:196)
at
cz.nitta.licenceplate.server.business.communicator.ClientsGatekeeper.acceptClient(ClientsGatekeeper.java:140)
at
cz.nitta.licenceplate.server.business.communicator.ClientsGatekeeper.run(ClientsGatekeeper.java:213)
at java.lang.Thread.run(Thread.java:662)
Prostředí je popsáno níže. V příloze je
obrazovka z jconsole, kde je
zobrazen počet threadu i stav paměti. Nesetkal
se někdo s něčím podobným
a
nenašel řešení? Zkouším laborovat s různými
parametry, ale zatím nic. 32
bit
javu používám z důvodu nutnosti použít 32 bit
dll. Díky. Jaroslav Hurdes
OS Windows 7, x64
Verze javy (32 bit)
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build
1.6.0_31-b05)
Java HotSpot(TM) Client VM (build 20.6-b01,
mixed mode, sharing)
spouštění aplikace:
java -XX:ThreadStackSize=256 -Xss256k
-XX:ReservedCodeCacheSize=64m
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9001
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-server -Xcheck:jni -Xmx1024M
-Djava.library.path=..\common\lib\native -jar
nitta-lp-rec-srv.jar ./cfg
%*
--
S pozdravem Roman "Dagi" Pichlik
/*
--
:J