Приложение PHP (ExpressionEngine) медленно загружается на IIS 7, MySQL, FastCGI - PullRequest
1 голос
/ 11 сентября 2009

Я работаю над устранением проблемы, связанной с медлительностью, возникающей при запуске ExpressionEngine (приложения PHP) на IIS 7.

Я не думаю, что это на самом деле проблема с ExpressionEngine, а скорее проблема с моей настройкой PHP / MySQL.

Проблема проявляется так:

  1. Перейти на веб-адрес
  2. IE "раскручивается" в течение 10-15 секунд, ожидая загрузки. В течение этого времени:
    • использование процессора на сервере минимально, а процесс PHP неактивен
    • Я вижу соединение для пользователя сайта в MySQL, но поток находится в "спящем" режиме.
    • На сервере достаточно свободной памяти
    • в значительной степени, сервер ничего не делает
  3. Через 10-15 секунд я вижу, как MySQL подключается к очень быстрым запросам (очень быстро), и сайт загружается менее чем за секунду.

Это довольно сложный сайт, но нет никакого смысла в том, что вся система просто сидит и ждет 10 секунд - ничего не обрабатывая. Я использую FastCGI на IIS7, который, кажется, работает нормально, и мне кажется, что это своего рода проблема тайм-аута, когда FastCGI, PHP или, возможно, даже MySQL чего-то ждут, не получая его, и после истечения времени ожидания , продолжая процесс.

У кого-нибудь был подобный опыт?

Спасибо!

P.S. - Я также должен добавить, что база данных (MySQL) и PHP работают на одном сервере.

Ответы [ 3 ]

2 голосов
/ 01 февраля 2010

Плагины Twitter вызывают много проблем в системах CMS. обычно есть функция, которая проверяет, есть ли твиттер там / жив. Когда твиттер загружается, это замедляет работу системы (поэтому оно может отображаться как прерывистое). Найти плагин для твиттера и процедуру проверки наличия твиттера. Закомментируйте этот код и верните true (т.е. не спрашивайте twitter, есть ли он, просто предположите, что он есть)

2 голосов
/ 11 сентября 2009

mysql может пытаться выполнить обратный DNS при подключении с веб-сервера. если вам не нужно фильтровать подключения mysql по DNS-имени, добавьте skip-name-resol * в файл конфигурации mysql

0 голосов
/ 12 сентября 2009

Понятия не имею, почему, но решением этой проблемы была установка PHP 5.3. У меня был запущен PHP 5.2.10, и я думаю, что 5.3 добавил некоторые обширные оптимизации для Windows. Или исправил еще одну странную проблему - кто знает.

На самом деле, после дальнейших копаний, похоже, проблема была в плагине Twitter. Он ждет 25 секунд, чтобы когда-нибудь вернуться из Twitter с ошибкой. Может быть это связано с DNS?

...