2009-02-24 30 views
6

Tôi sử dụng Apache + Passenger để lưu trữ một số ứng dụng Rails. Một cái gì đó dường như đi trong một chế độ ngủ khi không có yêu cầu cho một thời gian dài hơn. Sau đó mất 10-20 giây để trang web tải. Cảm thấy như có cái gì đó phải thức dậy khi không có yêu cầu trong một thời gian dài hơn.Ứng dụng Rails hành khách của tôi đôi khi cần một thời gian dài để tải

Tôi làm cách nào để khắc phục điều đó? Tôi có đủ RAM nên nó sẽ không có vấn đề gì nếu như bất cứ điều gì đi vào giấc ngủ chỉ còn tỉnh táo. ;)

Trả lời

10

Hãy xem thông số PassengerPoolIdleTime cho Hành khách. Nó cho biết số giây tối đa mà một cá thể ứng dụng có thể không hoạt động trước khi nó tắt để bảo tồn bộ nhớ.

Giá trị mặc định là 300, nhưng bạn có thể thử đặt số cao hơn và xem có giúp ích gì không.

1

Ngoài ra, nếu bạn đang ở trên một máy chủ chia sẻ và không thể thay đổi cài đặt đó, bạn luôn có thể viết tập lệnh cron để truy cập trang web của bạn một lần x giây (trong đó x nhỏ hơn PassengerPoolIdleTime) và cập nhật gói phân tích để bỏ qua các yêu cầu từ địa chỉ IP của hộp đang thực hiện bỏ phiếu.

1

Tài liệu hành khách khuyến nghị đặt PassengerPoolIdleTime thành 0 trên các máy chủ không dùng chung chỉ đang chạy một vài ứng dụng Rails. Điều đó sẽ ngăn chặn nó khỏi bị dỡ bỏ trừ khi nó thực sự cần thiết.

Các vấn đề liên quan