Назад | Перейти на главную страницу

Оптимизация нагрузки на сервер Apache

У нас проблема с нагрузкой на выделенный сервер.

У нас есть 16 процессоров с 4 ядрами @ 2,40 ГГц, если я правильно понял вывод cat / proc / cpuinfo.

К сожалению, у меня нет доступа к бесплатным -m или vmstat.

Но сверху я понял, что у нас 24 ГБ.

И снимок сверху о процессах:

Насколько я понимаю, память вообще не используется. Но процессор сильно загружен. Apache потребляет большую часть ресурсов процессора.

Еще одна полезная информация:

Every 1.0s: ps u -C httpd,mysqld,php                                                                                                                                                                                                                                                                                                           Tue Mar 27 10:48:19 2012

USER         PID %CPU %MEM    VSZ   RSS TTY  STAT START   TIME COMMAND
root        7476  0.0  0.1 446808 37880 ?        SNs  Mar06   0:43 /opt/zone/sbin/httpd -D SSL -D SLOT_ID0 -f /etc/opt/zone/apache/ssl_httpd.conf
mysql      36061 41.6  2.1 1113672 529876 ?  SNl  Feb20 21503:48 /opt/zone/sbin/mysqld --basedir=/opt/zone --datadir=/srvdata/mysql --user=mysql --log-error=/srvdata/mysql/dn79.err --pid-file=/srvdata/mysql/mysqld.pid --socket=/tmp/mysql.sock --port=3306
root       37257  0.0  0.0 424056 16840 ?        SNs  Mar22   1:03 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
http       52743  0.0  0.1 447100 30360 ?        SN   10:40   0:00 /opt/zone/sbin/httpd -D SSL -D SLOT_ID0 -f /etc/opt/zone/apache/ssl_httpd.conf
http       52744  0.0  0.1 447100 30360 ?        SN   10:40   0:00 /opt/zone/sbin/httpd -D SSL -D SLOT_ID0 -f /etc/opt/zone/apache/ssl_httpd.conf
http       52745  0.0  0.1 447100 30360 ?        SN   10:40   0:00 /opt/zone/sbin/httpd -D SSL -D SLOT_ID0 -f /etc/opt/zone/apache/ssl_httpd.conf
http       52746  0.0  0.1 447100 30360 ?        SN   10:40   0:00 /opt/zone/sbin/httpd -D SSL -D SLOT_ID0 -f /etc/opt/zone/apache/ssl_httpd.conf
http       52747  0.0  0.1 446956 30324 ?        SN   10:40   0:00 /opt/zone/sbin/httpd -D SSL -D SLOT_ID0 -f /etc/opt/zone/apache/ssl_httpd.conf
http       52980 69.1  1.8 852468 458088 ?   RN   10:41   5:02 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
http       53483 47.0  0.8 615088 221040 ?       RN   10:43   2:05 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
http       53641  1.8  0.2 446580 54632 ?        SN   10:45   0:03 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
http       54384 81.2  0.9 625828 229972 ?       RN   10:45   2:14 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
http       54411 47.7  0.5 535992 142416 ?       RN   10:45   1:09 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
http       54470 41.7  0.4 512528 120012 ?       RN   10:46   0:54 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
http       54475  0.1  0.1 437016 41528 ?        SN   10:46   0:00 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
http       54486  1.5  0.2 445636 53916 ?        SN   10:46   0:02 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
http       54531  2.5  0.2 445424 53012 ?        SN   10:46   0:02 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
http       54549  0.0  0.0 424188  9188 ?        SN   10:46   0:00 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
http       54642  0.0  0.0 424188  9200 ?        SN   10:47   0:00 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
http       54651  0.0  0.0 424188  9188 ?        SN   10:47   0:00 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
http       54661  0.0  0.0 424188  9208 ?        SN   10:47   0:00 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
http       54663  6.9  0.2 449936 58560 ?        SN   10:47   0:03 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
http       54666  6.0  0.2 453356 61124 ?        SN   10:47   0:02 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
http       54667  2.8  0.1 437608 42088 ?        SN   10:47   0:01 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
http       54670  1.5  0.1 437540 42172 ?        SN   10:47   0:00 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
http       54672  2.1  0.1 439076 43648 ?        SN   10:47   0:01 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
http       54709  0.0  0.0 424188  9192 ?        SN   10:47   0:00 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
http       54711  1.0  0.1 437284 41780 ?        SN   10:47   0:00 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
http       54712 11.8  0.2 448172 54700 ?        SN   10:47   0:02 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
http       54720  0.0  0.0 424188  9192 ?        SN   10:48   0:00 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
http       54721  0.0  0.0 424188  9188 ?        SN   10:48   0:00 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
http       54747  9.1  0.2 443568 51848 ?        SN   10:48   0:01 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
http       54782  1.8  0.1 438708 37896 ?        RN   10:48   0:00 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
http       54784  0.0  0.0 424188  9180 ?        SN   10:48   0:00 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
http       54785  0.0  0.0 424188  9188 ?        SN   10:48   0:00 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
http       54789  0.0  0.0 424188  9188 ?        SN   10:48   0:00 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
http       54790  0.0  0.0 424188  9188 ?        SN   10:48   0:00 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
http       54791  0.0  0.0 424188  9188 ?        SN   10:48   0:00 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
http       54792  0.0  0.0 424056  8352 ?        SN   10:48   0:00 /opt/zone/sbin/httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0

