Постановка проблемы:
Веб-сайт erp5-zope обрабатывает запрос в течение 4-5 минут, хотя я добавляю больше клиентов Zeo.Количество запросов в секунду составляет около 10.
Диаграмма высокого уровня:
.------- zeo client ---.
nginx ---{ ------- zeo client ----} ---> zope server (mysql and zope)
`-------- zeo client ---'
сервер ч / ш
nginx -> 4 core (4 GB RAM)
zeo clients -> 2 core (4 GB RAM)
zope server -> 16 core (8 GB RAM)
Наблюдения:
Еслия пытаюсь получить доступ к веб-сайту, используя новый клиент Zeo, который не работает, но указывает на тот же сервер zope, а затем я получаю хороший ответ.Когда я добавляю тот же новый клиент Zeo в рабочий процесс, отклик сервера некоторое время довольно хороший (скажем, 5 минут), но позже общая производительность снова падает.Теперь, когда я пытаюсь получить доступ к веб-сайту напрямую, используя новый клиент Zeo, он тоже становится медленным (поэтому проблема с nginx не возникает).Все блоки, кроме внутреннего сервера zope, не имеют большой активности (много свободного оперативной памяти, небольшая нагрузка <1 и сеть не перегружена), но в Zeo-сервере средняя загрузка составляет> 2, и все процессоры используются более чем на 50%.Я также вижу множество потоков MySQL на сервере zope.
О веб-приложении:
Это университетские веб-сайты, на которых студенты могут зарегистрироваться на курсы.Он не делает ничего, кроме заполнения формы, загрузки и изменения размера изображения, печати некоторых форм и преобразования документов (в odt, в doc, в pdt).
Вопросы?
Является ли архитектура высокого уровнянеправильно ?Или что-то не так с кодом (кэширование или что-то)?Как я могу улучшить общую производительность?Поможет ли отделить MySQL Server от бэкэнда Zope?