Я установил php5 в ubuntu и WordPress. Он может работать после установки. Но через несколько дней я обнаружил, что там много процессов и много воспоминаний. Я пытаюсь использовать
ps -aux | grep www-data
и нашел около 30 таких процессов.
www-data 5066 0.0 0.0 131664 780 ? S 16:20 0:00 /usr/sbin/php5-fpm --fpm-config /etc/php5/fpm/main.conf
Я пытался
kill -9 pid
и это не сработало, снова появляется новый процесс. Итак, не могли бы вы рассказать мне, как их безопасно убить, и я не хочу, чтобы память моего vps была занята этим.
и это не сработало, снова появляется новый процесс
В самом деле? Хотя я ожидал, что появится больше процессов, убитый вами должен уйти.
Если вы хотите остановить все это, выключите демон, я не знаю, как он настроен на вашем компьютере, но здесь я бы сделал ....
/etc/init.d/php-fpm stop
Но это не способ решить проблему «Я обнаружил, что существует много процессов и занято много воспоминаний». Вам следует начать с правильного анализа трафика и профилирования кода.
Попробуйте здесь, я думаю, это та же проблема :)
Как остановить процессы Apache www-data?
«Apache, работающий как www-data, по умолчанию в Debian Lenny. Вы можете спутать единственный« родительский »процесс apache (работающий от имени root) с« дочерними »apache, выполняющими обработку HTTP-запросов (работающими как www-data). Оба« родительских » 'и' дочерние 'процессы должны выглядеть так, как будто они были запущены с помощью / usr / sbin / apache2 -k start (когда вы используете ps aux | grep apache), и единственная разница - это владелец процесса.
Для управления сценариями запуска инициализации вы можете использовать sudo sysv-rc-conf (sudo aptitude install sysv-rc-conf, если у вас его нет - это просто простая оболочка Perl, похожая на curses, для сценариев инициализации) »-Chronos
Таким образом, каждый процесс является дочерним процессом, работающим с http-запросами, если вы действительно хотите их убить, либо уничтожьте процесс с помощью sudo kill PID, либо, возможно, / usr / sbin / apache2 -k stop.
Том
Нет 100% ничего плохого в том, что вы видите. PHP - это модуль, запускаемый Apache, который контролируется пользователем. www-data
. Вы видите нормальное поведение. И большая часть изменений, внесенных мной для повышения производительности, связана с конфигурациями Apache, а не с настройками PHP.
Если вы хотите лучше контролировать это поведение, есть два места для внесения изменений.
1. Отрегулируйте ограничение памяти PHP: Откройте файл php.ini, который должен находиться в /etc/php5/apache2/php.ini
и отредактируйте опцию под названием memory_limit
. Он должен быть установлен на 64M или 32M. Но это, по сути, максимальный предел памяти, который может использовать любой процесс PHP, связанный с каждым процессом Apache2 (см. Ниже). Так что, если вы запускаете WordPress и он хочет запускать любой процесс с 32 МБ ОЗУ, нет проблем. Если потребуется больше, скрипт завершится ошибкой, и ваш журнал ошибок Apache2 находится по адресу /var/log/apache2/error.log
заполнит ошибками.
2. Настройте конфигурацию Apache в соответствии со своими потребностями: Поскольку PHP - это модуль, работающий в Apache, чем больше процессов Apache у вас запущено, тем больше памяти будет израсходовано. Если у вас стандартная установка Apache2, откройте этот файл и осмотритесь: /etc/apache2/apache2.conf
. В частности, вот настройки, которые я всегда настраиваю при стандартной установке.
KeepAlive
. И я настраиваю это в зависимости от потребностей сервера. Для сред разработки я придерживаюсь минимума. Скажем, 3 или 4. Для производственной среды я обычно чувствую KeepAlive
полезен только для 1/3 соединений. Поэтому я установил это значение примерно на 24 или 32. Но память вызывает беспокойство, я бы оставил это низким, поскольку чем больше KeepAlive
чем больше у вас запущенных клиентов и тем больше оперативной памяти вы использовали для каждого процесса.KeepAliveTimeout: Это в основном измерение того, насколько быстро можно загрузить страницу на вашем сайте. Подумайте об этом: зачем поддерживать соединение дольше того времени, которое требуется клиенту для получения контента для одной страницы? По моему опыту, установка от 2 до 5 секунд - это хорошо. Но когда для рендеринга страницы он отклоняется до 5 секунд, это означает, что что-то действительно подавляет базовую систему. Так что для меня это знак переоценить код и очистить ресурсоемкое кодирование.
Затем перейдите к mpm_prefork_module
площадь. Вот как я настраиваю свою среду разработки; это для сайта с низкой посещаемостью.
<IfModule mpm_prefork_module> StartServers 8 MinSpareServers 8 MaxSpareServers 8 ServerLimit 16 MaxClients 16 MaxRequestsPerChild 2000 </IfModule>
По сути, это устанавливает все ограничения и параметры для базовой установки Apache. Я считаю, что каждый параметр должен быть понятным, но вот моя разбивка.
Надеюсь это поможет!