memcache + reload uwsgi náhodné errory

8 views
Skip to first unread message

Jan Munclinger

unread,
Aug 4, 2021, 4:47:35 PM8/4/21
to djan...@googlegroups.com
Ahojte všichni!

Problém:
Po reloadu uwsgi vassala končí náhodně načítání dat z Memcached errorem MemcacheUnknownError.

Detaily:
Jedná se o zacachovanou instanci modelu, který má mimo jiné několik TextFieldů, kam uživatěl zadává delší texty (včetně nových řádků) anebo kusy JS kódu (např. nějaké JavaScriptoviny, ktere se pak vlepí do stránky).

Memcached používám jinde bez problémů, ale právě tento - řekl bych že hodně "velký" objekt - má problém.

V error hlašce vidim vždy nějaký kousek těch dat, např. z toho Textfieldu. 

Můj tip:
Myslím, že nové řádky nebo velikost toho objektu, který chci zacachovat je problem. Nějaké bufferování, když se snaží "python" načíst data z memcached, nebo co já vím?

Ale proč se to děje právě při reloadu uwsgi?

Konfigurace:
Memcached 1.5.6
Python 3.6.9
Django 3.2.5
pymemcache  3.5.0
backend: django.core.cache.backends.memcached.PyMemcacheCache 

Nemá někdo tip, čím by to mohlo být?

Díky
Mokys

Pavel Cisar

unread,
Aug 5, 2021, 8:09:18 AM8/5/21
to djan...@googlegroups.com
Ahoj,
neni ten objekt vetsi nez maximum 1MB? Jinak to je chyba, kdy obvykle pymemcache nerozumi odpovedi z memcache.

Pavel

st 4. 8. 2021 v 22:47 odesílatel Jan Munclinger <jan.mun...@gmail.com> napsal:
--
--
E-mailová skupina djan...@googlegroups.com
Správa: http://groups.google.cz/group/django-cs
---
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „django-cs“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, zašlete e-mail na adresu django-cs+...@googlegroups.com.
Chcete-li tuto diskusi zobrazit na webu, navštivte https://groups.google.com/d/msgid/django-cs/CAKhpuXxjizu_yA0dg%3DFXEorCum2AnbzoJNzjc0gPyrQfWFn9KA%40mail.gmail.com.

Vladimir Linhart

unread,
Aug 5, 2021, 8:17:53 AM8/5/21
to django-cs
mozna pokud se ti ten model zmenil mezi reloadem (deploy?) tak ten
starej pickled serializovanej model nejde unpickle zpatky...
> Chcete-li tuto diskusi zobrazit na webu, navštivte https://groups.google.com/d/msgid/django-cs/CAKtEf96CQLobuOkbQygewDXYkXT%3DTXpdOpVPQHN97T%2Bd1jqHFQ%40mail.gmail.com.

Jan Munclinger

unread,
Aug 6, 2021, 8:55:07 AM8/6/21
to djan...@googlegroups.com
Ahojte,

vic než 1MB to nemá. Velikostí myslím délku bytestringu po serializaci zde:
Velikost je nejakych 5kB. Navíc téměř vše vpořádku funguje. Problém je *vždy* jen když dělám ten reload uwsgi.

Změna modelu taky nemůže být příčina. Nikdo model nezmenil,

Zjistil jsem, že v appce docházi k načítání z memcached někdy hodně často. Tím myslím větší desítky za sekundu. Neptejte se proč je to tak blbě, bohužel je to tak. Vylogoval jsem z appky i z memcached duši a z logu vylezlo to, že (a to se odehraje během jedne sekundy): 50x se objekt z memcache načte vpořádku, pak to 5x skonci tim errorem a pak zase 20x vpořádku.
Tohle je jediné, kam mě debug dovedl, ale že by takováto čísla způsobila zakuckání memcached? To se mi moc nezdá. Appka běži na AWS EC2 4 vCPU.

Pokusim se tedy udělat nejaké upravy v appce, aby to tak často nenačítalo z cache... proste nozovka, nevěřím, že to pomůže... a uvidime.

Mokys


čt 5. 8. 2021 v 14:17 odesílatel Vladimir Linhart <vladimir...@gmail.com> napsal:
Reply all
Reply to author
Forward
0 new messages