Apa yang terjadi adalah Aplikasi dan / atau ApplicationSpawners Anda ditutup karena batas waktu. Untuk memproses permintaan baru Anda, Penumpang harus memulai salinan baru dari aplikasi Anda, yang dapat memakan waktu beberapa detik, bahkan pada mesin yang cepat. Untuk memperbaiki masalah ini, ada beberapa opsi konfigurasi Apache yang dapat Anda gunakan untuk membuat Aplikasi Anda tetap hidup.
Inilah yang secara spesifik telah saya lakukan di server saya. PassengerSpawnMethod dan PassengerMaxPreloaderIdleTime adalah opsi konfigurasi yang paling penting dalam situasi Anda.
PassengerSpawnMethod smart
PassengerPoolIdleTime 1000
PassengerMaxPreloaderIdleTime 0
PassengerMaxRequests 5000
Dengan menggunakan mode pemijahan "pintar" dan mematikan PassengerMaxPreloaderIdleTime, Passenger akan menyimpan 1 salinan aplikasi Anda di memori setiap saat (setelah permintaan pertama setelah memulai Apache). Application
Pendengar individu akan fork
diedit dari salinan ini, yang merupakan operasi yang sangat murah. Ini terjadi begitu cepat sehingga Anda tidak tahu apakah aplikasi Anda harus menelurkan pendengar atau tidak.
Jika aplikasi Anda tidak kompatibel dengan smart spawning, sebaiknya simpan PassengerPoolIdleTime yang besar dan buka situs Anda secara berkala menggunakan curl dan cronjob atau monit atau sesuatu untuk memastikan pendengar tetap hidup.
The Penumpang Panduan Pengguna adalah sebuah referensi awesome untuk ini dan banyak lagi opsi konfigurasi.
edit : Jika aplikasi Anda tidak kompatibel dengan pemijahan pintar, ada beberapa opsi baru yang sangat bagus
PassengerPreStart http://myexample.com/
PassengerPreStart http://myexample2.com:3500/
PassengerMinInstances 3
Jadi, jika Anda menggabungkan PassengerPreStart dan PassengerMinInstances, Passenger akan menjalankan 3 instans segera setelah apache dimuat, dan akan selalu menyimpan setidaknya 3 instans, sehingga pengguna Anda jarang (jika pernah) melihat penundaan.
Atau, jika Anda sudah menggunakan pemijahan pintar (disarankan) PassengerMaxPreloaderIdleTime 0
, Anda dapat menambahkan PassengerPreStart
untuk mendapatkan manfaat tambahan dari segera memulai.
Terima kasih banyak kepada para pahlawan di phusion.nl !