Считайте динамические представления управления и функции
Динамические представления управления и функции возвращают информацию о состоянии сервера, которая может использоваться, чтобы контролировать здоровье экземпляра сервера, диагностировать проблемы и производительность мелодии.
Существует два типа динамических представлений управления и функций:
VIEW SERVER STATE
разрешение на сервере.VIEW DATABASE STATE
разрешение на базе данных.Несколько вещей, о которых я могу вспомнить прямо сейчас:
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
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:
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.
Are you taking advantage Magento's compilation and caching components?
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.
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?
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?
Обычно это простая математика, определяющая, что нужно установить в вашем конфигурационном файле 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.
Еще одна полезная вещь, на которую следует обратить внимание при установке 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.