Найти - Пользователи
Полная версия: Gunicorn + Eventlet + Memcache: connect: timed out. Marking dead.
Начало » Python для экспертов » Gunicorn + Eventlet + Memcache: connect: timed out. Marking dead.
1
Avi
Здравствуйте,

Прошу помощь комьюнити, не могу разобраться в чем дело. Уперся в стену.

Есть wsgi скрипт, который выполняется на gunicorn сервере. Изначально я писал и отлаживал скрипт используя worker_class = ‘sync’ в конфигурации gunicorn. То есть один процесс = одно соединение в один момент времени.
После отладки, пришло время установить скрипт на боевой сервер под большой нагрузкой. После перевода worker_class на ‘eventlet’ и установки worker_connections = 128, начались проблемы.

Смысл работы скрипта:
При каждом запросе из браузера он получает данные (curl) с удаленного сервера и кладет их в memcache.

При worker_class = ‘eventlet’, worker_connections = 10 начинают сыпаться ошибки от memcached следующего содержания:
MemCached: MemCache: inet:127.0.0.1:11211: timed out. Marking dead.

В то время, как при worker_class = ‘sync’ все в полном порядке, даже если количество воркеров более 100 штук.

Подскажите пожалуйста в какую сторону копать.
Спасибо!
o7412369815963
какой таймаут на мемкеше?
Avi
Пробовал разный ставить. До 5 сек. Никакой разницы.
После топика погуглил как смог, наткнулся на:
memcache = eventlet.import_patched('memcache')

Судя по всему нужно копать в сторону monkey patch под green thread'ы. Но я пробовал импортировать таким способом - никакой разницы.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB