Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP
Code

Диагностировать проблемы производительности WordPress в New Relic

by
Difficulty:IntermediateLength:LongLanguages:
This post is part of a series called Performance Monitoring With New Relic.
Introduction to New Relic Synthetics
Get Started With Monitoring Your Web Application Using New Relic Alerts
Sponsored Content

This sponsored post features a product relevant to our readers while meeting our editorial guidelines for being objective and educational.

Russian (Pусский) translation by Masha Kolesnikova (you can also view the original English article)

Final product image
What You'll Be Creating

Этот учебник продолжается на том месте, где мы остановились в использовании New Relic для мониторинга производительности WordPress. Здесь я дам вам концептуальный обзор производительности WordPress и проведу вас через New Relic, чтобы изучить производительность вашего собственного сайта.

Если вы прибыли сюда из Оптимизации WordPress с помощью Varnish и W3 Total Cache, у вас уже есть хорошо оптимизированная основа WordPress. Если нет, вы можете вернуться и просмотреть эту статью.

Использование New Relic в WordPress

WordPress - это мощная система блогов с открытым исходным кодом, которая может поддерживать как небольшие отдельные блоги, так и более крупные сайты для крупных медиа-организаций. Но на самом деле чтобы WordPress хорошо работал, и чтобы успешно его масштабировать, требуется потратить много усилий.

Службы мониторинга производительности New Relic предоставляют отличный способ обеспечить бесперебойную и эффективную работу вашей конфигурации WordPress.

Примечание. New Relic предупреждает, что его службы лучше всего использовать для оптимизации WordPress на выделенных серверах, а не на виртуальных или общих серверах, таких как те, которые предлагают многие облачные провайдеры. Если вы используете WordPress на общем хосте, New Relic может быть не так полезен для вас, как для сайтов, работающих на выделенных серверах.

Если вы хотите узнать больше о New Relic перед погружением в это руководство по производительности, Tuts + предлагает широкий спектр статей об их услугах.

Что делает WordPress быстрым или медленным?

В 2013 году Фредерик Таунс, создатель бесплатного плагина W3 Total Cache WordPress, написал сообщение в блоге для New Relic, в котором описываются аспекты производительности, которые нам нужно учитывать: оптимизация производительности WordPress с помощью New Relic. Это отличное резюме, которое я рассмотрю.

Таунс выделяет основные области, над которыми нам нужно сосредоточиться:

1. Производительность диска. Не разделяемый локальный диск всегда будет обеспечивать самую последовательную и надежную работу. Например, использование хоста, предлагающего накопители SSD или высокоскоростные жесткие диски, будет идеальным.

2. Кэш запросов MySQL. Кэш запросов сохраняет результаты для общих запросов к базе данных и может немедленно возвращать результаты, не выполняя их повторно. Townes рекомендует использовать MySQLTuner для оптимальной настройки конфигурации базы данных.

3. Использование запросов вашими темами WordPress и плагинами. Из коробки WordPress настроен так, чтобы работать хорошо, но поскольку мы добавляем сторонние плагины и темы, мы можем использовать множество плохого кода, который может привести к проблемам с производительностью.

4. Размер файлов ваших WordPress Тем и плагинов. Уменьшение размера файлов и их количества (и, следовательно, транзакций HTTP) оказывает существенное влияние на опыт пользователей на вашем сайте. К сожалению, не все каскадные таблицы стилей (CSS) или JavaScript (JS) можно легко консолидировать и минимизировать.

5. Оптимизация PHP, относительно медленная. Более быстрые версии PHP, такие как HHVM, могут быть пригодны для WordPress в будущем, но я читал, что он еще не стабилен для этой задачи. Тем временем, Townes приводит список предложений: уменьшить объем памяти ваших сценариев, использовать автозагрузку, использовать запоминание, избегать циклов, сокращать время выполнения, сводить к минимуму количество открываемых файлов, чтобы уменьшить количество вызовов на использование диска и памяти, а также использовать include и require вместо include_once и require_once.

6. Использование кэширования Opcode, такого как APC, фреймворк кэширования с открытым исходным кодом для PHP-кода. Говорит Таунс: «APC хранит интерпретируемую (исполняемую) версию вашего кода в памяти, так что запросы на нее не нужно повторно интерпретировать».

