2009-07-16 21 views
6

Tôi đang lên kế hoạch lưu trữ ứng dụng JRuby on Rails trên Google AppEngine/Java. Tôi thấy a great blog post by Ola Bini về cách này, nhưng trong phần tóm tắt, ông nói:Google AppEngine: tần suất "khởi động thời gian chạy" xảy ra

Nhìn chung, JRuby on Rails hoạt động rất tốt trên App Engine, trừ một số chi tiết nhỏ hơn. Số tiền chính là chi phí khởi động và thử nghiệm. Là điều đó xảy ra, bạn không thể thực sự nhận được GAE/J để xử lý trước mọi thứ. Thay vào đó, hãy xem bạn sẽ phải để bản phát hành đầu tiên nhận được lần truy cập về điều này. Bây giờ, GAE/J thực hiện một sự cho phép của việc xác minh trước các bytecode và , do đó, việc khởi động hơi nặng hơn một chút so với các JDK khác trên . Một thời gian chạy mất khoảng 20 giây để khởi động, vì vậy lần truy cập đầu tiên mất một thời gian.

Tôi không hiểu rõ điều này. Bao lâu, trong hoàn cảnh nào, liệu thời gian chạy có cần phải được khởi động? Độ trễ 20 giây thường xuyên có thể là một vấn đề.

Trả lời

7

Máy ứng dụng sẽ bắt đầu thời gian chạy mới cho bạn bất cứ khi nào nhu cầu vượt xa các phiên bản hiện đang chạy. Sau đó nó sẽ tắt các trường hợp khi nhu cầu thấp hơn. Cuối cùng, điều này có nghĩa là tất cả các trường hợp của bạn có thể bị tắt nếu ứng dụng của bạn không được sử dụng trong một khoảng thời gian nhất định. Sau đó, vào lần tiếp theo người dùng cố gắng truy cập ứng dụng của bạn, một phiên bản mới sẽ cần phải được bắt đầu hoặc "xoay vòng" như một số người gọi nó.

Tính đến tháng ba, nhóm nghiên cứu động cơ ứng dụng sẽ không đưa ra bất cứ dự toán chính thức về bao lâu một thể hiện sẽ ở lại:

 

7:40pm] nwinter: Is it possible to get a rough estimate of how long an app 
instance will stick around once spawned? 
[7:40pm] marzia_google: @nwinter, not really 
[7:40pm] marzia_google: there are no garuntees 
[7:41pm] nwinter: No average time or anything? 
[7:42pm] marzia_google: @nwinter i'm not sure an average time would be 
meaningful, even if i knew off hand what it was (i don't) 
[7:42pm] marzia_google: since it really can be quite variable 
[7:42pm] Kardax: Re instance lifetime: So an app instance could last a few 
seconds or a few hours? Just curious 
[7:43pm] dan_google: nwinter: Apps are evicted by least-recently-used on an 
app server. As someone noted recently (forums or chat I forget), low 
traffic could mean lots of "restarts", but so could spikes in traffic which 
may start new instances on multiple app servers. 
[7:43pm] nwinter: @dan_google: good to know! 
[7:43pm] dan_google: Kardax: Yes, depending on the weather. By which I 
mean, request patterns, other apps on each app server, and so forth. Not 
really predictable. 

Đây là bảng điểm của một cuộc trò chuyện với nhóm công cụ ứng dụng. Tôi đã xóa các dòng không liên quan trong bảng điểm như "vậy và hãy đăng nhập". Bạn có thể tìm thấy bảng điểm đầy đủ here

+0

Cảm ơn bạn, rõ ràng hơn nhiều. –

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