2013-03-04 33 views
7

Tôi đã phát triển một ứng dụng cho ứng dụng khách sử dụng khung chơi 1.x và chạy trên GAE. Ứng dụng hoạt động tuyệt vời, nhưng đôi khi rất chậm. Mất khoảng 30 giây để tải trang đơn giản nhưng đôi khi nó chạy nhanh hơn - không có thay đổi mã nào.Xác định lý do khiến Google app engine chậm

Có cách nào để xác định lý do khiến quảng cáo chạy chậm không? Tôi đã cố gắng liên hệ với bộ phận hỗ trợ nhưng tôi không thể tìm thấy bất kỳ số điện thoại hoặc email nào. Ngoài ra không có phản hồi trên nhóm google chính thức.

Bạn tiếp cận vấn đề này như thế nào? Hiện tại khách hàng của tôi rất tức giận vì thời gian tải chậm, nhưng việc chuyển sang nhà cung cấp khác là tùy chọn cuối cùng vào lúc này.

+0

Bạn có đang sử dụng master/slave hoặc bản sao cao cho kho dữ liệu của mình không? –

+0

Xin chào, tôi đang sử dụng bản sao cao – FrEaKmAn

+0

tự hỏi - bạn có đang giám sát tải trang web/GC/định thời gian mã của bạn không - nếu có, làm cách nào? –

Trả lời

0

Đây có phải là ứng dụng phải trả tiền không? Khi bạn không trả tiền cho một ứng dụng, các cá thể có một thời gian rất ngắn.

+1

Ứng dụng được trả tiền. Đó là tôi hiểu khởi động chậm, đó là bình thường. Tôi đang nói về thời điểm ứng dụng đã chạy. – FrEaKmAn

+0

vì vậy bạn có nghĩa là một yêu cầu thứ hai sau khi dụ và được nạp? số lượng phiên bản hiện tại vào lúc này? chỉ có một, hoặc có nhiều hơn? và cũng kiểm tra xem bạn có bao nhiêu thời gian rảnh. –

+0

Tôi đã đặt mọi thứ ở chế độ tự động và để Google quyết định điều gì là tốt nhất. Rất ít lần tôi đã kiểm tra và nó đang chạy 4 trường hợp .. – FrEaKmAn

8

Sử dụng GAE Appstats để cấu hình các cuộc gọi thủ tục từ xa của bạn. Tất cả RPC đều chậm (Google Cloud Storage, Google Cloud SQL, ...), vì vậy nếu bạn có thể giảm số lượng RPC hoặc có thể sử dụng một số cơ sở dữ liệu bộ nhớ đệm, hãy sử dụng chúng -> ứng dụng của bạn sẽ nhanh hơn nhiều. Nhưng bạn có thể thấy với appstats mà các bộ phận chậm và nếu họ cần chú ý :).

Ví dụ: tôi đã tạo bộ nhớ cache Google Cloud Storage cho ứng dụng của mình và giảm thời gian thực hiện từ 2 phút xuống dưới 30 giây. RPC là một nút cổ chai trong GAE.

0

Bằng cách tạo ít nhất một trường hợp vĩnh viễn, bạn sẽ có được cải thiện lớn trong lần sử dụng đầu tiên. Mất khoảng 15 giây. để tải các ứng dụng trong các trường hợp, đó là lý do bạn gặp lần yêu cầu lâu, khi không ai đã sử dụng ứng dụng trong một thời gian

+1

Tôi biết thời gian khởi động. Như tôi đã nói, nó hoạt động chậm trên khoảng thời gian ngẫu nhiên. – FrEaKmAn

+0

Bạn có chắc chắn đây không phải là vì một cá thể mới đang khởi động. Tùy thuộc vào cài đặt ứng dụng của bạn trong bảng điều khiển GAE, bạn thực sự có thể tác động tiêu cực đến ứng dụng của bạn như thế này tùy thuộc vào cài đặt. Đã có một số cuộc nói chuyện về điều này và các bài viết, nhưng tôi dường như không thể tìm thấy chúng ngay lập tức. Bạn cũng có thể sử dụng yêu cầu khởi động. – therewillbesnacks

2

Kết hợp một số câu trả lời và bổ sung một số điều cần kiểm tra:

  1. gỡ lỗi sử dụng số liệu thống kê ứng dụng. Tìm các tình huống "cầu thang" và các cuộc gọi RPC. Có thể một cái gì đó trong ứng dụng của bạn đang kích hoạt các cuộc gọi RPC tại một số điểm nhất định không xảy ra trong logic của bạn mọi lúc.

  2. Tinh chỉnh cài đặt cá thể của bạn. Thêm một số trường hợp thường trú/cư trú và xem có tạo sự khác biệt hay không. Nếu bạn đang quay lên các trường hợp mới, mọi thứ sẽ bị chậm, có lẽ xung quanh khung thời gian (30 giây hoặc hơn) bạn mô tả. Nó sẽ có vẻ ngẫu nhiên. Nó không chỉ là bao nhiêu trường hợp, nhưng những gì kết hợp của các thanh trượt bạn đang sử dụng (bạn thực sự có thể làm tổn thương chính mình với quá ít/nhiều).

  3. Xem chính ứng dụng của bạn. Bạn đang làm rất nhiều phân bổ bộ nhớ trong JVM? Phân bổ/giải phóng bộ nhớ vốn đã là một hoạt động chậm và có thể gây đóng băng. Bạn có chắc chắn sự đóng băng của bạn không phải là vấn đề JVM không? Hãy thử sao chép vấn đề cục bộ và tinh chỉnh cài đặt JVM xmx và xms và xem liệu bạn có tìm thấy hành vi tương tự hay không. Cũng hồ sơ ứng dụng của bạn cục bộ cho các vấn đề về bộ nhớ/hiệu suất. Bạn có thể cắt giảm phân bổ bằng cách sử dụng vùng chứa, vùng chứa DI, v.v.

  4. Bạn có đang chạy bất kỳ công việc/xử lý cron nào trên máy chủ front-end không? Cố gắng di chuyển nhiều nhất có thể vào các tác vụ nền như gửi email. Khoảng thời gian có thể có vẻ ngẫu nhiên, nhưng nó có thể là kết quả của những điều xảy ra tùy thuộc vào cài đặt công việc của bạn. 9 giờ sáng mỗi ngày có thể không có nghĩa là bạn nghĩ gì tùy thuộc vào tùy chọn cron/task. Một hệ quả - di chuyển mọi thứ đến các máy chủ back-end và kéo các hàng đợi.

Thật khó để cung cấp cho bạn câu trả lời hay mà không cần thêm thông tin. Người tốt nhất ở đây có thể làm là cung cấp cho bạn một điểm khởi đầu, mà hầu hết mọi câu trả lời ở đây đã có.

1

Google thường không cung cấp hỗ trợ liên hệ cho nhiều dịch vụ. Vấn đề được mô tả về sự chậm trễ của công cụ ứng dụng google có thể do khởi đầu lạnh. Các phiên bản front-end của ứng dụng Google engine hoạt động sau khoảng 15 phút. Bạn có thể viết một công việc cron để ping các trường hợp cứ sau 14 phút để giữ các nút.