Отладка проблем производительности WordPress — контрольный список материалов

Отладка проблем производительности WordPress - контрольный список материалов

От автора: мы все любим WordPress. Многие из нас здесь, в Kinsta, совершенно по-разному вносят свой вклад в сообщество WordPress. Я управляю маркетинговым блоком, где делюсь уникальными способами, с помощью которых сайт WordPress может перейти на следующий уровень. Вы можете подумать, что, поскольку я работаю в хостинговой компании, мои сайты будут функционировать безо всяких проблем. Тем не менее, WordPress — это не всегда солнце и розы. Вы обязательно столкнётесь с определенными проблемами, и поэтому важно, чтобы инструменты и команда поддержки были на месте, когда это произойдёт.

Сегодня я собираюсь поведать вам, как я отлаживал странную (возможно, одну из миллиона) проблему производительности WordPress на моем сайте, а также инструменты и стратегии, которые пришли мне на помощь. Хотя каждый такой случай достаточно уникален, рабочий процесс для устранения неполадок обычно один и тот же. Поэтому я включаю то, что мне нравится называть Список проблем производительности WP . Надеюсь, вы сможете использовать его, когда столкнётесь лицом к лицу с проблемами, которые преподносит нам в WordPress производительность, за рамками вашего понимания или контроля.

Список производительности WordPress (когда появляются проблемы)

Этот список производительности немного отличается. Вместо того, чтобы делиться тем, как вы можете ускорить работу сайта WordPress, здесь основное внимание уделяется тому, что делать, когда вы окажетесь в маринаде. Вы можете рассчитывать на этот список. Возможно, ваш хост сказал, что ваш сайт перегружает сервер. Или, может быть, вы заметили, что что-то перетаскивает сайт, как и все популярные запросы admin-ajax.php.

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

1. Внедрение мониторинга работоспособности и производительности

Вы никогда не будете готовы к таким проблемам. Одна из лучших вещей, которую вы можете сделать, чтобы убедиться, что вы узнаете о танке на площадке до того, как о нём узнают ваши посетители — это вовремя реализовать мониторинг производительности и время бесперебойной работы. И на самом деле, именно так я изначально узнал, что у моего сайта были проблемы. Kinsta проверяет статус всех сайтов, которые мы размещаем каждые 60 секунд. Это соответствует 1440 проверкам на каждый размещенный сайт в день.

Отладка проблем производительности WordPress - контрольный список материалов

Фактически, благодаря New Relic Synthetics и APM, у нас есть возможность мониторинга нескольких разных точек данных в отношении сайтов WordPress:

Время загрузки конечного пользователя

Время загрузки сервера приложений

Частота ошибок

пропускная способность

Успех (время бесперебойной работы)

Оценки Apdex

Отладка проблем производительности WordPress - контрольный список материалов

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

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

Мы хотим, чтобы вы преуспели, а быстрота сайта всегда является одним из наших самых больших приоритетов. Если мы устанавливаем, что плагин A заставляет сайт тормозить, мы хотим, чтобы и вы знали об этом. Обычно мы склонны видеть большинство проблем с производительностью из-за плохих обновлений плагинов, исправления кода или поддержки последней версии PHP и т. д.

Инструменты контроля времени и производительности

Если вы не используете Kinsta, то есть много других инструментов, которые можно использовать для предупреждения о мониторинге времени бесперебойной работы и производительности. Вот некоторые из них, которые можно проверить:

updown.io (мониторинг времени бесперебойной работы)

Pingdom (мониторинг времени бесперебойной работы и производительности)

Uptime Robot (мониторнг времени бесперебойной работы)

StatusCake (мониторинге времени бесперебойной работы и производительности)

ManageWP (мониторинге времени бесперебойной работы и производительности)

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

