Конфигурация Apache Magento и проблемы памяти

Считайте динамические представления управления и функции

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

Существует два типа динамических представлений управления и функций:

  • Ограниченные по объему сервером динамические представления управления и функции. Они требуют VIEW SERVER STATE разрешение на сервере.
  • Ограниченные по объему базой данных динамические представления управления и функции. Они требуют VIEW DATABASE STATE разрешение на базе данных.

1
задан 10 October 2012 в 12:24
4 ответа

Несколько вещей, о которых я могу вспомнить прямо сейчас:

1) Убедитесь, что вы используете предварительный форк MPM, а не рабочий MPM 2) Отредактируйте apache2.conf (в Debian он находится в /etc/apache2/apache2.conf:

) Убедитесь, что присутствует следующая конфигурация (кажется, лучше для нас:)

Timeout 30
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 2

# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_prefork_module>
    StartServers          10
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild   2000
</IfModule>

3) Посмотрите на использование Varnish как механизм кеширования, который снизит нагрузку на Apache 4) Установите APC / Memcache

0
ответ дан 4 December 2019 в 00:57

You may wish to try apache-mpm-worker with php5-fpm instead. I noticed a drastic difference when I switched from the standard prefork/mod_php combo.

A few other suggestions:

  1. Check you mysql configuration by running the tuning-primer.sh script. This will provide a good baseline to ensure your mysql is configured properly and you aren't wasting memory on it.

  2. Are you taking advantage Magento's compilation and caching components?

  3. As you only have 2GB of RAM available, ensure that your Apache MaxClients is at a reasonable level. Start with a low number (e.g. 25) and monitor your RAM usage to see if you can increase that some.

  4. 2GB isn't a lot of memory for a Magento server with a decent amount of traffic. Have you looked into increasing the RAM or perhaps getting a second server to use for dedicated mysql to free up that RAM for Apache?

  5. Have you verified using a log analyzer (e.g. webalizer, awstats, etc) or possibly even just Apache's extended status module that Apache is the problem at the time of the excessive memory usage?

0
ответ дан 4 December 2019 в 00:57

Обычно это простая математика, определяющая, что нужно установить в вашем конфигурационном файле apache. У вас есть 2 гигабайта оперативной памяти и, вероятно, 1,5 из них могут использоваться apache.

так что это ~ 1500 мегабайт. Убедитесь, что ваш файл .htaccess для Magento работает нормально.

php_value memory_limit 128M php_value max_execution_time 120

(Честно говоря, у нас установлено значение 512 м, потому что многие пользователи получали пустые страницы. Прочтите var / log / exception.log, чтобы узнать, так ли это)

В этом сценарии вы можете только поддерживать Максимальное количество клиентов - 12! И, честно говоря, я думаю, что предел памяти по умолчанию для magento теперь равен 256. Что означает максимальное количество клиентов 6! Я бы также предложил использовать меньше MaxRequestsPerChild. Возможно, всего 100. Я бы увидел, как несколько процессов становятся все больше и больше. По моему опыту, дети Apache не освобождают память, пока не будут уничтожены. Это то, что делает этот параметр. Возродить дочерний процесс после 100 запросов.

У меня было много проблем с apache. У нас есть сервера с 7 гигами, которые падают как вы описали. Однако наш трафик намного больше, чем ваш.

Я только что видел, что вы запускали mysql и на этом компьютере. Не хорошо. Вы можете изучить запуск nginx с помощью php-fastcgi. У меня он работает довольно хорошо и использует гораздо меньше памяти. Единственным препятствием для нас было то, что у нас было расширение, использующее ионный куб, который нам нужен, и я не мог с ним сотрудничать. (Я также использовал xcache вместо apc в качестве нашего кеша опкодов, потому что слышал, что apc не будет делить память между процессами cgi)

Я также использовал nginx в качестве обратного прокси для обслуживания всего статического контента. Это также может сработать для вас. Это было намного лучше, и мы использовали его долгое время, пока не решили реализовать varnish.

По крайней мере, вам нужно реализовать какое-то решение для кеширования для magento.

Единственным препятствием для нас было то, что у нас было расширение, использующее ионный куб, который нам нужен, и я не мог с ним сотрудничать. (Я также использовал xcache вместо apc в качестве нашего кеша опкодов, потому что слышал, что apc не будет разделять память между процессами cgi)

Я также использовал nginx в качестве обратного прокси для обслуживания всего статического контента. Это также может сработать для вас. Это было намного лучше, и мы использовали его долгое время, пока не решили реализовать varnish.

По крайней мере, вам нужно реализовать какое-то решение для кеширования для magento.

Единственным препятствием для нас было то, что у нас было расширение, использующее ионный куб, который нам нужен, и я не мог с ним сотрудничать. (Я также использовал xcache вместо apc в качестве нашего кеша опкодов, потому что слышал, что apc не будет разделять память между процессами cgi)

Я также использовал nginx в качестве обратного прокси для обслуживания всего статического контента. Это также может сработать для вас. Это было намного лучше, и мы использовали его долгое время, пока не решили реализовать varnish.

По крайней мере, вам нужно реализовать какое-то решение для кеширования для magento.

Это также может сработать для вас. Это было намного лучше, и мы использовали его долгое время, пока не решили реализовать varnish.

По крайней мере, вам нужно реализовать какое-то решение для кеширования для magento.

Это также может сработать для вас. Это было намного лучше, и мы использовали его долгое время, пока не решили реализовать varnish.

По крайней мере, вам нужно реализовать какое-то решение для кеширования для magento.

0
ответ дан 4 December 2019 в 00:57

Еще одна полезная вещь, на которую следует обратить внимание при установке MAXCLIENTS, - это ApacheBuddy.

См. https://github.com/gusmaskowitz/apachebuddy.pl

Это в основном просматривает статистику и ваши файлы конфигурации и дает вам рекомендации относительно того, какими должны быть ваши настройки MAXCLIENTS. Честно говоря, я никогда не смогу позволить себе опускаться ниже, чем они рекомендуют, но это, вероятно, «правильный» ответ.

Для использования / установки:

wget https://raw.github.com/gusmaskowitz /apachebuddy.pl/master/apachebuddy.pl

perl apachebuddy.pl

Полезные параметры включают -p (для порта, например, если вы используете лак) и -P (это заглавная буква «P»), учитывать настройки памяти PHP.

1
ответ дан 4 December 2019 в 00:57

Теги

Похожие вопросы