Кэш объектов WordPress - это то место, где происходит много магии. Существуют различные группы объектов, которые генерируются WordPress при обработке запросов на страницу. Эти группы служат многочисленным целям, и в зависимости от того, как вы используете WordPress, очень значительное увеличение производительности достигается за счет постоянного хранения объектов, например, с помощью хранилищ back-cache или APC. "

Total Cache от Townes W3 реализует это на уровне кеширования страниц, позволяя кешировать сценарии, в которых части данной страницы все еще могут генерироваться PHP, в то время как большие части неизменной страницы не кэшируются и не восстанавливаются.

«W3TC позволит вам выбрать хранилище данных, отличное от MySQL, например memcached, которое предназначено для высокоскоростного доступа с нескольких серверов приложений. Поэтому вместо того, чтобы обрабатывать каждый запрос страницы, который уже должен получать соответствующую информацию о посетителе или других динамических элементах, MySQL теперь может сфокусироваться (и настраиваться) только на динамические части ваших шаблонов».

Говорит Таунс: «Кэширование фрагментов сократит время выполнения на порядок».

7. Использование кэширования страниц. Наиболее выгодным методом масштабирования типичного веб-сайта является кеширование страниц. Вместо того, чтобы вызывать весь ваш стек с каждым запросом страницы - WordPress, Тема, Плагины, HTML и MySQL - мы просто извлекаем статический HTML из веб-кеша, часто из памяти. Масштабирование трафика на незашифрованном сайте WordPress может занять несколько секунд, тогда как масштабирование трафика на предварительно записанных в кеш файлах HTML является масштабируемым.

Говорит Townes: «Обратные прокси-серверы часто предоставляют кеширование, которое находится между веб-приложением и публичным Интернетом. Его цель - облегчить загрузку веб-серверов позади них. Обратные прокси оптимизированы для возврата содержимого, созданного базовым приложением. Varnish, Nginx или даже Apache могут быть настроены для обеспечения обратной прокси-функции».

Я чаще всего использую Varnish с Apache и W3 Total Cache в сочетании с масштабированием WordPress. Если вас интересуют эти конфигурации, проверьте: Оптимизация WordPress с помощью Varnish и W3 Total Cache (Tuts +).

8. Сети доставки контента (CDN) являются облачными службами кеширования для часто используемых файлов и носителей. Таунс говорит: «С CDN неважно, где размещается ваш сайт. Если у вас есть посетители в других частях мира, CDN кэширует это содержимое рядом с ними и экономит целые секунды в совокупности с общим временем загрузки страницы для вашего сайта ».

Теперь, когда мы знаем некоторые ключевые концепции того, что заставит наш WordPress работать лучше и быстрее, давайте посмотрим, как New Relic может нам в этом помочь.

Использование New Relic для мониторинга WordPress

New Relic - это служба мониторинга производительности, которая работает с различными серверными и языковыми технологиями, включая PHP, что делает ее отличной для оптимизации WordPress.

New Relic обеспечивает мониторинг производительности всего стека - что делают конечные пользователи, но также обеспечивает подробный мониторинг сервера. Говорит Таунс: «New Relic делает процесс сбора информации о вашей среде тривиальным».

Когда вы запускаете New Relic на своем сервере, вы можете получить подробные графики мониторинга производительности и статистику о вашем сервере и PHP, включая: время отклика, оценку Apdex (отношение удовлетворительного времени ответа к неудовлетворительному времени отклика), пропускную способность (запросы в минуту) , веб-транзакции, например сторонние запросы API, частоту ошибок, последние события и информацию о сервере.

New Relic Browser

Далее, New Relic Browser контролирует постраничные данные жизненного цикла - намного дальше начальной загрузки страницы. Для каждой загрузки страницы конечного пользователя New Relic Browser захватывает:

  • время, проведенное в интерфейсе (браузер)
  • код и события, выполняемые в браузере (взаимодействие JavaScript, Ajax и конечных пользователей)
  • время, проведенное на бэкенде (сетевое и веб-приложение)
  • географическое положение
  • тип и версия браузера и операционная система

Вы можете просматривать данные по всему миру среди всех пользователей и просматривать их сгруппированными по веб-странице, браузеру, сеансу пользователя и местоположению.

Я отлично рассмотрел New Relic Browser в статье Мониторинг вашего фронтенда с помощью нового Relic Browser (Tuts +).