Такие инструменты, как New Relic, не просто отлично подходят для мониторинга времени бесперебойной работы и производительности, они бесценны, когда дело доходит до устранения неполадок, из-за которых возникает проблема с производительностью. Kinsta имеет новую интеграцию Relic, которая позволяет пользователям легко использовать свои собственные лицензионные ключи. Хотя это и не включено в наш хостинг, наша служба поддержки может включить это на нашей стороне и помочь вам в устранении проблем, если это необходимо. Или вы можете использовать try, используя бесплатный плагин, такой как Query Monitor.

Отладка проблем производительности WordPress - контрольный список материалов

В New Relic есть пара мест, которые могут быстро сократить проблемы с производительностью. Первая — вкладка «WordPress — Plugins and themes». На моем сайте woorkup, который я использую сегодня в качестве примера, я могу сразу увидеть, что проблема, с которой я столкнулся, скорее всего, исходила из плагина «gp-premium», который у меня работает. Но почему? Позже мы доберемся до этого.

Отладка проблем производительности WordPress - контрольный список материалов

Примечание. Раздел выше в New Relic не всегда на 100% точный. В этом случае это было так. Но всегда рекомендуется сначала проверить.

То ли у меня было предчувствие, то ли я или угадал, что что-то не так в плагине «gp-premium» (который является расширением темы GeneratePress WordPress). Поэтому я перешел на вкладку «Transactions». И мы сразу увидели, что количество транзакций admin-ajax.php было через край!

Отладка проблем производительности WordPress - контрольный список материалов

Для тех из вас, у кого нет New Relic, обязательно ознакомьтесь с нашим замечательным руководством по диагностике использования admin-ajax на сайте WordPress. Так я смог видеть постоянные запросы admin-ajax в журналах WordPress.

Отладка проблем производительности WordPress - контрольный список материалов

Следующим шагом было выработать транзакции admin-ajax.php и просмотреть запросы к базе данных, требующих больше всего времени. Вы можете щелкнуть по вкладкам «Trace Details» или «Database queries».

Отладка проблем производительности WordPress - контрольный список материалов

Иногда сам запрос будет индикатором того, где проблема, но в этом случае это не так. Есть что-то еще, что сразу выделилось, и это была папка /gp-premium/. Мы видели, что «gp-premium» предположительно является плагином, вызывающим проблему. Обычно, если вы видите это как в разделе плагинов/тем, так и в разделе трассировки, это хороший индикатор правильного начала.

…s/gp-premium/library/image-processing-queue/includes/wp-background-process.php

Отладка проблем производительности WordPress - контрольный список материалов

Следующим шагом было отправиться в Google! Да, Google действительно может быть очень полезен в таких случаях. Поэтому я искал Image Processing Queue. Первым результатом, который получился, был плагин Delicious Brain’s Processing Processing Queue. Прочитав описание, я увидел, что это было использовано для обработки изображений тем WordPress. По существу размеры изображений генерируются в фоновом режиме с использованием очереди WP.

Отладка проблем производительности WordPress - контрольный список материалов

Быстрый поиск этого же термина вместе с «GeneratePress» привел к появлению их недавнего журнала изменений. Тада! Да, последнее изменение размера изображения было изменено в GeneratePress из Aqua Resizer до очереди обработки изображений. Это было практически в то время, когда я обновил свою тему, и ничего больше не изменилось на моем сайте. Вот почему изменения так важны! Они могут быть похожи на сухари для устранения неполадок.

Отладка проблем производительности WordPress - контрольный список материалов

Загадка заключалась в том, что у меня были другие сайты, на которых работает GeneratePress,и у которых не было такой проблемы. Поэтому я, хоть и знал, что происходит, все еще не был на 100% уверен. Итак, следующим шагом было выбить тестовую среду, чтобы начать отладку.

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

Честно говоря, я не знаю, что бы я делал без тестовой среды. Когда дело доходит до решения проблем, подобных этим, она очень удобна. К счастью, в Kinsta есть среда с одним щелчком мыши. Поэтому я залез в приборную панель MyKinsta и подтолкнул копию своего производственного сайта. Если ваш хост WordPress не предлагает тестовую среду, вы можете использовать плагин WP Staging, хотя это не так просто.

