Newsgroup: it.comp.os.linux.iniziare
Titolo: Utilizzo memoria

su un server web(su cui gira apache,mysq,ftp, ssh ....) con 512Mb di 
memoria ram la mia situazione di utilizzo è questa
             total       used       free     shared    buffers     cached
Mem:        507052     498880       8172          0     109628    194508
-/+ buffers/cache:     194744     312308
Swap:      1052216      37192    1015024
ok tutto normale è linux, però c'è un server java che gira su questo 
computer e al momento in cui è stata presa la rivelazione occupava circa 
45Mb di memoria
il problema è che questo server java nel tempo richiede più memoria e se 
arriva a 60Mb si pianta con un bel outOfMemory
a questo punto penso che il sistema non liberi della memoria per il 
server java dalla cache o dal buffer
è possibile settare valori massimi di utilizzo per buffer e cache?
o altre soluzioni?
ciao
Andrea

java.lang.OutOfMemoryError
Se usi la jvm di sun su piataforma x86 (ma forse anche con le altre) e non
specifichi la quantita' di memoria da utilizzare questa si autolimita a
64Mb (questo accade non solo su linux ma anche su windows, per esempio).
Vedi la documentazione della jvm, in particolare il parametro -XmxNNNm.
Alessandro.

Pasqualino Cammarata wrote:
 > Il Tue, 05 Oct 2004 22:21:35 +0000, Andrea ha scritto:
 >
 >
 >> su un server web(su cui gira apache,mysq,ftp, ssh ....) con 512Mb di
 >
 >
 >
 > Magari anche telnet aperto, che facciamo una cosa bella sicura...
e perchè no, con iptable disattivo ....
 >> memoria ram la mia situazione di utilizzo è questa
 >>
 >>             total       used       free     shared    buffers     cached
 >> Mem:        507052     498880       8172          0     109628    194508
 >> -/+ buffers/cache:     194744     312308 Swap:      1052216 
37192   1015024
 >>
 >>
 >> ok tutto normale è linux,
 >
 >
 >
 > E questo cosa dovrebbe significare?
debbo fare una panoramica della gestion della memoria o ti basta che 
linux utilizza tutta la ram perchè giustamente una risorsa non 
utilizzata è una risorsa sprecata
 >
 >
 >> però c'è un server java che gira su questo
 >> computer e al momento in cui è stata presa la rivelazione occupava circa
 >> 45Mb di memoria
 >>
 >> il problema è che questo server java nel tempo richiede più memoria e se
 >> arriva a 60Mb si pianta con un bel outOfMemory
 >>
 >> a questo punto penso che il sistema non liberi della memoria per il 
server
 >> java dalla cache o dal buffer
 >>
 >
 > E che significa anche questo? Hai a disposizione un altro giga di memoria
 > e l'oggetto si pianta. Perche' pensi realmente il problema sia la 
memoria?
 > Controlla prima per bene i motivi del crash di java.
 >
non lascia molto margine alle interpretazioni ...
java.net.SocketException: Connection reset
         at java.net.SocketInputStream.read(SocketInputStream.java:168)
         at java.net.SocketInputStream.read(SocketInputStream.java:182)
         at net.sf.l2j.loginserver.ClientThread.run(ClientThread.java:151)
java.lang.OutOfMemoryError
java.lang.OutOfMemoryError
java.lang.OutOfMemoryError
java.lang.OutOfMemoryError
java.lang.OutOfMemoryError
java.lang.OutOfMemoryError
java.lang.OutOfMemoryError
java.lang.OutOfMemoryError
java.net.SocketException: Connection reset
         at java.net.SocketInputStream.read(SocketInputStream.java:168)
         at java.net.SocketInputStream.read(SocketInputStream.java:182)
         at net.sf.l2j.loginserver.ClientThread.run(ClientThread.java:151)
java.lang.OutOfMemoryError
java.lang.OutOfMemoryError
java.lang.OutOfMemoryError
java.lang.OutOfMemoryError
java.lang.OutOfMemoryError
java.lang.OutOfMemoryError
java.net.SocketException: Connection reset
         at java.net.SocketInputStream.read(SocketInputStream.java:168)
         at java.net.SocketInputStream.read(SocketInputStream.java:182)
         at net.sf.l2j.loginserver.ClientThread.run(ClientThread.java:151)
java.lang.OutOfMemoryError
java.net.SocketException: Connection reset
         at java.net.SocketInputStream.read(SocketInputStream.java:168)
         at java.net.SocketInputStream.read(SocketInputStream.java:182)
         at net.sf.l2j.loginserver.ClientThread.run(ClientThread.java:151)
java.net.SocketException: Connection reset
         at java.net.SocketInputStream.read(SocketInputStream.java:168)
         at java.net.SocketInputStream.read(SocketInputStream.java:182)
         at net.sf.l2j.loginserver.ClientThread.run(ClientThread.java:151)
java.lang.OutOfMemoryError
java.lang.OutOfMemoryError
java.lang.OutOfMemoryError
java.lang.OutOfMemoryError
ciao
Andrea


Occhio, mi pare che le JVM partono di default con un settaggio della 
memoria che limita la dimensione del processo(o solo dell'heap?? boh) a 
64 mega.
Ti consiglio di cercare con goolge le varie opzioni con cui puoi 
lanciare la Java virtual machine..adesso non mi ricordo ma puoi 
scegliere un saco di cose, come la massima dimensione dello heap, il 
tipo di garbage collection da usare... insomma se hai un qualcosa di 
grosso le impostazioni default potrebbero non bastare.
Spero sia giusto e ustile
SALuti

Ciao, 
io con Tomcat (ma e' possibile con qualsiasi container) uso i parametri 
Xms e Xmx del comando 'java'. 
Prova a gestire la cosa con questi parametri. 
 
Ciao 
 
Luca 
 
Andrea ha scritto: 

-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


grazie a tutti per le risposte, molto utili
sono un completo newbe del java ^^
thk again
Andrea