Newsgroup: it.comp.java
Titolo: [Sondaggio] memoria per webApp

Buongiorno a tutti,
Il nostro applicativo gira su server WebSphere con jvm 1.5. In vista di 
un picco di carico di utenti abbiamo aumentato la memoria che il server 
riserva all'applicativo.
In genere ho sentito parlare di "carico" dell'applicativo inteso come 
numero di connessioni per il DB, ma non mi ero ancora imbattuto in 
"carico" inteso come memoria riservata dal server. Così vorrei proporre 
un sondaggio, se interessa, composto dalle due domande seguenti:
1.
Qual'è il numero di utenti medio e di picco del vostro applicativo?
2.
Quanta memoria viene riservata sul server per l'applicativo?
Grazie,
Tarin
-- 
Tarin Gamberini
www.taringamberini.com
www.jugpadova.it

 
-- 
Andrea Francia
http://code.google.com/p/remoted-list/
 - Lazy loading lists through RMI.

 Quanta memoria viene riservata sul server per l'applicativo?
io lavoro con jboss, dove non si può riservare memoria ai singoli 
applicativi. questo tipo di tuning si fa a livello di istanza di 
application server.
detto questo, per me la regolazione della memoria è una questione 
abbastanza relativa. essendo le macchine dedicate la memoria fisica 
viene data quasi interamente all'application server, almeno come massima 
occupazione. se poi una delle istanze va in sofferenza vuol dire che c'è 
da rivedere l'hardware.
potrò far storgere il naso ai puristi, ma a mio avviso non è questo un 
parametro su cui ha senso fare molto tuning. per dire, nelle jvm moderne 
c'è la cosiddetta modalità "generazionale" per il garbage collector, che 
prevede di restringere il più possibile la porzione di memoria da 
ripulire a vantaggio delle performance e, ovviamente, a scapito 
dell'utilizzo della memoria. quindi cercare di "stringere" 
l'applicazione nella memoria strettamente necessaria vuol dire in realtà 
penalizzarne le performance in modo determinante.
-- 
 Fino all'anno scorso avevo un solo difetto. Ero presuntuoso.
http://softvalley.blogspot.com
http://www.flickr.com/photos/marko_po/

 memoria

 algoritmi di gc si devono scorrere una quantita maggiore di ram... 
non è proprio esatto.
ovvero, esistono diversi algoritmi di gc e uno di questi è il già citato 
"generazionale". non è facile spiegarlo in due parole, ma si basa sul 
principio che su questo tipo di applicazioni gli oggetti muoiono 
giovani. in pratica: la memoria viene suddivisa in settori, a sinistra 
gli oggetti appena istanziati, il gc scandaglia solo l'area più a 
sinistra (quando è piena) liberando la memoria da liberare e spostando 
verso destra gli oggetti che invece trova ancora "vivi". solo quando non 
riesce a liberare memoria allora fa un full scan, ma se hai un heap 
adeguato non succede praticamente mai.
in sostanza, è più dannoso andare a "ottimizzare" la quantità di memoria 
utilizzata dall'applicazione perchè in questo modo tu costringi il gc a 
fare ripetutamente il full scan, qualsiasi sia l'algoritmo utilizzato.
purtroppo c'è poco da fare, agli application server se vuoi le 
performace devi dargli memoria.



Difficile rispondere perchč ho vari applicativi pubblicati su WebSphere. 
Direi che, in media,
sono una trentina di utenti. Faccio girare WAS 6.1 (che penso sia la tua 
stessa versione, dal momento
che mi parli di jvm 1.5)  su un server Linux Red Hat Ent. 4, con memoria 
dedicata 2.5 Gb. Le performance
di memoria e consumo di CPU sono davvero buone. Il collo di bottiglia, come 
tempi di risposta, č *ovviamente*
il database.
Scorpio. 

 Pier 


 penalizzarne le performance in modo determinante.
Insomma anche qui ci sono problemi di "coperta corta" :-) non me 
l'aspettavo, grazie rootkit per il tuo post.
