Даже если Вы установили ключи для не истечения в Memcached, записи будут удалены согласно последнему использованному, если Memcached заполнится. Стандартный основанный на плите механизм хранения хранит записи в блоках фиксированного размера, которые выделяются от плит 1 МБ размером. Хотя это быстро, это также означает, что Memcached может закончить тем, что тратил впустую довольно большую память. После того как плита была выделена для содержания блоков конкретного размера, я не думаю, что блоки могут быть изменены. Если соединение больших и маленьких объектов кэшируется, и состав изменяется со временем, возможно, что memcached закончится storeing маленькие объекты в намного больших блоках, если они будут единственными доступными.
Это - одна из проблем, которые компании как, например, gear6 (www.gear6.com) и northscale (www.northscale.com) решили в их дистрибутивах Memcached.
Я не подключал скрипты Python к syslog-ng, но в скриптах Perl мне нужно отключить буферизацию вывода, прежде чем они будут работать в реальном времени. На языке Perl это $ | = 1
.
Я не особо разбираюсь в Python, но думаю, что запуск вашего скрипта Python с -u
или установка переменной PYTHONUNBUFFERED
могут помочь.