2012-08-08 24 views
5

Tôi có ứng dụng công cụ ứng dụng (trả tiền) trung bình khoảng 200 lượt truy cập mỗi ngày (1000 lượt xem trang, không thường xuyên tăng lên 1.000 lượt truy cập và 10000 lượt xem trang trở lên) và Tôi hiện đang thức dậy qua công việc cron cứ 5 phút một lần để đảm bảo hiệu suất hợp lý. Điều này không phải lúc nào cũng hoạt động trong các khoảng thời gian trễ của công cụ ứng dụng (may mắn thay điều này không xảy ra quá thường xuyên), và khi điều đó xảy ra, ajax của tôi gọi thời gian hết sức là quá hạn. Ngoài ra chiến lược cron-job không phải là lý tưởng vì nó ăn đi ở các hạn ngạch.AppEngine hiệu suất điều chỉnh với các trường hợp nhàn rỗi và cài đặt độ trễ đang chờ xử lý

Hiện tại, tôi có các cài đặt Thời gian chờ và Thời gian chờ đang chờ xử lý trên "Tự động".

Có ai có kinh nghiệm tinh chỉnh các cài đặt đó theo cách thủ công và một số giá trị tiêu biểu có thể đảm bảo hiệu suất tốt hơn trên ứng dụng của tôi cho lưu lượng truy cập không?

Trả lời

2

Thay vì cron job, chỉ cần đặt Idle Instances thành 1. Instle Instances là các trường hợp nằm trong "dự trữ", cho bạn phản hồi tức thời để tăng tải. Vì vậy, nếu bạn có một tải mà đòi hỏi ba trường hợp và bạn thiết lập trường hợp nhàn rỗi để một, sau đó bạn sẽ có 4 trường hợp chạy.

Nhược điểm là bạn sẽ luôn trả tiền cho một ví dụ khác so với hiện đang được sử dụng. Tuy nhiên, hãy nhớ rằng bạn nhận được 28 ví dụ miễn phí mỗi ngày, bao gồm một trường hợp nhàn rỗi miễn phí (trừ khi bạn có một yêu cầu thực sự phân phối yêu cầu, sau đó một phiên bản Idle khác sẽ là một chi phí bổ sung). Ngoài ra, nếu bạn có Idle Instances được đặt thì Thời gian chờ chờ sẽ có ít hoặc không có hiệu lực, vì Độ trễ đang chờ được tư vấn khi các phiên bản mới cần được bắt đầu nhưng bạn luôn có một phiên bản được đặt trước. Caveat: điều này không đúng nếu mã ứng dụng không hay được viết kém (như gọi các dịch vụ bên ngoài bên trong một trình xử lý yêu cầu), dẫn đến thời gian phản hồi dài bất thường.

Dòng dưới cùng: đặt Trường hợp không hoạt động thành 1, sau đó đặt Độ trễ đang chờ xử lý thành một số giá trị tối đa vẫn được ứng dụng của bạn chấp nhận.

+0

Cảm ơn bạn - đề xuất của bạn về việc đặt các trường hợp không hoạt động thành 1 dựa trên lượng lưu lượng truy cập trên ứng dụng của tôi? Tôi tự hỏi nếu lưu lượng truy cập cao hơn sẽ biện minh cho việc tăng số lượng đó và bao nhiêu. Dường như với tôi rằng dưới tải ứng dụng thực hiện khá tốt, vấn đề chủ yếu liên quan đến thực tế 'không hoạt động' trong kinh nghiệm của tôi với công cụ ứng dụng. – JohnIdol

+0

Có, tôi đề xuất Idle = 1 (cả tối đa & phút) dựa trên thực tế là ứng dụng của bạn hầu như không hoạt động. Thông thường, như bạn có bây giờ, GAE sẽ dừng tất cả các trường hợp, dẫn đến thời gian tải dài của các yêu cầu đầu tiên sau một thời gian không hoạt động. –

+0

Cool - Tôi sẽ vô hiệu hóa các công việc cron của tôi và cho rằng một shot! cảm ơn vì những lời khuyên :) – JohnIdol

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