Отладка проблем производительности WordPress - контрольный список материалов

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

Всегда важно отключать все плагины. Это, безусловно, один из самых простых способов сокращения проблем. Просто перейдите в раздел «Plugins», выберите все из них и выберите из основных опций «Deactivate».

Отладка проблем производительности WordPress - контрольный список материалов

После этого время ответа в New Relic сразу же упало до нормального. Поэтому я знал, что это был плагин, вызывающий проблему. И из-за того, что я уже устранил некоторые проблемы, описанные выше, у меня была догадка, что это был плагин gp-premium.

Отладка проблем производительности WordPress - контрольный список материалов

Поэтому я снова включил плагин gp-premium, чтобы проверить, могу ли я реплицировать проблему. И да, время загрузки (время транзакций в Интернете) сразу же восстановилось.

Отладка проблем производительности WordPress - контрольный список материалов

Великолепно! Поэтому я могу утверждать на 100%, это был плагин. Но что теперь? Это не помогает исправить мою проблему. Ну, из-за того, что он появился из очереди обработки изображений, следующий намек состоял в проверке заданий CRON и переходных процессов. Всякий раз, когда у вас есть очереди любого типа, всегда проверяйте эти области. На самом деле, я всегда рекомендую проверить их. Автозагрузка данных является еще одним преступником.

Переходные процессы — это простая форма кэширования WordPress с установленными сроками действия. Чтобы быстро просмотреть переходные процессы, я установил бесплатный плагин Transients Manager от Pippin Williamson. При запуске кое-что снова привлекло мое внимание, и это был переходный элемент, называемый wp_image_processing_queue_process_lock . Кроме того, он был установлен со сроком в 1 минуту, а новые продолжали появляться.

Отладка проблем производительности WordPress - контрольный список материалов

Хотя сам плагин имеет способ удалить переходные процессы, он не работает. Настало время заглянуть в базу данных. Поэтому я вошел в phpmyadmin . Переходные процессы сохраняются в таблице wp_options, и я сделал быстрый запрос со вкладки «Search», чтобы найти строки, содержащие это имя параметра.

SELECT * FROM wp_options WHERE option_name LIKE '%wp_image_processing%'

Оказывается, у меня было 695 846 строк с %wp_image_processing%.

Отладка проблем производительности WordPress - контрольный список материалов

Здесь нам поможет тестовая среда. Поскольку не было никакого вреда в уничтожении или тестировании вещей, я продолжил вручную удалять все строки, содержащие %wp_image_processing% . И выполнил следующий запрос со вкладки «SQL», чтобы удалить все строки, содержащие это имя опции:

DELETE FROM wp_options WHERE option_name LIKE '%wp_image_processing%'

Отладка проблем производительности WordPress - контрольный список материалов

И как по волшебству, сразу после удаления время отклика на моём сайте вернулось к норме.

Отладка проблем производительности WordPress - контрольный список материалов

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

Это могло произойти с любым плагином или темой. GeneratePress — это, по сути, один из моих любимых продуктов WordPress всех времен. Еще страшно? Ну, вот некоторые из плюсов, которые сопровождают WordPress!

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

4. Инвестируйте в премиум-хостинг с поддержкой мирового класса

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

В отличие от того, что некоторые люди могут заставить вас поверить, нет никакой архитектуры или хоста, которые будут магически исправлять плохой код. Несмотря на то, что мой сайт woorkup размещен в Kinsta, такие мелочи, как плохое обновление плагинов или, в этом случае, поврежденные переходные процессы, могут поставить WordPress на колени! Это одна из причин, почему мы имеем автоматическое резервное копирование, тестовую среду и новую интеграцию Relic. Эти функции и инструменты помогают защитить сайт и быстро устранить проблемы.

Отладка проблем производительности WordPress - контрольный список материалов

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

