2009-05-05 14 views
13

Sto ospitando un'applicazione Ruby on Rails 2.0.2 su DreamHost. È su un server Apache 2, in esecuzione su Phusion Passenger.L'app di Rails si blocca casualmente con errore "Fine prematura delle intestazioni di script"

L'applicazione restituisce spesso un errore 500 "L'applicazione Rails non è stata avviata correttamente", ma in momenti casuali. Sembra che accada quando l'applicazione è sotto carico superiore, anche se non posso confermarlo. Guadagna solo circa 2.000 visualizzazioni di pagina al giorno, quindi non penso che il caricamento debba essere davvero un problema.

I registri di Apache correlano queste 500 risposte con l'errore: "Fine anticipata delle intestazioni di script". Guardando i log alle 9 di oggi, l'errore appare spesso tre o quattro volte al minuto. Questo è chiaramente inaccettabile.

Meno frequentemente, l'applicazione lancia una pagina di Phusion Passenger con una traccia di stack e l'errore "Tubo rotto".

I registri Rails non elencano nessuno di questi errori.

Ciò accade sia sui siti di staging che su quelli live ospitati su DreamHost, ma non posso replicarlo su un server di sviluppo locale.

Quindi immagino che la vera domanda sia: Dove debbo iniziare questo problema?

risposta

9

Si scopre che stavo semplicemente colpendo il mio tappo di memoria sul server condiviso DreamHost.

Stavo eseguendo diverse app di Rails con un account, molte delle quali solo per test e prototipazione. Rails utilizza molta memoria e così ho raggiunto rapidamente la mia allocazione. Il supporto mi ha detto che "Ho controllato i nostri registri e ha ucciso uno dei tuoi processi di rubino 2325 volte negli ultimi tre giorni". Whoops.

La soluzione: prova a non eseguire Rails in un ambiente condiviso, se puoi aiutarlo. Presto cambierò almeno una delle mie app in un host VPS.

+0

Sì, questo mi stava succedendo sulla mia app per rails subito dopo aver eseguito alcuni test di carico su un'app PHP sullo stesso server che ha causato l'esecuzione di molti processi di apache php.cgi, riempiendo così la memoria. Ti è capitato di trovare soluzioni per ridurre l'utilizzo della memoria per i binari su dreamhost? Thx – adamJLev

+0

Non c'era davvero alcun modo per aggirarlo. Probabilmente potresti ospitare una app Rails molto popolare su un server DreamHost condiviso. Indipendentemente da ciò, sono passato a un VPS ospitato su RailsPlayground. Da allora non ho avuto singhiozzi. – Schrockwell

+0

Se crei un nuovo account utente su DH, ad esempio per ogni app di rota che esegui, ogni account riceverà la "propria" memoria? – miccet

1

Stai utilizzando l'ultima versione di passeggero (2.2.2 al momento della stesura). Ho avuto alcuni errori ma la maggior parte (se non tutti) è scomparsa dopo aver aggiornato l'installazione del mio passeggero.

Se questa non è la risposta, puoi sempre provare ad aggiornare la tua versione di binari a 2.3 e vedere se il problema persiste.

+0

Sto verificando con DreamHost ora per vedere quale versione di Passenger utilizzano. L'aggiornamento di Rails a 2.3 potrebbe essere il prossimo passo, anche se non vedo l'ora di correggere le incompatibilità con le versioni precedenti. – Schrockwell

Problemi correlati