Назад | Перейти на главную страницу

PHP медленно разговаривает с MySQL на том же хосте

У меня есть VPS (OpenVZ) под управлением Ubuntu 10.04:

Я установил на него WordPress и заметил в Firebug, что первоначальное подключение к index.php занимает несколько секунд (от 4 до 13 секунд за один раз).

Что заставляет меня думать, что это проблема MySQL:

Я пробовал добавить skip-name-resolve или skip-network к my.cnf, как было предложено Вот, безуспешно.

Еще я заметил, что процесс php-fpm резко возрастает до 100% загрузки ЦП во время создания страницы.

Я пробовал использовать вместо него apache и даже nginx перед apache, но теперь процесс apache перегружал весь процессор.

И последнее: я запускаю то же самое приложение на другом VPS с аналогичной конфигурацией и без задержек; index.php загружается менее чем за полсекунды.

Есть предложения, как я могу узнать, в чем проблема?

Если php-fpm использует 100% ЦП, это вряд ли проблема, связанная с MySQL, поэтому вам следует начать исследовать свой PHP-код, чтобы определить, какой фрагмент кода вызывает задержку. Я рекомендую для этого использовать XDebug.

Я бы проверил брандмауэр, соединение php-fpm с mysql (подумайте о переходе на канал / сокет).

При всем этом я полагаю, что php-fpm был правильно установлен / обновлен, возможно, отключите некоторые модули.

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

  • попробуйте использовать IP вместо имени хоста при подключении к MySQL (используйте dig для диагностики проблем с DNS),
  • использовать Высокопроизводительный сценарий настройки MySQL, что даст вам представление о некоторых проблемах на сервере MySQL,
  • используйте strace или tcpdump для отладки ваших проблем (вот несколько примеров),
  • обновите свой php и mysql и проверьте, сохраняется ли проблема,