Предложение необходимо для улучшения текущей конфигурации сервера
У меня есть сервер LAMP со следующей конфигурацией -
- 32-битная ОС Debian Etch
- Apache 2.2
- PHP 5.2
- MySQL 5.0.32
аппаратные средства
- 3 ГБ памяти
- 2 процессора Intel(R) Xeon(R) 1,86 ГГц
Каждый процесс Apache занимает около 10 Мб памяти. Журнал доступа Apache отключен. Apache, MySQL и PHP устанавливаются с использованием apt-get.
Пик числа ударов в секунду Apache составляет 415 ударов / секунд
Нужно знать, если это слишком много для моего Apache, то необходимо перезапускать каждые полчаса из-за использования памяти и замены.
Что может быть не так с этим, пожалуйста, помогите....
Добавление конфигурации Apache:
Timeout 300
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 100
</IfModule>
<IfModule mpm_worker_module>
StartServers 4
MaxClients 600
MinSpareThreads 50
MaxSpareThreads 150
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
3 ответа
ps/top своего рода ложь об использовании памяти. Вы видите, что каждый процесс использует 10 мг простаивающей памяти, но apache загружает тонну разделяемых библиотек, и каждый процесс может использовать 9 мг разделяемых библиотек. Таким образом, ваше реальное использование может быть 9мг разделяемых библиотек (при условии, что ни одна из них не загружена) + 1-1,5мг на каждый запущенный процесс.
Но чтобы ответить на ваш вопрос... как мы можем помочь что-либо настроить, если вы не показываете конфиги и то, что считаете неправильным... Кроме того, память / процессор действительно заняты во время выполнения приложения. Если ваше приложение память боров.. ничего не может сделать apache config, чтобы это исправить.
Вот что я буду делать, ничего не зная о вашей системе. Увеличьте количество клиентов, которых оно может принять. Убедитесь, что keepalive выключен или, если он вам нужен, установите тайм-аут очень маленький... 2-3 секунды.
- Обновление до Debian Squeeze. Etch не поддерживается в течение некоторого времени и не будет получать обновления безопасности. Обновления безопасности, которые особенно важны, если вы используете PHP.
- Обновите / замените 32-битную ОС на 64-битную, если это возможно.
- Вставьте больше оперативной памяти. ОЗУ дешево. (8-16GB - более реалистичное число)
- Установите APC Opcode Cache для PHP.
- Отредактируйте свой вопрос, чтобы показать нам свой
php.ini
файл. Шутки в сторону.
По крайней мере, опубликовать свой phpinfo(). Или httpd.conf / php.ini. Вы можете использовать jsfiddle для создания дампа phpinfo() (я рекомендую удалить что-либо, например, домены или имена серверов, прежде чем публиковать их в мире) и pastebin для вашего httpd.conf / php.ini.
С предоставленной информацией мы мало что можем сделать, чтобы попытаться помочь. Вы можете попробовать удалить неиспользуемые модули и уменьшить объем памяти, необходимый для каждого экземпляра PHP внутри файла php.ini, в качестве первого шага.....
httpd.conf обычно можно найти в /etc/apache2/conf/httpd.conf
php.ini обычно можно найти в /etc/php/php5/php.ini
Или что-то подобное, в зависимости от того, как вы скомпилировали исходники.
И если вам приходится перезапускать ваш Apache каждые полчаса, чтобы все заработало снова, возможно, что-то не так с приложением, которое вы пытаетесь запустить, оно может использовать слишком много памяти или у вас установлено много общих библиотек.