Newsgroup: it.comp.java
Titolo: [J2EE - Application Server] - Carico del sistema

Salve a tutto il ng,
domanda forse un po' oziosa, ma visto che nel ng se ne parla decisamente 
poco - per non dire, mai - la pongo io :-)
Qui si discute parecchio di applicazioni, J2EE, WebServer e via discorrendo: 
ma per quanto riguarda le prestazioni
e il carico del sistema ?
Qualcuno s'� mai occupato del dimensionamento dell'architettura J2EE da 
utilizzare (numero di nodi, cluster etc)
durante lo sviluppo dei propri progetti ?
Che carico utente dovete "reggere" mediamente ? Come "scala" un application 
server ? Si suole dire che scalino
mediamente bene, ma dati a suffragio di questa affermazione ?
Mi piacerebbe discuterne un po' con voi....
Saluti,
    Scorpio.

 
non mi intendo
Prova a vedere anche questo sito. magari è di spunto alla discussione:
http://www.spec.org/
http://www.spec.org/jEnterprise2010/results/jEnterprise2010.html

 non mi intendo
sono troppo sintetico con questo "non mi intendo" la mia mente vleva
esprimere:
"non mi intendo ma è interessante, mi piacerebbe leggere una discussione
al riguardo, contribuisco con questo..."
prolisso ma esplicativo

 mediamente bene, ma dati a suffragio di questa affermazione ?
i dati non è facile averli; non esistono formulette matematiche che 
vadano bene per tutto, ma neanche per due casi diversi. anche perché 
sull'argomento performance ci sarebbero altri capitoli non meno 
importanti quali il tuning della jvm, che ti garantisco può cambiare le 
cose dal giorno alla notte.

 calcolo complesso come ad esempio una ottimizzazione.
E' vero che il cluster da un leggero sovraccarico ... ma se si
sfruttano bene i meccanismi dei work manager o sistemi come Coherence
ti assicuro che è difficile batterli :)
In generale dopo che hai fatto considerazioni tipo:
http://download.oracle.com/docs/cd/E15523_01/web.1111/e13814/toc.htm
Di solito si eseguono sessioni di stress test sulla specifica
applicazione ... si tirano conclusioni e si decide quanto e come
scalare ... se devo sapere sin dall'inizio quanto HW devo comprare ...
allora i produttori ti sanno rispondere valutando l'applicazione che
tu vuoi sviluppare e paragonandola a dati di test interni che hanno e
che spesso pubblicano anche :)
Ciao

 
bel post, grazie

 cose dal giorno alla notte.
Per esempio: il problema del carico da reggere, hai mai provato ad
affrontarlo con elementi di Teoria delle code ? Le tue valutazioni sono
sempre state "ex tunc", ossia: progetto un'applicazione J2EE, e ho
10 client: funziona bene. I client passano da 10 a 100: come mi aspetto
di dover reagire ? Aumento i nodi ? In virt� del tempo di servizio,
so che 100 client riesco a reggerli ?
Mi sembra che sia gli scenari che le possibili contromisure sono numerose...
Scorpio

 so che 100 client riesco a reggerli ?
Se questi sono i numeri a cui stai pensando, ti consiglierei di evitare 
di perderci tempo: dipende ovviamente da cosa fa l'applicazione, ma, 
salvo casi particolarissimi, 10 o 100 client (che non significa nulla, 
ma con questi numeri non fa molta differenza se siano client "umani", o 
tu intenda richieste al secondo, o altro) probabilmente te li regge 
qualunque AS e HW, senza bisogno di nessun tuning particolare.
In ogni caso il tuning e le strategie di scaling vanno fatte 
sull'applicazione specifica, facendo simulazioni (ad esempio usando 
JMeter) e magari verificando con un profiler che l'applicazione non 
abbia particolari colli di bottiglia (e ovviamente stiamo parlando di 
applicazioni scritte bene...)
Per considerazioni "teoriche" basta affidarsi ai vari benchmark (dei 
produttori o meno) e a ciï¿œ che si puï¿œ fare appunto in teoria, sapendo 
che non ï¿œ detto che funzioni esattamente con gli stessi risultati per il 
nostro caso.
Il fatto che l'architettura JEE "scali bene" non significa che dato A 
ottengo B, ma solo che ï¿œ fatta per poter scalare. Come e con che 
efficacia dipende ovviamente dal caso particolare: data la varietï¿œ e la 
complessitï¿œ delle applicazioni non ï¿œ una faccenda deterministica.
Ciao
   Lucio
-- 
Lucio Benfante
JUG Padova           
http://www.parancoe.org
 ...have a look at it!
www.jugpadova.it
 
http://www.jugevents.org

 100 client riesco a reggerli ?
intanto ribadisco, non è un problema che riguarda lo sviluppo. in 
previsione che i client aumentino di 10 volte l'unico modo di vedere se e 
come reggerà il carico è simulare con uno stress test. dopodiché si 
valuta: ci sono margini di tuning? se si si interviene su quello, 
altrimenti si aumentano i nodi. come dicevo ho toccato con mano come 
semplicemente spostando con una url rewrite le richieste a risorse 
statiche (immagini, pagine html, javascript, css, etc...) da jboss ad 
apache la capacità di evadere richieste aumenta anche di 20 volte, quindi 
anche con il tuning si possono fare "magie".

 anche con il tuning si possono fare "magie".
Capisco. Ti ringrazio per la risposta, onestamente speravo che si potesse 
parlare
di qualche modello predittivo.
Ma mi rendo conto che il compito non � certo agevole.
Scorpio. 

 delle applicazioni non � una faccenda deterministica.
Grazie innanzitutto per la risposta. Ora, parlando di benchmark pubblicati
o comunque disponibili su web liberamente.... ho dato loro una rapida
occhiata, mi sembra che le configurazioni hw per l'appserver e il dbms
server fossero sempre abbastanza sostenute in termini di risorse. In un caso
ho letto che il server per il dbms aveva 32 core (!!); ingenuamente mi vien
da pensare che con quelle risorse anche un'applicazione scritta male
potrebbe funzionare bene, quindi la scalabilit� *potrebbe* non essere
una virt� di J2EE, ma una condizione derivata dalle risorse di calcolo
disponibili.
Ciao,
    Scorpio

quasi 2000 :)
Raggiungi il livello di 1000 TPS ? E' parecchio, IMHO. Posso essere
indiscreto e chiederti quale configurazione hai in mano ?
Scorpio