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