New Relic Synthetics позволяет вам регулярно тестировать ваш сайт со всего мира, чтобы немедленно сообщать вам о проблемах, когда они возникают. Я расскажу о Synthetics в следующем учебнике, поэтому зайдите на мою страницу инструкторов Tuts +, чтобы узнать, когда она будет выпущена.

Использование New Relic вместе с W3 Total Cache

Sign Up for New Relic

Я объяснил процесс регистрации и установки для интеграции сервисов W3 Total Cache New Relic в этом руководстве: Использование New Relic для мониторинга производительности WordPress (Tuts +).

В консоли администрирования WordPress выберите Производительность > Мониторинг. Нажмите, чтобы зарегистрироваться для бесплатной учетной записи. Скопируйте данные своего API и лицензионного ключа в панель настроек W3 Total Cache ниже:

Enter your New Relic API and license key in W3TC settings

Включение New Relic на вашем сервере обеспечивает мониторинг с панели управления W3TC, как показано ниже:

W3 Total Cache Dashboard Panel for New Relic

Для более подробной информации вы можете посетить сайт New Relic и войти в свою учетную запись.

Мониторинг производительности WordPress

Оценка производительности сервера

На высоком уровне мониторинг New Relic Server дает вам обзор использования ЦП, использования памяти, а также дискового и сетевого ввода-вывода, а также информации о вашем оборудовании и наиболее активных процессах. Это может дать вам представление о том, что происходит с вашей конфигурацией, и предупредить вас о любых существенных проблемах:

New Relic Servers Dashboard

На вкладке «Процесс» показано использование памяти и процессора каждым отдельным процессом:

New Relic Processes

Вы также можете просмотреть историю предупреждений, указав красные флаги на производительности вашего сайта:

New Relic Server Alert History

Оценка производительности WordPress

New Relic полезен для оценки производительности WordPress тремя ключевыми способами:

1. Apdex. New Relic использует оценку Apdex, чтобы помочь вам оценить, насколько хорошо приложение Wordpress работает для ваших конечных пользователей, в соответствии с отраслевым измерением. Это поможет вам предоставить лучшие данные для устранения неполадок и получить более четкое представление о том, какой процент ваших пользователей разочарован или наоборот удовлетворен. Оценка Apdex также обеспечивает более конкретный контекст, чем общая жалоба «сайт медленный», которая может даже не дойти до вас до нескольких часов после инцидента. Apdex также дает вам более объективный способ оценить, насколько хорошо ваши улучшения производительности ощущаются вашими фактическими пользователями.

2. Производительность MySQL. Плагины и темы Wordpress могут злоупотреблять вашей базой данных mySQL. Вы можете определить, какие из них вызывают проблемы, глядя на медленный SQL в New Relic. Например, вы можете видеть, что селекты на wp_terms, который используется для категорий и тегов, может составлять 20% от вашего общего времени базы данных. Или вы можете заметить медленные инструкции INSERT, которые могут быть улучшены с помощью хорошо размещенного индекса или уточненного запроса.

3. Мониторинг производительности сторонних плагинов и API. Использование плагинов для социальных сетей, плагинов мониторинга и других интересных виджетов очень просто в WordPress, но не сразу становится очевидным, как эти сторонние зависимости влияют на ваш блог или сайт маркетинга. New Relic позволяет вам увидеть, что внешние вызовы служб «свернуты» для более целостного представления, а также вы можете отслеживать время отклика от сторонних библиотек в каждой из транзакций, которые собирает New Relic.

Мы можем использовать New Relic Browser для более детального изучения производительности WordPress. Вы следует особенно искать код из наших тем и плагинов, которые могут негативно повлиять на производительность.

На панели инструментов вы найдете обзор времени загрузки страницы разбитый по Apdex и пропускной способности:

New Relic Browser Overview

Вот приблизительный обзор моего показателя Apdex за последние 24 часа:

New Relic Apdex Score over 24 Hours

Вы также можете просмотреть производительность по просмотру страницы:

New Relic Page View Segmentation

Когда вы развернете, вы можете увидеть производительность отдельных файлов, загружаемых вашим сайтом. Вы можете найти любую тему или файлы плагинов, которые занимают подозрительное количество времени:

New Relic Script Analysis
New Relic Page Performance

Анализ MySQL

Мониторинг сервера New Relic также может отслеживать производительность ваших запросов MySQL:

