2013-08-22 17 views
11

Sto usando il framework 1.2.5, per gli ultimi due giorni ho avuto un grosso problema sul test del carico che è per ogni chiamata API al sever che richiede circa 1200-1400 ms come media, ma oggi ho appena cambiato solo quanto segue una riga nel file application.conf che riduce drasticamente il tempo medio per 20 - 50 ms, la riga come segue,cosa succede quando si passa da DEV alla modalità PROD nel file "application.conf"?

application.mode=prod 
    %prod.application.mode=prod 

inizialmente era come

application.mode=dev 
    %prod.application.mode=prod 

Quindi da questo Potrei capire tha t passando da dev a production fa qualcosa e quello che ho trovato su Internet è, In dev modo play.pool = 1 di default mentre in modalità di produzione play.pool = no di processori + 1, la mia macchina Ubuntu è 4 processori quindi usa 5 thread. Arrivando al Problema, se ciò che ho trovato è vero, quando cambio manualmente il play.pool = 5 nel application.conf non mi dà un risultato più veloce né se imposto play.pool = 1 ed eseguo in produzione anche la modalità non rallenta i risultati del test dell'applicazione, quindi ho bisogno di sapere cosa succede quando cambio da dev alla modalità prod, a parte questo play.pool che rende la mia applicazione più veloce. perché sto affrontando il problema in UAT, dove non ci sono buoni risultati per il cambiamento in modalità prod, funziona solo nel mio localhost. Per favore, trovami una soluzione prima grazie in Advance.

UPDATE:

Sì che so tutti questi animali come in modalità DEV le ricariche delle applicazioni e compila, ma, forse, non la sua per ciascuno e per ogni richiesta solo al caricamento programma iniziale credo, ma il mio problema è questa modalità prod ben funzionante presso il mio localhost e il mio server locale, quando vado per UAT ottengo un cattivo risultato al test di carico intorno a 800 ms come media. l'applicazione è lenta anche in prod anche sto eseguendo il loadtest localmente (il jmeter è installato nella macchina server e sto testandolo usando Remote Desktop Connection). Quindi, oltre alla compilazione e al ricaricamento, ho bisogno di sapere quali sono tutte le modifiche eseguite nel file application.conf quando cambio da DEV alla modalità PROD come il gioco cambia da thread a thread (no di processori + 1). FYI: il mio sistema localhost è a 4 processori, e il server locale è a 4 processori, ma il computer UAT è a 2 processori, se questo è il problema ho anche provato a cambiare i thread del pool a 10 (play.pool = 10) e niente buoni risultati all'UAT.

risposta

3

Oltre al thread singolo, nella modalità dev l'avvio dell'applicazione viene ritardato fino alla prima richiesta inviata. Nella modalità prod l'app inizierà immediatamente. Ciò ovviamente influisce sul tempo di caricamento della prima richiesta.

Immagino che le prestazioni "cattive" nella modalità dev siano principalmente causate dalla funzionalità di ricaricare e compilare classi durante l'esecuzione. Su ogni richiesta le classi vengono controllate per le modifiche e possono essere ricaricate. Penso che questa funzione valga molto per i tempi di caricamento e non so se sia possibile disattivarla.

Probabilmente non si dovrebbero eseguire test di prestazione/accettazione in modalità dev. Here's a short a discussion about it. Invece di provare ad aumentare le prestazioni della modalità dev, dovresti semplicemente usare la modalità prod.

+0

Sì, so tutto ciò che serve per ricaricare e compilare la modalità dev, ma quale è il mio problema, l'idea di passare dalla modalità DEV alla modalità PROD funziona bene nel mio localhost e nel server locale, ma l'idea non è buona nell'UD (Testing site in America). Si prega di consultare il mio UPDATE nella domanda –

2

Dovresti fare qualche altra analisi prima di saltare alle tue pistole.
In primo luogo si cerca di capire dove viene speso quel tempo extra.

  • Rendering dei modelli?
  • Appeso in attesa di connessioni DB?
  • Ci sono dei blocchi?
  • Il database è stato ottimizzato con gli indici?
  • Avete misurato l'utilizzo del processore e della memoria?
  • Stai facendo costose operazioni IO?
  • Sono presenti altri processi in esecuzione su questa macchina?
0

come si avvia la riproduzione sul server di produzione?

spero di aver letto: http://www.playframework.com/documentation/1.2.5/production

La tua domanda è davvero di un problema di prestazioni. Ci potrebbero essere molte cose che causano una differenza di prestazioni dal tuo ambiente locale e dalla produzione. Oltre a Play, il DB è in esecuzione sulla stessa casella?

+0

Sì, il DB è in esecuzione nella stessa macchina. –

Problemi correlati