我使用Apache + Passenger來託管一些Rails應用程序。當沒有更長時間的請求時,某些東西似乎進入睡眠模式。然後需要10-20秒才能加載該站點。感覺就像在沒有更長時間的要求時必須醒來。我的乘客電動Rails應用程序有時需要很長時間才能加載
我該如何解決這個問題?我有足夠的內存,所以如果進入睡眠只是保持清醒狀態,那應該沒有問題。 ;)
我使用Apache + Passenger來託管一些Rails應用程序。當沒有更長時間的請求時,某些東西似乎進入睡眠模式。然後需要10-20秒才能加載該站點。感覺就像在沒有更長時間的要求時必須醒來。我的乘客電動Rails應用程序有時需要很長時間才能加載
我該如何解決這個問題?我有足夠的內存,所以如果進入睡眠只是保持清醒狀態,那應該沒有問題。 ;)
查看Passenger的PassengerPoolIdleTime
參數。 它指出應用程序實例在關閉以保存內存之前可以閒置的最大秒數。
默認值是300,但您可以嘗試設置更高的數字並查看是否有幫助。
此外,如果您在共享主機上並且無法更改該設置,則可以隨時編寫一個cron腳本以每x秒點擊一次(其中x稍小於PassengerPoolIdleTime),然後更新您的分析包忽略來自正在進行輪詢的框的IP地址的請求。
乘客文檔建議將PassengerPoolIdleTime設置爲僅運行少數Rails應用程序的非共享主機上的0。這應該防止卸載,除非它是絕對必要的。
@ x0ne,您可以在全局服務器配置中設置PoolIdleTime(nginx中的pool_idle_time)。在我的安裝Nginx的/opt/nginx/conf/nginx.conf。
以下是涵蓋PoolIdleTime的乘客文檔部分:http://www.modrails.com/documentation/Users%20guide.html#PassengerPoolIdleTime