Если вы не являетесь клиентом Kinsta, мы рекомендуем, убедитесь, что команда поддержки другого хоста, с которым вы решили сотрудничать, является первоклассной! Мы относимся к этому настолько серьезно, что нанимаем менее 1% претендентов, подающих заявку на участие в нашей команде.

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

Мы используем изолированные программные контейнеры LXC, что означает отсутствие общих ресурсов.

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

Мы используем премиум-сеть Google Cloud Platform (не стандартный уровень). Это обеспечивает молниеносную скорость сети.

Мы всегда используем новейшие и самые лучшие версии PHP. Мы являемся первым управляемым узлом для развертывания PHP 7.2, который в 3 раза быстрее, чем PHP 5.6!

Мы объединились с поставщиком CDN, который был построен с самого начала с акцентом на высокопроизводительные.

Вы можете проверить и другие способы, которыми отличается Kinsta.

5. Еще нужна помощь? Для этого есть компании по техническому обслуживанию

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

Настройка Google Search Console

Интеграция Google Analytics

Еженедельные отчеты о ранжировании ключевых слов + отчеты аналитики

Приложение для анализа социальных сетей

Оптимизация мобильных + планшетов

Разработка плагинов

Неограниченные изменения (это действительно так, некоторые даже выполняют небольшие задачи, такие как обновление вашего логотипа, добавление продукта WooCommerce и т. д.).

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

SkyrocketWP

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

Отладка проблем производительности WordPress - контрольный список материалов

WP-Tonic

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

Отладка проблем производительности WordPress - контрольный список материалов

WP Buffs

WP Buffs предлагает планы по уходу за WordPress для серьезных владельцев веб-сайтов и партнеров агентства «white-label». Как говорится на их странице: «Скажите привет вашему новому техническому комитету WP!» Кстати. WP Buffs с гордостью размещается в Kinsta.

Отладка проблем производительности WordPress - контрольный список материалов

6. Не бойтесь обсуждать проблему с разработчиком

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

Я обратился к Тому, разработчику GeneratePress, и он сразу ответил. Мы поднимаем проблему коррумпированных переходных процессов, как вы видите, он собирается фактически переключать свой метод очередности изображения (частично из-за этого). Таким образом, ваши отзывы в качестве пользователя могут определенно помочь разработчикам принять решения более высокого уровня относительно того, как и что лучше всего реализовать или изменить в своих плагинах или темах.

Отладка проблем производительности WordPress - контрольный список материалов

Вы всегда можете нанять разработчика WordPress

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

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

Мы настоятельно рекомендуем Codeable, так как они согласуются с тем же процессом отбора, который мы используем для нашей команды в Kinsta. Их разработчики проходят предварительную проверку до того, как им разрешат присоединиться к работе с персоналом Codeable, их портфолио и резюме просматривают. У них более 25 000 клиентов и всего 300 экспертов WordPress. Принимаются только 2% заявителей. Они хотят только лучших из лучших, что, в свою очередь, может сэкономить вам много времени и уберечь от разочарования.

Отладка проблем производительности WordPress - контрольный список материалов

Они предназначены для предоставления услуг аутсорсинга WordPress и полностью сосредоточены на поиске талантливых разработчиков для работы с клиентами. Мы с удовольствием взяли интервью у Пер Эсбенсена, генерального директора компании Codeable, это усиливает стремление к созданию сообщества разработчиков WordPress.

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

Отладка проблем производительности WordPress - контрольный список материалов

Итог

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

Воспользуйтесь превосходными инструментами, такими как New Relic, которые просто сэкономят время на отладку. И когда дело дойдёт до этого, в сообществе есть талантливые разработчики WordPress. Не бойтесь нанять кого-то из них.

Испытывали ли вы какие-либо проблемы с производительностью, когда вам просто хотелось бросить полотенце? Если да, дайте нам знать ниже в комментариях!

Автор: Brian Jackson

Источник: https://kinsta.com/

Редакция: Команда webformyself.