Pagina 1 di 1

cpu utilizzate: tomcat 5/6/7 e java in generale

Inviato: mer 23 mag 2012, 11:02
da ZeroUno
Salve.
Ho diversi tomcat running, versioni 5/6/7 e 32/64 bit.

Per sapere quanta ram hanno dedicata uso jmap -heap. Nota: non l'ho specificato nelle opzioni della JVM nel catalina, e jmap mi sembra che mostri come maxheapsize un fisso del 25% della ram disponibile. E' un dato di fatto e corrisponde a realtà? cioè, se non lo specifico java si prende sempre il 25% della ram? Ma è dinamico? nel senso che se poi le classi java tentano di allocare di più il sistema glielo concede o va in outofmemory come se gli avessi forzato il tetto?
in un sistema con 32G di ram, tomcat 7, jmap -heap mi restituisce:

Codice: Seleziona tutto

Heap Configuration:
   MinHeapFreeRatio = 40
   MaxHeapFreeRatio = 70
   MaxHeapSize      = 8401190912 (8012.0MB)
   NewSize          = 5439488 (5.1875MB)
   MaxNewSize       = 17592186044415 MB
   OldSize          = 5439488 (5.1875MB)
   NewRatio         = 2
   SurvivorRatio    = 8
   PermSize         = 21757952 (20.75MB)
   MaxPermSize      = 88080384 (84.0MB)
significa che riesce ad allocare dinamicamente fino a 17 exabyte :-) ?

Ma per sapere quanti processori si prendono?

per dire, se faccio ps -eLf, indipendentemente dal numero di processori della macchina mi mostra una cifra di thread.

Che significa che se due utenti mi si connettono se ne vanno uno su un processore e uno su un altro?

Re: cpu utilizzate: tomcat 5/6/7 e java in generale

Inviato: mer 23 mag 2012, 12:02
da lablinux
Che server web utilizzi? So che con apache puoi gestire il 'load balancing' per ripartire il carico su diversi server (se ho capito bene).
http://andrea.bonadonna.org/2011/02/loa ... omcat-4-x/

Qua http://www.enricodevita.it/blog/2008/09 ... on-jmeter/ si parla di jmeter per monitorare il server
e qua http://jteam.forumattivo.info/t26-aumen ... a-a-tomcat c'è un tooltip per ridurre la richiesta di memoria.

Re: cpu utilizzate: tomcat 5/6/7 e java in generale

Inviato: mer 23 mag 2012, 12:10
da ilmich
Rispondo per quello che so :)
In java la dimensione dell'heap la puoi impostare nei suoi due valori estremi, il che vuol dire che tipicamente parti occupando tanta memoria quanta ne hai indicata nel minimo e in base all'utilizzo si espande fino a raggiungere il massimo.. raggiunto il quale nn viene chiesta altre memoria al sistema ma si va in out of memory.
Quindi la risposta alla tua domanda è: si.. se raggiungi il maxHeapSize la java virtual machine va in out of memory.

Da quel che so io, quando non diversamente specificato, le jre su linux si prendono la meta' della memoria fisica fino ad un massimo di 512MB quindi i tuoi valori mi sembrano un po' strani, per come la vedo io, ma potrei sbagliarmi, c'e' qualche impostazione che aumenta il maxHeapSize.

Per quanto riguarda i processori usati, le moderne jdk sono in grado di sfruttare i sistemi multicore/multiprocessore (prima non era cosi).
Percio' esattamente come avviene per i 'normali' programmi, ogni thread/processo viene eseguito su tutti i processori seguendo le regole dello scheduler del sistema.
ZeroUno ha scritto:Che significa che se due utenti mi si connettono se ne vanno uno su un processore e uno su un altro?
se si collegano contemporaneamente, il numero di processori e pari al numero di thread attivi, e tomcat nn sta facendo altro si.. altrimenti il concetto di spalmare i threads su piu' processori resta in piedi ma è difficilmente 'misurabile'

Re: cpu utilizzate: tomcat 5/6/7 e java in generale

Inviato: mer 23 mag 2012, 12:33
da ZeroUno
allora sto apposto.
dal ps -eLf sembra che sia i tomcat 5 (con java 1.5) che i tomcat 6/7 (con java 1.6) hanno molti thread. Ho solo avuto un problema in passato con i tomcat 5 che, essendo a 32bit, non mi sfruttavano più di 2G di ram (e ne avevo bisogno perchè l'applicativo consuma e non funziona a 64 bit), ma l'ho risolto tirando su due istanze e mettendoci davanti un bilanciatore.

per il fatto della ram che si prende 8G, boh. Ho notato che ovunque (o almeno, a campione) dove non è specificata mi si è presa il 25%, indipendentemente dal max. Ma non è un problema; se ne ho bisogno di più o di meno la forzo.

@lablinux: non devo fare tuning; volevo solo sapere come si comportano i processi attuali.


Grazie