Приложение LAMP, похоже, в конечном итоге использует всю память моего сервера и место подкачки. Чувство моего чувства заключается в том, что оно имеет какое-то отношение к внешним процессам, которые я должен назвать (поскольку это единственный раз, когда проблема проявляется).Проблема с LAMP и памятью/подкачкой
Мне нужно постоянно называть GhostScript, ImageMagick «конвертировать», PDFTK и т. Д. Когда эти процессы работают, я вижу, что моя память заканчивается. Итак, вопросы:
Какие методы следует использовать для окончательного определения того, какой процесс на самом деле вызывает проблемы с памятью? Мой план прямо сейчас состоит в том, чтобы запускать процессы индивидуально и просто наблюдать за использованием памяти с помощью команды * nix «top». Есть ли способ сделать это программно?
Есть ли какие-либо варианты «промывки памяти», которые я могу использовать? Будет ли это хорошей идеей?
Эти внешние процессы вызывают через PHP exec(). Означает ли это разветвление? Разве эти процессы не освобождают память, когда они будут сделаны? Или я должен это сделать? Как узнать, не освобождают ли они память? – StackOverflowNewbie
Да, php exec использует fork для создания подпроцесса. Он освободит память, когда приложение будет выполнено, до тех пор, пока вы не перенаправляете файлы ввода/вывода, которые по той или иной причине блокируются. –
Не могли бы вы рассказать о своем комментарии: «Решение этой проблемы - запустить небольшой резидентный скрипт/программу, прослушивающий сокет или именованный канал для запуска внешних программ».? – StackOverflowNewbie