В DLE существует проблема блокировки сессий.
На каждом запросе выполняется session_start()
, который открывает сессию, ставит блокировку и держит ее до завершения запроса.
Если сессия уже заблокирована, все остальные бесконечно ждут когда смогут захватит блокировку.
Типичный сценарий:
- Пользователь делает запрос который по каким то причинам долго выполняется.
- Сессия пользователя блокируется.
- Пользователь продолжает делать запросы к сайту.
- Процессы начинают вставать в ожидание на блокировку.
- Количество процессов упирается в лимит, сайт перестает отвечать на любые запросы всех пользователей.