2012-08-27 13 views
12

Django 1.4 ofrece varias formas de mantener django sessions:Comparación de rendimiento del uso de sesiones de cookies firmadas por django sobre django db + sesión basada en caché?

Mi punto de vista sobre el uso: Sólo

i) caché: No preferible, las sesiones de los usuarios pueden obtener purgado de Memcache.

ii) Db + cache (cached_db): Solución preferible, simple y segura.

iii) Sesiones de cookies firmadas: Preferible, sin hit de base de datos.

Suponiendo que los datos de la sesión son muy pequeños, es decir, no hay problema al almacenarlos en una cookie. ¿Hay algún beneficio de rendimiento de usar cookies firmadas sobre una base de datos + motor de sesión impulsado por Memcache? En cuanto a N nuevos usuarios concurrentes, habría un orden de N hits de la base de datos guardados. Esto reducirá las consultas totales que el servidor de la base de datos debe manejar por unidad de tiempo.

ACTUALIZACIÓN: Encontramos redis o aerospike como backends de sesión realmente robustos y de alto rendimiento para django. Estamos utilizando redis como sesiones backend

Respuesta

5

Usted debe ser capaz de manejar consultas simultáneas N (N - concurrentes nuevos usuarios).

Usted ve la diferencia en una escala muy grande solamente. Debes ser pesimista (el servidor está inactivo, no funciona bien, Amazon Bancrupcy) y tu base de datos debe ser capaz de manejar a todos los usuarios en horas punta.

  • 10 000 000 usuarios con cookie de sesión que le costará 0 $ adicional, problemas con marcos flotantes y móviles
  • 10 000 000 usuarios con sesión de caché le costará cientos o menos de cientos de dólares al día, sesión perdida caso de reinicio
  • 10 000 000 usuarios con sesión de cache_db le costará miles de dólares al día (cualquier almacenamiento permanente capaz de manejar 1 000 000 visitas en un momento dado, el 10% de los usuarios)

utilizo Redis backend (guardar periódicamente en el disco) con la posibilidad de cambiar a CA brillo de los servicios de memcached.

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

+0

donde 'SESSION_ENGINE = 'django.contrib.sessions.backends.signed_cookies'' datos de sesión se almacena? –

Cuestiones relacionadas