Magento держит удаленные файлы

Внезапно мой сервер вышел из памяти. Я попытался проверить дисковое пространство с помощью команды "df -k", но все выглядело нормально. Итак, после отслеживания многих вещей, которые я обнаружил, служба httpd хранит удаленные файлы во временной памяти, которые не могут быть добавлены "df -k". Чтобы проверить последние удаленные файлы, которые все еще находятся в службе, я использовал "sudo lsof | grep Удаленный" это команда.

httpd 58324 58501 apache 8ur REG 253,0 0 279075355 /tmp/.ZendSem.SpCcXd (удалено)

Это приложение Magento на сервере centos7 (linux) с apache 2.4.6, потратив некоторое время, которое я обнаружил, когда остановил apache и запустил "sudo lsof | grep delete", этой команды у меня не возникло такой проблемы. Как только я запускаю apache и проверяю команду "sudo lsof | grep Удален", это снова показывает прикрепленный скриншот.

1 ответ

Я столкнулся с этой проблемой с различными приложениями на разных платформах. Это распространенная проблема кодирования, когда код, использующий файлы, не закрывает файл, когда это делается с ним. Код должен всегда закрывать файл после завершения работы с ним.

Один из распространенных способов защиты временных файлов - открыть файл, удалить его и затем работать с ним. Это может быть то, что делается здесь. Тем не менее, файл остается в существовании, пока он не будет закрыт.

Обходным путем будет ограничение количества запросов, которые ребенок Apache будет обрабатывать перед завершением работы. Файлы будут закрыты, когда ребенок выйдет. Установка MaxRequestsPerChild где-нибудь в диапазоне от 100 до 1000 может смягчить проблему. Значением по умолчанию является 10000.

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