Apache flock_lock_file_wait для удаленного файла сессии PHP

У нас возникла проблема с нашим рабочим веб-сайтом, когда наши экземпляры Apache загадочно задыхаются. Сервер никогда не падает полностью, просто у apache не хватает ресурсов.

Глядя на ситуацию, я отследил ее до целого ряда наших процессов Apache, которые застряли навсегда в режиме flock_lock_file_wait. Как только процесс застревает в этом режиме, он никогда не выходит из строя. Итак, мастер-процесс порождает другого потомка, который в конечном итоге снова застревает в этом режиме, пока у нас наконец не закончатся доступные потомки, и сайт не остановится.

С помощью lsof в одном из этих "застрявших" процессов я обнаружил, что они застряли в удаленных файлах сеансов PHP5. Вот некоторый вывод lsof о застрявшем процессе:

apache2 32489 www-data 36u REG 8,1 195 5974866 / var / lib / php5 / sess_bd5afe5ad8b05531d48a7e6f81638faa (удалено)

Я захожу в этот каталог, и да, этот файл исчез. Таким образом, процесс Apache застревает, пытаясь записать (или прочитать) данные сеанса из удаленного файла.

Мой вопрос - какого черта я делаю сейчас? Это похоже на то, что Apache должен как-то знать, чтобы не зацикливаться, но я не знаю, как заставить его просто двигаться дальше без перезагрузки Apache, что мы должны делать почти каждый день.

Есть мысли о том, куда я могу пойти отсюда?

0 ответов

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