2009-12-06 38 views
16

Tôi đã tạo trang web Hello World trong Google App Engine. Nó đang sử dụng Django 1.1 mà không cần bất kỳ bản vá nào.Ứng dụng Google App Engine cực kỳ chậm

Mặc dù nó chỉ là một trang web rất đơn giản, nó mất nhiều thời gian và thường nó lần ra ngoài.

Bất kỳ đề xuất nào để giải quyết vấn đề này?

Lưu ý: Phản hồi nhanh sau cuộc gọi đầu tiên.

+2

điều này đã được thảo luận trong một bài đăng gần đây về nhóm appengine: http://groups.google.com/group/google-appengine/browse_thread/thread/22692895421825cb Sự cố với ping cũng được thảo luận - có thể dẫn đến ngắn hơn và thời gian chờ ứng dụng ngắn hơn như google và pingers leo thang. –

Trả lời

14

Đây là một gợi ý kinh khủng nhưng tôi sẽ làm cho nó anyway:

Xây dựng một ứng dụng client nhỏ hoặc chỉ sử dụng wget với cron để truy cập định kỳ ứng dụng của bạn, có lẽ một lần mỗi 5 phút hoặc lâu hơn. Điều đó sẽ ngăn Google đưa nó vào trạng thái không hoạt động.

Tôi nói đây là một đề xuất khủng khiếp vì đó là một sự lãng phí tài nguyên và lạm dụng dịch vụ miễn phí của Google. Tôi hy vọng bạn làm điều này chỉ trong một giai đoạn thử nghiệm/khởi động ngắn.

+1

Tôi nhận thấy rằng các yêu cầu đến từ các IP khác nhau không nhất thiết phải được làm ấm bởi nhau .. nó phụ thuộc vào phần nào của trang web của G mà bạn truy cập ... phiên xuất hiện để được dính cho một IP nhất định mặc dù – HaveAGuess

4

Nếu nó phản hồi nhanh chóng sau yêu cầu đầu tiên, đó có thể chỉ là trường hợp nhận được quá trình liên quan và chạy. Phải thừa nhận rằng nó hơi ngạc nhiên rằng phải mất quá lâu mà nó lần ra. Đây có phải là sau khi bạn đã cập nhật ứng dụng và xác minh rằng bảng điều khiển AppEngine hiển thị nó dưới dạng sẵn sàng chưa?

"Lần truy cập chậm đầu tiên" khá phổ biến trong nhiều khung công tác web. Đó là một chút đau đớn trong quá trình phát triển, nhưng không phải là một vấn đề cho sản xuất.

+0

Tôi có thể xác nhận rằng điều này cũng xảy ra với tôi. Có vẻ như AppEngine đặt ứng dụng của bạn vào giấc ngủ nếu nó không được truy cập, và đi về một quá trình mất thời gian để đánh thức nó lần đầu tiên. Tôi đã trải qua thời gian chờ trên một ứng dụng chức năng khác. Khi Dondon có hàng triệu người dùng đầu tiên, điều này sẽ không còn là vấn đề nữa :) –

3

Tôi gặp phải điều tương tự với ứng dụng dựa trên giá treo. Tôi có máy chủ trang ban đầu là tĩnh và có cuộc gọi ajax giả trong đó để đưa ứng dụng lên, trước khi người dùng nhập bằng chứng xác thực. Nó thường là đủ để tránh một phản ứng dài ... Chỉ là một ý tưởng mà bạn có thể sử dụng trước khi bạn thực sự có một triệu người dùng;).

4

Một mẹo khác có thể tăng thời gian phản hồi.

Bật tính năng thanh toán sẽ tăng hạn ngạch và trải nghiệm cá nhân của tôi, đồng thời tăng phản hồi chung của ứng dụng. Có lẽ vì ưu tiên cao hơn cho các ứng dụng hỗ trợ thanh toán mà Google có. Ví dụ: một ứng dụng có tính năng thanh toán bị vô hiệu hóa, có thể gửi tới 5-10 email/yêu cầu, một ứng dụng có tính năng thanh toán được bật dễ dàng đối phó với 200 email/yêu cầu.

Chỉ cần chắc chắn để thiết lập mức thanh toán thấp - bạn không bao giờ biết khi nào Slashdot, Digg hoặc HackerNews thông báo trang web của bạn :)

7

Để tóm tắt this thread cho đến nay:

  • bắt đầu lạnh mất một thời gian dài
  • Google không khuyến khích các ứng dụng ping để giữ cho chúng ấm áp, nhưng mọi người không biết cách thay thế
  • an issue filed để thanh toán cho trường hợp ấm áp (của Java)
  • an issue filed cho Python. Trong số những thứ khác, các tệp .py không được biên dịch trước.
  • Một số ứng dụng bị ảnh hưởng không cân xứng (không thể tìm thấy Google Groups ref hoặc issue)
  • March 2009 thread about Python nói < 1s (!)

Tôi thấy ít nói về Python về vấn đề này.

+1

Đó là một khiếu nại phổ biến với python khi Django có liên quan. Số lượng lớn nội dung được nhập không hoạt động tốt với hệ thống trong đó các phiên bản được tải xuống thường xuyên. – geoffspear

3

Tôi đã sử dụng pingdom vì lý do hiển nhiên - không bắt đầu lạnh là tiền thưởng. Tất nhiên khách hàng sẽ sớm đổ xô và nó sẽ không phải là vấn đề

19

Bây giờ Google đã thêm tùy chọn thanh toán "Luôn bật" là 0,30 đô la một ngày.

Sử dụng tính năng này, ứng dụng của bạn sẽ không phải bắt đầu lạnh nữa.

Always On

Trong khi yêu cầu hâm lại giúp quy mô ứng dụng của bạn suôn sẻ, họ làm không giúp đỡ nếu ứng dụng của bạn có rất lượng thấp của giao thông. Đối với các ứng dụng có mức độ ưu tiên cao với lưu lượng truy cập thấp , bạn có thể đặt trước các phiên bản qua Tính năng Luôn bật của Máy ứng dụng.

Always On là một tính năng cao cấp mà trữ ba trường hợp của ứng dụng của bạn, không bao giờ biến chúng tắt, ngay cả khi ứng dụng không có giao thông. Điều này giảm thiểu tác động của yêu cầu tải trên các ứng dụng có số lượng nhỏ hoặc biến là lưu lượng truy cập . Ngoài ra, nếu trường hợp Luôn bật bị vô tình, App Engine sẽ tự động khởi động lại phiên bản với yêu cầu khởi động. Do đó, Luôn có các ứng dụng phải chắc chắn để khởi tạo nhiều như có thể trong các yêu cầu khởi động.

Ngay cả sau khi bật Luôn bật, ứng dụng của bạn có thể gặp phải yêu cầu nếu tăng đột ngột trong giao thông.

Để bật Luôn bật, hãy chuyển đến trang Thanh toán Cài đặt trong Bảng điều khiển dành cho quản trị viên của ứng dụng và nhấp vào hộp kiểm Luôn bật .

http://code.google.com/intl/de-DE/appengine/docs/adminconsole/instances.html

1

Bạn có thể muốn thử CloudUp. Nó ping các ứng dụng google của bạn định kỳ để giữ cho chúng hoạt động. Nó hoàn toàn miễn phí và bạn có thể thêm bao nhiêu ứng dụng tùy thích. Nó cũng hỗ trợ azure và heroku.

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