2012-06-05 17 views
5

Tôi sử dụng Google Ap Engine với trạng thái thanh toán được bật.
Instances Nhàn rỗi được thiết lập để: (1 - 1)Tại sao GAE khởi chạy phiên bản thứ hai với Max Idle Instances được đặt thành 1

enter image description here

Và với chỉ có 2 khách hàng về dịch vụ của tôi, đôi khi tôi thấy một trường hợp thứ hai. Sự cố là mất 15 giây để khởi chạy phiên bản mới (mùa xuân và đồng ..).

enter image description here

80Mb bộ nhớ là cao cho một ví dụ?
Đăng nhập phiên bản mới:/_ah/warmup 200 14580ms 0kb
Ví dụ thứ hai biến mất sau một vài giây.

Tại sao có 3-4 yêu cầu, GAE chạy phiên bản thứ hai ?? Người đầu tiên không làm gì (gần như)!

Tôi đã cố gắng sửa đổi "Thời gian chờ đang chờ xử lý" mà không thành công.

Giải pháp? :)

Thx

+0

Tôi nghĩ hành vi này khá bình thường. Bất cứ khi nào có yêu cầu, GAE khởi chạy các trường hợp không hoạt động để có thể phân phát các yêu cầu sắp tới một cách hiệu quả. Đây chỉ là để đảm bảo rằng tất cả các khách hàng có được hiệu suất tốt. Tôi nghĩ rằng chúng ta có thể so sánh hành vi này với cách kết nối tổng hợp trong cơ sở dữ liệu hoạt động. Đồng thời xem [link] (https://developers.google.com/appengine/docs/adminconsole/performancesettings#Setting_the_Number_of_Idle_Instances) –

+0

Tôi đồng ý với bạn Jan; nhưng tại sao trong một năng động, ông có "1" yêu cầu. Đó là hành vi tương tự tôi có nhưng nó không có ý nghĩa với tôi bởi vì vào thời điểm này nó không còn là một chu kỳ hâm nóng nhưng một chu kỳ thực sự yêu cầu xử lý. Và yêu cầu được xử lý có độ trễ lớn. –

Trả lời

3

Bạn đã yêu cầu chính xác một phiên bản không hoạt động. Khi phục vụ một yêu cầu, một cá thể không phải là nhàn rỗi. Do đó, App Engine quay lên một phiên bản mới để duy trì số lần yêu cầu không hoạt động của bạn.

+0

Thú vị! Nhưng nếu cái mới là một ví dụ nhàn rỗi, tại sao nó lại yêu cầu? (vì vậy có thời gian phản hồi 15 giây). Vấn đề là tôi không có nhiều thông tin. Vì vậy, nếu tôi sẽ đặt trường hợp nhàn rỗi thành Tự động, tôi sợ rằng tất cả khách hàng của tôi sẽ có độ trễ 15 cho yêu cầu đầu tiên của họ: ( – Samuel

+1

Yêu cầu là yêu cầu khởi động, cụ thể là để tránh người dùng của bạn phải đưa ra thời gian tải. –

1

Nếu phiên bản thường trú được coi là "quá bận" để xử lý yêu cầu, App Engine sẽ bắt đầu một yêu cầu khác. Ngay cả với lưu lượng truy cập rất thấp, nếu ứng dụng đang xử lý đủ yêu cầu cùng một lúc, AE có thể quyết định cần một phiên bản khác để cung cấp dịch vụ chất lượng. Bạn đúng là tăng độ trễ đang chờ xử lý sẽ làm giảm cơ hội mà một phiên bản khác được bắt đầu, nhưng bạn không thể cấm hoàn toàn các phiên bản động.

Ngoài ra, bạn có bật đa luồng không? Nếu không, thì trường hợp thường trú sẽ bận ngay cả khi nó chỉ xử lý một yêu cầu. Nếu mã của bạn là luồng an toàn, bạn có thể bật đa luồng và xử lý đồng thời nhiều yêu cầu đồng thời hơn với cá thể.

Với lưu lượng truy cập rất thấp và rất ít trường hợp, App Engine không có nhiều thông tin để tiếp tục khi quyết định xem nó có cần một phiên bản mới hay không. Bạn sẽ thấy sử dụng tốt hơn và ít trường hợp giả mạo hơn với lưu lượng truy cập nhiều hơn.

+0

Thx Dan. Có, tôi đã bật đa luồng. Thật điên rồ khi nó hoạt động tốt hơn với lưu lượng truy cập nhiều hơn :) Làm thế nào GAE xác định rằng một cá thể là "quá bận"? Sử dụng một thể hiện F2 là một giải pháp? – Samuel

+0

Tôi chỉ cảm thấy đủ điều kiện để đưa ra một câu trả lời mờ ở đây. Có những điều thú vị mà AE có thể làm để đưa ra những dự đoán tốt về việc liệu một yêu cầu cụ thể có được xử lý đầy đủ bởi một cá thể dưới một lượng tải cụ thể hay không. Nhưng tôi không chắc AE thực sự làm gì, và tôi muốn đội AE có quyền tự do điều chỉnh điều này và không cam kết chỉ là một chiến lược. –

+1

Điều chính cần lưu ý là với các phiên bản động, AE có quyền khởi động các phiên bản mới. Nếu bạn thực sự muốn giữ tất cả mọi thứ đi đến một máy chủ, bạn có thể sử dụng một phụ trợ địa chỉ, tại các chi phí quản lý tải năng động. Nhưng tôi đoán bạn đang thực sự yêu cầu về việc sử dụng dụ: không dụ thứ 2 ngụ ý trường hợp thứ nhất là maxed ra hoặc sử dụng kém? Câu trả lời là, tại một thời điểm nhất định nó có thể đã được, nhưng điều đó không có nghĩa là ứng dụng của bạn đang được tải liên tục lớn hơn một thể hiện thường có thể xử lý. –

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