WordPress на IIS 7 php-cgi, загружающий процессор - PullRequest
7 голосов
/ 15 февраля 2012

Запуск WordPress на IIS 7 (Windows Server 2008) с WP-SuperCache в соответствии с руководством IIS.net.

Работал отлично, но недавно мы изменили разрешения для некоторых папок и пароль администратора, и мы получаем огромный всплеск использования нашего процессора в результате процессов PHP-cgi.exe.

cpu usage

php-cgi.exe processes

Это наводит меня на мысль, что это не кэширование, однако на самих страницах внизу есть комментарии «Кэшировано с WP-SuperCache», и кажется, что кэширование работает правильно.

В чем еще может быть проблема здесь?

Ответы [ 2 ]

9 голосов
/ 20 августа 2012

Я думаю, что, возможно, я нашел решение или, по крайней мере, обходной путь к этой проблеме, по крайней мере, он, кажется, работает для меня надежно.

Попробуйте установить параметр Max Instances в IIS Server -> Настройки FastCGI, до 1.

Мне показалось, что только некоторые запросы приводили к тому, что процесс php-cgi.exe становился мошенническим и загружал процессор, обычно при обновлении сообщения.При чтении других постов по этой проблеме в одном из них упоминалось значение «Максимальное количество экземпляров», а также то, что для него установлено значение по умолчанию 0 или автоматически.Я задавался вопросом, не может ли это иметь хороший эффект, когда все не так, как должно быть.Я предполагаю (но это не совсем моя область знаний), если определенный запрос (ы) вызывает процесс блокировки, поэтому FastCGI просто создает другой, оставляя первый на месте.Почему-то кажется, что только один экземпляр позволяет PHP выйти из блокировки, и процессор остается под контролем.

Для серверов с высоким уровнем запросов установка FastCGI только на один экземпляр может быть не идеальной, но это определенно превосходит задержки, которые я получал раньше.При использовании в сочетании с WP-SuperCache и WinCache, сейчас все идет хорошо.

1 голос
/ 15 февраля 2012

Глядя на эту задачу, mgr выглядит так, что при каждом запросе отсутствует кеш. Кроме того, эта статья датируется 2008 годом, поэтому трудно сказать, будут ли работать все написанные инструкции. Что-то с WP-SuperCache могло измениться.

Я бы рекомендовал использовать W3 Total Cache. Я провел обширное тестирование с ним на Windows Server 2008 и IIS 7, и он прекрасно работает. Он также совместим и использует расширение WinCache для PHP. Есть и другие замечательные функции, если вам интересно, минификация, поддержка CDN и т. Д. Это действительно отличный плагин для производительности для WordPress. Вы можете получить плагин здесь, http://wordpress.org/extend/plugins/w3-total-cache/

другие вещи, которые нужно проверить ...

Какого размера пул приложений? (количество процессов?) Убедитесь, что вы используете PHP 5.3. Убедитесь, что вы используете WinCache. Убедитесь, что для MaxInstanceRequests установлено значение, меньшее PHP_FCGI_MAX_REQUESTS. Определенно не разрешайте PHP обрабатывать повторный цикл пула приложений. По умолчанию 10 000 запросов. Если вы видите эти результаты во время нагрузочного теста, то это может быть причиной. Увеличьте MaxInstanceRequests и оставьте его на единицу меньше, чем PHP_FCGI_MAX_REQUESTS.

Надеюсь, это поможет.

...