Предложение необходимо для улучшения текущей конфигурации сервера

У меня есть сервер 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 секунды.

  1. Обновление до Debian Squeeze. Etch не поддерживается в течение некоторого времени и не будет получать обновления безопасности. Обновления безопасности, которые особенно важны, если вы используете PHP.
  2. Обновите / замените 32-битную ОС на 64-битную, если это возможно.
  3. Вставьте больше оперативной памяти. ОЗУ дешево. (8-16GB - более реалистичное число)
  4. Установите APC Opcode Cache для PHP.
  5. Отредактируйте свой вопрос, чтобы показать нам свой 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 каждые полчаса, чтобы все заработало снова, возможно, что-то не так с приложением, которое вы пытаетесь запустить, оно может использовать слишком много памяти или у вас установлено много общих библиотек.

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