2016-02-14 5 views
1

Я размещаю wordpress на debian машине с nginx и php-fpm. Иногда, особенно по первому запросу, производительность не удивительна: для получения источника html потребовалось до 2,7 секунды! Но когда я обновляю страницу, он иногда будет примерно до 700 м. Для меня это проблема с темой или плагином, потому что на том же сервере у меня есть вторая установка wordpress, которая использует ту же конфигурацию на стороне сервера, но загружает всегда довольно быстро (~ 400 с для генерации HTML!).Wordpress на nginx + php-fpm частично медленный

Мое подозрение, что тема или плагин выполняет некоторые медленные удаленные запросы, потому что есть также включенные виджеты, например. загружая amout понравившихся с facebook-страницы, что даже замедлит больше времени генерации. Я хотел бы найти способ отладить причины этой проблемы. Я имею в виду, например, возможность поймать все удаленные запросы на такие функции, как file_get_contents, curl и т. Д.

Я уверен, что вы можете отключить каждый плагин и установить еще одну тему, чтобы изолировать проблему. Но поскольку один плагин может быть построен на тысячах строк кода, для поиска проблемы потребуется много времени. Существует ли какая-то отладка, которая поможет быстрее найти проблему? XDebug, кажется, предлагает что-то подобное, но я никогда не работал с ним, и в настоящее время у меня нет времени, чтобы познакомиться с ним.

ответ

1

Любые внешние вызовы api при начальной загрузке страницы действительно замедляют время рендеринга. Для социальных веб-сайтов вы можете использовать ajax после загрузки страницы или, что еще лучше, запрашивать эти социальные сайты один раз в день, а затем хранить результаты в простой таблице db, например wp_social_data, и кэшировать ее или индексировать или хранить результаты Json-файла или любое другое решение, которое работает для вас, а затем на странице загружать данные, которые вы храните, вместо того, чтобы делать внешний HTTP/s-вызов. Это позволит решить часть внешних вызовов api.

Для nginx и php-fpm в целом: сжатие должно быть включено, кэширование для статических активов или страниц, а некоторые реалистичные значения для других параметров должны быть на месте, в зависимости от вашего приложения. Вы можете найти рекомендацию Wordpress для nginx server block on here

+0

Я знаю об этом, мне нужно знать, как я могу понять, в какой строке были сделаны вызовы. И, как я уже сказал, у меня есть второй сайт, работающий в той же конфигурации, которая намного быстрее, поэтому, похоже, проблема с сервером явно не решена. – Lion