LINUX.ORG.RU

Из Memcached исчезают сохраненные записи (памяти хватает)

 , , ,


0

2

Привет

Столкнулся со странной вещью. В Django проекте сделан кеш, в который ложатся результаты запросов. Так вот при движке database все сохраняется и из кеша берутся данные по ключам. При движке memcached происходит сохранение записи (проверял), но при повторном запуске запроса(после рестарта проекта в Pycharm) оно считает что по ключу ничего нет, как будто запись была удалена. Более того про нестабильность записи в memcached упоминается даже в документации Django.

В чем может быть причина ? Пробовал разные настройки, памяти выделено достаточно. Заметил что это проявляется при интенсивной записи

★★★

Последнее исправление: ism (всего исправлений: 3)

Срок хранения, количество памяти, количество записей

Публикуй сорцы и конфиги, иначе сложно точно сказать что там у тебя могло отвалиться

Goury ★★★★★
()

Заметил что это проявляется при интенсивной записи

Вангую количество записей превышается. См настройки

pi11 ★★★★★
()
Ответ на: комментарий от Goury

Конфиг стандартный в centos 7

PORT=«11211»
USER=«memcached»
MAXCONN=«1024»
CACHESIZE=«800»
OPTIONS="-I 10m"

Срок хранения год. Количестов записей порядка 5000

В статистике evicted 0

ism ★★★
() автор топика
Последнее исправление: ism (всего исправлений: 2)
Ответ на: комментарий от pi11

Вангую количество записей превышается. См настройки

Разве количество записей не определяется количеством выделенной памяти ?

ism ★★★
() автор топика
Ответ на: комментарий от pi11

MAX_ENTRIES: The maximum number of entries allowed in the cache before old values are deleted. This argument defaults to 300.

Cache backends that implement their own culling strategy (i.e., the locmem, filesystem and database backends) will honor the following options:

Это первое на что я смотрел

ism ★★★
() автор топика
Последнее исправление: ism (всего исправлений: 2)
Ответ на: комментарий от ism

Попробуй кстати pylibmc (если не его используешь) в качестве клиента к memcached, он в случае ошибки записи в memcached exception бросает, в отличии python-memcached.

pi11 ★★★★★
()
Ответ на: комментарий от pi11

Его и пользую, но он молчит

Попробую на всякий max entries, но насколько помню движок memcached его не принимает

ism ★★★
() автор топика
Ответ на: комментарий от pi11

И кстати как вариант, если размер значения выше максимума memcached то python-memcached молча его в None поставит. Хотя у тебя там 10 мегабайт, но все же.

pi11 ★★★★★
()
Ответ на: комментарий от pi11

Это тоже проверял. И минимальный размер записи тоже

Я так и не смог отловить обстоятельства потери записей. Один раз сохранилось, один раз нет

ism ★★★
() автор топика
Последнее исправление: ism (всего исправлений: 3)
Ответ на: комментарий от ism

Это не сорцы и не конфиги, это кусок конфига мемкашеда.
5000 записей — как-то маловато.

Goury ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.