удостоверьтесь, что папка C:/ProgramData/MySQL/MySQL Server 5.1/Data/существует, и там действительно, как предполагается, не пространство в "ProgramData".
Мое предположение - то, что php5 просто был обновлен с пределом памяти по умолчанию 128 МБ и существует слишком много php5 выполнений экземпляров (проверка пополудни max_children в Вашей конфигурации php-fpm).
Вышеупомянутое произошло с mee также, и я вытягивал волосы, пытающиеся понимать это. Я зарегистрировал bugreport с человечностью, но я предполагаю, что это должны быть зафиксированные восходящие потоки с php-fpm - значения по умолчанию, которые я имел, съест выше на 6 ГБ RAM, если это могло. И это безусловно сделало мой сервер на 1 ГБ бесполезным...
У Вас, вероятно, нет некоторого кэша кода операции установленным на сервере, который вызывает замедление.
Кроме того, как Marco сказал, Вы могли бы выполнять большое количество php-fpm экземпляров в системе.
В случае, если Вы подозреваете проблему утечки памяти, устанавливаете suhosin расширение для php, который предотвратит утечки памяти.
На самом деле, если это - утечка памяти, это должно быть зарегистрировано php журнал ошибок, php.ini имеет опцию сообщить о memleaks, report_memleaks = On
На случай, если кто-то еще пострадает.
Мы только что столкнулись с той же проблемой. Утечка памяти в php5-fpm. ОЗУ используется с каждым запросом страницы и в конечном итоге исчерпывается. Затем ЦП переходит в режим перегрузки, и процесс KSWAP запускает диск подкачки.
единственное, что было исправлено, хотя и не идеальная установка, - это изменить наш файл пула www.conf
pm = dynamic
на
] pm = ondemand
память теперь кажется стабильной.
Вот две вещи, которые нужно проверить:
Скорее всего, у вас есть утечка памяти. pm.max_requests
уничтожит / перезапустит дочерний процесс php-fpm после того, как он обработает такое количество запросов. Поскольку для замедления сканирования вашего бокса требуется около суток, попробуйте установить это число, чтобы каждый дочерний процесс возрождался каждые 20 минут или около того. Итак, если вы получаете 200 запросов в минуту и у вас есть 5 процессов, установите для pm.max_requests
значение 800. Если вы не хотите выполнять математические вычисления, можно установить значение от 500 до 1000. Поиграйте с ним, чтобы найти баланс между тратой времени на процессы возрождения и тратой ОЗУ на утечку памяти.
Php-FPM может создавать слишком много дочерних процессов при всплеске трафика, что приводит к нехватке ОЗУ и началу обмена на диск. Решите, какой общий объем ОЗУ выделить для php-fpm, а затем разделите его на то, сколько памяти занимает каждый дочерний процесс. Для форумов на базе Wordpress и PHP я часто вижу, что каждый дочерний процесс требует 30-45 МБ. Если вы используете только один пул php-fpm, установите для pm.max_children
это число.
Если у вас только один пул php-fpm, вы увидите увеличение скорости, если установите pm.type = static
.
Если у вас несколько пулов php-fpm, возможно из-за того, что вы размещаете несколько приложений и хотите изолировать их по соображениям безопасности, вам нужно установить pm.type = dynamic
и играть вместе с start_servers
, min_spare_servers
и max_spare_servers
. Просто убедитесь, что совокупное количество max_children
во всех пулах не больше, чем может выдержать ваш ящик.
Если у вас много приложений с низким трафиком, каждое со своим собственным пулом php-fpm , лучше установить pm.type = ondemand
, чтобы каждое приложение занимало ресурсы только тогда, когда оно действительно используется. Также установите pm.max_children
достаточно низким, чтобы ни одно приложение не могло полностью заполнить поле.