2012-10-22 8 views
12

Sto usando Apache MINA nel mio progetto open source. Tuttavia, ho colpito un blocco stradale delle prestazioni in cui non è in grado di gestire carichi utili di grandi dimensioni caricati sul server da dispositivi mobili. Sto ottenendo errori di memoria insufficiente. Non ho mai usato Netty e sto cercando di scambiare MINA con Netty.Capacità di Netty di gestire grandi payload

La mia domanda per il team di Netty è che come funziona Netty sotto un carico di payload in entrata di grandi dimensioni. Nei miei test delle prestazioni, sto generando il carico utilizzando 1000 dispositivi simultanei che inviano payload da 1MByte ciascuno. Tende a generare 1 GIG di dati caricati in 5 minuti. Questo carico tende a rompere MINA.

Can Netty supporta questo carico e altro. Il tuo contributo su questo è molto apprezzato.

btw: Ho eseguito il profilo dell'applicazione utilizzando JProfiler. Indica lo stack MINA come colpevole. Ho persino completamente disconnesso il mio stack laterale del server e l'ho lasciato sul semplice server MINA che consuma dati e restituisce dati. In questa modalità, anche se non c'è alcuna elaborazione vera e propria con il mio backend, inizia a esaurire la memoria tra circa 15 e 20 minuti

+1

Ho eseguito il profilo dell'applicazione utilizzando JProfiler. Indica lo stack MINA come colpevole. Ho persino completamente disconnesso il mio stack laterale del server e l'ho lasciato sul semplice server MINA che consuma dati e restituisce dati. In questa modalità, anche se non c'è alcuna elaborazione vera e propria con il mio back-end, inizia a esaurire la memoria in circa 15-20 minuti – openmobster

+0

eccellente! Sentiti libero di modificare la tua domanda se ritieni che il tuo commento debba farne parte. – Adam

+1

Direi, provalo. C'è una buona possibilità che sia migliore. Tuttavia, tieni presente che il tuo carico di lavoro potrebbe richiedere più memoria e GC per ottimizzare il framework utilizzato. – akostadinov

risposta

1

Sembra un utilizzo non corretto della libreria piuttosto che un effettivo problema con la libreria stessa. Se non l'errore dell'utente, IMO Netty probabilmente farebbe la stessa cosa. Ho usato MINA in applicazioni ad alta larghezza di banda prima senza questo risultato. Può darsi che la tua rete sia satura e che i buffer consumino tutta la memoria in attesa di essere caricata. Solo il mio 2 ¢.

0

Ho usato Netty in passato per un progetto, in cui stavamo cercando di costruire una piattaforma in grado di eseguire lo streaming di grandi blocchi di dati su HTTP. Non abbiamo la possibilità di caricare test Netty sotto lo scenario che hai delineato. Quando stavamo considerando quale framework Netty è stato scelto per le sue prestazioni e API su MINA e altri framework simili. Ci sono un sacco di siti web che hanno fatto confronti tra Netty e MINA. IMO dovresti essere in grado di soddisfare il tuo caso d'uso utilizzando una combinazione di Direct ByteBuffers e scrivendo i dati su disco/archiviazione mentre vengono letti.