New Relic APM Database MySQL Query Tracking

Вы можете выполнить дополнительную детализацию:

New Relic APM Database MySQL Query Tracking Detail View

И диагностировать самые медленные запросы:

New Relic APM Database MySQL Tracking Slow Queries

Это может быть особенно полезно для определения медленных запросов, созданных плохим кодом плагина.

Трассировка сеанса

Трассировки сеанса дают вам видимость всего жизненного цикла веб-страницы, включая взаимодействие с пользователем, загрузку ресурсов, iframes, время ожидания Ajax, ошибки и многое другое - отслеживание реального опыта реального пользователя от начала до конца.

Мало того, что трассировки идентифицируют проблемы, но они также могут показать вам, что сделал пользователь до и после возникновения ошибки.

New Relic Session Traces

Вот подробное описание ваших сессий. Это может помочь в оценке производительности кода в рамках тем, а также плагинов:

New Relic Session Traces Detail

Трассировки сеанса помогут вам понять:

  • как пользователи загружают вашу страницу, включая время загрузки DOM, время ожидания запросов Ajax и взаимодействие пользователя со страницей
  • последовательность событий JavaScript и браузера, которые занимают больше времени, чем другие, и когда происходит каждое событие
  • где находятся узкие места, и что может быть их причиной
  • почему загрузка одной страницы может быть медленнее других, предоставляя контекст для отдельных событий во время сеанса

Вы можете точно видеть, что происходило в браузере конкретного пользователя в любой конкретный момент. Трассировки сеанса дают вам подробную и интуитивную визуализацию всех событий в сеансе пользователя и могут помочь выявить проблемные области и легко определить решения. Подробнее о использовании сеансовых трассировках.

Ajax и JavaScript

Страница Ajax позволяет вам видеть, что происходит с любыми интерактивными вызовами, которые есть на странице, помогая выявлять проблемы с опытом ваших пользователей, когда у вас есть трудоемкие или неработающие вызовы:

New Relic AJAX Analysis

Обратите внимание, что New Relic Browser автоматически не записывает данные Ajax. Вам нужно включить его для каждого приложения в области настроек New Relic. Подробнее о панели управления Ajax.

Панель управления ошибками браузера JavaScript позволяет вам быстро увидеть, какие ошибки происходят в вашем рабочем процессе JavaScript со временем, и в каких браузерах. Вы можете исследовать ошибки на основе количества раз, когда каждая из них произошла, и количества уникальных загрузок страниц, которые столкнулись с этой ошибкой.

Это позволяет идентифицировать ошибки, которые влияют на опыт реальных пользователей на вашем сайте; это особенно эффективный способ узнать об ошибках JavaScript, которые не отображаются в вашей собственной тестировке, или о браузерах, которые вы, возможно, исключили из своего тестового стенда.

New Relic Javascript Analysis

Что дальше

Самостоятельный хостинг WordPress требует высокой технической квалификации. Если вы этого не сделаете, управляемые хосты - лучшая альтернатива. Многие из них используют New Relic внутри себя для оптимизации своих собственных сайтов, например Page.ly.

Более глубокое погружение в New Relic требует инвестиций времени, но результаты того стоят. С помощью этого инструмента вы можете увидеть что происходит внутри стека WordPress, чтобы быстро выявлять проблемные области, требующие решения.

Если вы выполняете самообслуживание, службы New Relic могут быть невероятно мощными, чтобы помочь вам увидеть вашу собственную среду хостинга и стек WordPress, темы и плагины - и приручить зверя производительности.

В процессе развертывания (и в процессе разработки, если вы создаете собственные темы и плагины), вы обязательно захотите разглядеть в свой сайт с помощью New Relic.

Хотя вы можете бесконечно использовать New Relic Lite, как только ваш двухнедельный пробный период истечет, вы, скорее всего, захотите перейти на план Pro (149 долларов США в месяц), чтобы поддерживать одинаковые уровни обслуживания. New Relic Browser, Synthetics и Insight имеют свои собственные структуры ценообразования - узнайте больше о них на сайте New Relic.

Если у вас есть какие-либо вопросы или исправления, оставляйте их в комментариях. Если вы хотите идти в ногу с моими будущими учебниками Tuts + и другими сериями, посетите мою страницу инструктора или подпишитесь в твиттере @reifman.

Ссылки по теме

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.