2012-08-27 20 views
12

Django 1,4 cung cấp một số cách để duy trì django sessions:So sánh hiệu suất của việc sử dụng phiên cookie django đã ký trên django db + cache dựa trên phiên?

quan điểm của tôi về việc sử dụng:

i) bộ nhớ cache chỉ: Không thích hợp hơn, phiên người dùng có thể được thanh lọc ra khỏi memcache.

ii) Bộ nhớ cache Db + (cached_db): Giải pháp thích hợp, đơn giản và an toàn.

iii) Phiên cookie đã ký: Ưu tiên, không có cơ sở dữ liệu nào được nhấn.

Giả sử dữ liệu phiên rất nhỏ, tức là không có vấn đề gì trong việc lưu trữ dữ liệu trong cookie. Có lợi ích nào về hiệu suất của việc sử dụng cookie đã ký qua cơ sở dữ liệu + công cụ phiên chạy theo memcache không? Đối với N người dùng mới đồng thời, sẽ có thứ tự các lần truy cập cơ sở dữ liệu N được lưu. Điều này sẽ giảm tổng số truy vấn mà máy chủ cơ sở dữ liệu phải xử lý trên mỗi đơn vị thời gian.

CẬP NHẬT: Chúng tôi tìm thấy redis hoặc aerospike là phần phụ trợ mạnh mẽ và thông lượng cao cho django. Chúng tôi đang sử dụng redis như phiên backend

Trả lời

5

Bạn phải có khả năng xử lý N truy vấn đồng thời (N - đồng thời mới người dùng).

Bạn thấy sự khác biệt ở mức quy mô rất lớn chỉ. Bạn phải bi quan (máy chủ bị hỏng, hỏng hóc, amazon bancrupcy) và cơ sở dữ liệu của bạn phải có khả năng xử lý tất cả người dùng trong giờ cao điểm.

  • 10 000 000 người dùng với phiên cookie sẽ chi phí bạn 0 $ thêm, vấn đề với iframe và điện thoại di động
  • 10 000 000 người dùng với phiên nhớ cache sẽ chi phí bạn hàng trăm hoặc ít hơn trăm đô la mỗi ngày, phiên bị mất trong trường hợp khởi động lại
  • 10 000 000 người dùng với phiên cache_db bạn sẽ chi phí hàng ngàn đô la mỗi ngày (bất kỳ lưu trữ liên tục khả năng xử lý 1 000 000 lượt truy cập trong một thời gian, 10% người sử dụng)

tôi sử dụng redis backend (định kỳ lưu vào đĩa) với khả năng chuyển đổi sang ac ánh sáng của các dịch vụ memcached.

http://www.icis.com/blogs/icis-chemicals-confidential/files/2011/10/19/goodcheapfast.jpg

+0

đâu 'SESSION_ENGINE = 'django.contrib.sessions.backends.signed_cookies'' dữ liệu session? –

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