2012-03-08 36 views
5

Sẽ kiểm tra kết quả với 1000 người dùng tương tự với kết quả tôi nhận được với 10.000 người dùng? Tăng 10x trong việc sử dụng memcache có thay đổi kết quả tôi nhận được không, nếu tôi cũng có 10x các phiên bản đang chạy?Giới hạn Memcache App Engine của tôi có thể mở rộng quy mô với ứng dụng của tôi không?

Tôi đã sử dụng memcache cho rất nhiều thứ và nó hoạt động rất tốt. Bây giờ, tôi muốn đưa nhiều hơn vào nó, lưu trữ kết quả của một số truy vấn quan trọng. Các truy vấn khác nhau đối với mỗi người dùng và tôi có một nghìn người dùng một tuần ngay bây giờ.

Tôi cảnh giác với chiến lược này. Tôi có thể dành thời gian thực hiện điều này, và thấy rằng đối với hàng ngàn người dùng của tôi, nó hoạt động rất tốt. Tuy nhiên, giả sử trang web của tôi phát triển phổ biến và đột nhiên tôi có 10.000 người dùng. Tôi có thấy hiệu suất memcache giảm không?

Tôi lo lắng về sự sụt giảm rất mạnh. Tôi có thể tưởng tượng rằng có một số giới hạn vô hình, như 1GB dữ liệu memcache mà tôi được phép sử dụng. Đột nhiên, với mức tăng gấp 10 lần mức sử dụng, tôi có thể vượt qua giới hạn đó và thấy một số lượng lớn tiếng đập hay gì đó.

Điều này có vẻ rất khó để khách hàng thử nghiệm - Tôi rất thích nhận xét từ người dùng nội bộ App Engine.

Cảm ơn mọi thông tin chi tiết!

+0

Câu hỏi tương tự ở đây: http://stackoverflow.com/questions/2175586/how-much-memory-of-memcache-is-available-to-a-google-app-engine-account Câu trả lời là một chút mơ hồ, nhưng ý tưởng chung là số lượng quy mô công suất memcache. –

+0

Ah, cảm ơn vì đã chỉ cho tôi ở đó.Tôi đoán tôi sẽ lấy nó! ;) –

Trả lời

2

Nội bộ của việc triển khai Memcache trên GAE chỉ được Google biết đến, do đó, đặt câu hỏi như vậy trên một trang web công cộng chung là không thích hợp để bạn có được câu trả lời rõ ràng.

Nhưng hãy để tôi suy đoán: nếu bạn nhìn vào Python NDB API mới, bạn sẽ thấy rằng theo mặc định, tất cả dữ liệu được lưu trữ (một phần) trong memcache. Vì vậy, nếu Google đang làm nó theo mặc định trên một quy mô lớn, sau đó tôi đoán họ chắc chắn memcache là khả năng mở rộng.

EDIT:

Bên cạnh đó, GAE sessions cũng sử dụng Memcache bộ nhớ cache dữ liệu phiên theo mặc định, có nghĩa là tất cả các ứng dụng sử dụng phiên (= hầu hết các ứng dụng Web) cũng sử dụng Memcache trên quy mô lớn.

0

Bạn có thể luôn luôn giả một memcache bằng cách viết dữ liệu tuần tự đến blobstore ...

0

App Engine memcache sẽ mở rộng nhiều như bạn muốn miễn là bạn không có các phím nóng.

Khi bạn mở rộng quy mô, bạn sẽ cần chuyển từ memcache được chia sẻ sang memcache chuyên dụng, mà bạn mua bằng đơn vị 1GB để sử dụng độc quyền.

Ngoài việc nhận được lượng bộ nhớ phù hợp, bạn cũng sẽ cần đảm bảo rằng bạn có đủ memcache để xử lý tải. Như được mô tả trong App Engine memcache docs, mỗi GB memcache có thể hỗ trợ khoảng 10k hoạt động chính/giây, nếu mục có kích thước khoảng 1 kB.

Điều thực sự có thể giới hạn việc chia tỷ lệ của bạn là các phím nóng. 10k keyops/s cho mỗi GB chỉ áp dụng nếu bạn có phân phối khóa đồng đều. Nếu bạn có một số lượng nhỏ các khóa có số lượng lưu lượng truy cập không cân xứng, thì chúng có thể vượt quá dung lượng của một phần của hệ thống phụ trợ. Phần trình xem memcache trong Bảng điều khiển dành cho quản trị viên sẽ hiển thị các khóa trên cùng của bạn để giúp bạn chẩn đoán các phím nóng.

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