использовании symfony messenger
суть такая, в каждом сообщении сохраняется огромное кол-во данных через доктрину, в начале скрипта потребление 300мб, в конце 3гб, пытаюсь вычистить память в конце скрипта так
echo memory_get_usage() . "\n"; - проверил память до очистки, было 3гб
$this->entityManager->clear();
$this->managerRegistry->resetManager();
echo memory_get_usage() . "\n"; - проверил после очистки потребление скриптом, стало 300мб
echo memory_get_usage(true) . "\n"; - проверил после очистки память выделенную для пхп, стало 3гб
в итоге сам скрипт после очистки потребляет снова 300 мб, но для пхп потока все равно остается выделенная память в размере 3гб, как и до очистки, как эту память высвободить?
Спасибо
Она и так освобождена, я так понимаю, ос сама выделяет
она освобождена только для потребностей текущего потока, если смотреть ps -aux, то видно, что процесс весит все те же 3 гб))
Ос так решила, наверное )
ну вот интересно, может ли php-fpm за это отвечать и освобождать оперативку, так как когда параллельно 5 потоков например работают, спустя 15 минут они забивают всю память системы и приходится только перезапускать потоки, чтобы сбросить память
А если дальше запускать потоки, память не сбрасывается?
если закрывать текущие и новые стартовать, но все обнуляется и память возвращается оси)
Вообще, php-fpm не для таких задач, такое лучше через консоль запускать
ну значит я ошибся, я хз через консоль как там пхп работает))
unset ненужного
Обсуждают сегодня