ZEO тупики на uWSGI в режиме мастера

Добрый день!

Я перехожу к развертыванию uWSGI. Проект наполовину на ZOPE3 и использует ZODB с ZEO для множественного доступа. Если я запустлю демон uwsgi вот так:

uwsgi_python27 --http :9090 --wsgi-file /path/to/file

Все работает нормально. Это режим единого процесса. Нет блоков или замков. Когда я запускаю приложение так:

uwsgi_python27 --http :9090 --wsgi-file /path/to/file -p 3

Все работает. Это режим Preforking. У нас хорошие результаты. Но некоторые запросы блокируются. Я подозреваю, что приложение блокирует 1 запрос при запуске нового экземпляра. У меня 2-3 заблокированных запроса. Все остальные работают хорошо.

Но когда я начинаю так:

uwsgi_python27 --http :9090 --wsgi-file /path/to/file --master

Приложение запускается, но запросы не обслуживаются. Когда я захожу в curl localhost:9090/some_page, он никогда ничего не загружает. Без процессора, без использования диска. Это просто замки.

Кто-нибудь знает какое-либо конкретное поведение ZEO, которое может привести к этому? Если я запускаю только FileStorage, он работает нормально, без каких-либо блокировок. Любые подробности о мастер-режиме поведения uWSGI также приветствуются.

1 ответ

Решение

Хорошо. Так что мне удалось запустить эту чертову штуку. Я подозреваю, что RPC ZEO плохо работает с разветвлением Linux. Так что запускать приложение нужно только в разветвленном процессе, а не перед разветвлением.

Смотрите параметры конфигурации lazy или lazy-apps для uwsgi.

ссылка: http://uwsgi-docs.readthedocs.org/en/latest/ThingsToKnow.html

Другие вопросы по тегам