#27641: Default CACHES uses Locmem which isn't suitable for production
-------------------------------------+-------------------------------------
Reporter: Adam Chainz | Owner: Adam
Type: | Chainz
Cleanup/optimization | Status: assigned
Component: Core (Cache system) | Version: 1.10
Severity: Normal | Resolution:
Keywords: | Triage Stage:
| Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by Aymeric Augustin):
> The way Django uses caching is to assume there's a single cache for the
whole application
This is correct, hovewer, considering the contract of Django cache
backends -- keys can be evicted arbitrarily -- I believe that in (most)
(reasonable) cases the effect of separate workers using separate caches is
lower performance (cache hits / N for N workers) and increased resource
usage (memory * N for N workers). This is annoying but not always worth
the effort of setting up or paying for a separate cache server. I have
used the locmem cache successfully in production for modest optimizations
such as template caching.
I'd rather handle this in the documentation.
One surprising and little know characteristic of the locmem cache backend
is that it's bounded to 300 keys by default. Even for caching medium-size
objects (let's say 8kB), that's quite low (limited to 2,4MB). I'm not sure
the docs mention it sufficiently clearly. If we explain the downsides of
using the locmem cache in production, it would be a good place to mention
that this setting likely needs tuning.
--
Ticket URL: <https://code.djangoproject.com/ticket/27641#comment:4>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/068.1bf57dac156a75902c3fdb1b624589e4%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.