Webalizer показывает следующее:

Что делать в следующей ситуации? Приложение - Magento.

Вы лаете не на то дерево. Похоже, это Apache потребляет процессор; на самом деле есть mod_php который должен служить твоему Magento страниц.

И последнее - ваш ответ: Magento наверняка тяжелый зверь. Не пытайтесь оптимизировать Apache на этом этапе, сконцентрируйтесь на настройке Magento. Не разочаровывайтесь, если не добьетесь успеха. Многие пробовали это в Server Fault, но не многим это удалось (из того, что я видел). Тяжелая программа - это тяжелая программа.

В дополнение к ответу Янне Пиккарайненса я хотел бы предложить следующее:

  • использовать tmpfs в папке кеша Magento
  • Убедитесь, что все кеширование Magento включено (html, xml и т. Д.)
  • хранить сеансы в tmpfs, если у вас нет нескольких бэкэндов
  • используйте apc как fast_backend (и, возможно, memcached как slow_backend)
  • рассмотрите возможность использования лака для кеширования некоторых или части страниц.

Подробнее о лаке и magento:

Коммерческий плагин Varnish, использующий ESI и другое решение с использованием вызовов AJAX.

Найдите, кто настраивал серверы и расстреляйте их?

Настройка HTTP заняла бы большую книгу. Но глядя на предоставленную вами информацию ...

Большое железо - это пустая трата времени и денег для веб-серверов - вы получаете гораздо лучшую производительность / доступность / ценность от нескольких компьютеров низкого уровня.

Почему httpd работает с аномально высоким приоритетом планирования? Почему ваш сеанс ssh работает с более низким приоритетом, чем sshd?

Ваши процессы apache выглядят так, как будто они занимают довольно много места - вы удалили модули, которые не используете? Однако похоже, что ваша самая большая проблема - это количество процессора, используемого Apache - PHP любит процессор. Magento особенно требователен к процессору.

Однако на самом деле нагрузка не так уж и велика, учитывая количество оборудования, которое у вас есть. Юо сказал, что у вас есть процессоры 16x4, но на верхних скриншотах показано только 6 процессов, использующих значительный объем ЦП. Вы пытаетесь снизить нагрузку или повысить производительность? Фронтенд или бэкэнд?

Размещение обратного прокси перед Apache поможет с производительностью (при условии, что вы правильно настроили кеширование и сжатие для контента) - IMHO Varnish или nginx очень эффективны. Оба обеспечивают поддержку ESI, но вам потребуются некоторые изменения в Magento для поддержки этого. Помимо обработки обслуживания статического контента с меньшими усилиями, прокси-сервер может быстрее освободить ресурс httpd и завершить процесс отправки страницы по сети с меньшими усилиями.

Где вы храните данные сеанса? Если это обработчик по умолчанию, вы можете переместить его в memcache (реализация couchbase имеет ряд технических преимуществ).

Проверьте статистику APC, чтобы убедиться, что у него достаточно памяти для кэширования большей части кода.

У вас установлен APC? Если нет, это будет иметь большое значение.

После этого, если я правильно помню, Magento любит иметь перед собой кеширующий обратный прокси. Проверьте, какие заголовки кеширования он предоставляет, прежде чем реализовывать это.