Ambiente:casuale lento Rack :: MethodOverride # chiamata su rotaie app sul Heroku
Rubino: 2.1.2
Rails: 4.1.4
Heroku
Nella nostra app di rotaie ospitata su Heroku, ci sono momenti in cui le richieste richiedono molto tempo per essere eseguite. È solo l'1% di volte o meno, ma non riusciamo a capire cosa sta succedendo.
Abbiamo installato l'agente newrelic e si dice che non è la coda di richiesta, è la transazione stessa che impiega tutto quel tempo per l'esecuzione.
Tuttavia, tracce delle transazioni mostra questo:
(questa stessa richiesta il più delle volte richiede solo 100 ms per essere eseguito)
Per quanto posso dire, il tempo è essere consumato prima che il nostro controller venga richiamato. E 'consumato il
Rack::MethodOverride#call
e questo è ciò che non possiamo capire.
Inoltre, la maggior parte delle volte (o anche sempre, non siamo sicuri) questo accade sulle richieste POST inviate dai dispositivi mobili. Questo potrebbe avere qualcosa a che fare con una connessione lenta? (anche se il POST-payload è molto piccolo).
Qualcuno ha provato questo? Qualsiasi consiglio su come continuare ad esplorare questo problema è apprezzato.
Grazie in anticipo!
Grazie mille per la rapida risposta! Un'altra domanda se la conosci anche tu: a quel punto, il corpo della richiesta è già nella memoria di Dyno? oppure, il corpo della richiesta di lettura potrebbe essere interessato dalla connessione del client. Voglio dire, se la connessione del client è lenta, può essere questa la ragione per cui ci vuole così tanto tempo per leggere il corpo della richiesta? – alex