talgalili
  • 0
Эксперт

Профилирование веб-сайта WordPress для развертывания на виртуальном хостинге?

  • 0

У меня возникла проблема с использованием ЦП на моем веб-сайте, и я ищу способ обнаружить (и исправить), что ее вызывает. Тема, не затронутая в этом вопросе.

Следуя ответу Хакре здесь, теперь я понимаю, что мне нужно профилировать мой PHP-вызов.

Разумно ли размещать веб-сайт на своем собственном компьютере, запускать профилировщик и использовать эту информацию для улучшения моего веб-сайта?

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

Share
  1. Профилирование с помощью Profiler-плагинов

    Не уверен, что именно вам нужно сделать с вашим профилированием, но WP Tuner (плагин WordPress) имеет большое значение для определения того, что замедляет вашу установку WP.

    Он смотрит на каждый плагин и дает вам память, процессорное время и SQL-запросы.

    SQL Monitor ( плагин WordPress) анализирует производительность SQL.

    Объедините его с W3 Total Cache (плагин WordPress), и вы получите лучшую производительность на любой платформе.

    Кроме того, рассмотрите возможность использования временного API для хранения фрагментов, которые вам не нужно генерировать каждый раз. Это действительно может помочь на медленной БД.

    • 0
    • Хм, использование какой-либо другой операционной системы, отличной от той, на которой работает сайт (скорее всего, Unix или Linux), как-то бесполезно для профилирования. Профилирование должно выполняться в среде, которая максимально соответствует целевой среде.

      • 0
    • код есть код, если в определенном плагине есть реальное узкое место (именно это и есть OP), профилирование обнаружит это независимо от того, на какой ОС он работает. Кроме того, он не уточнил, на какой ОС работает его веб-хост. Извините, я не знаком с другими ОС, я дал ссылку на установщик Windows в основном для ознакомления.

      • 0
    • Марек — спасибо за ссылку и ответ. Хакре, я понимаю вашу точку зрения, хотя я подозреваю, что для профилирования плагинов это было бы довольно похоже на обеих ОС, не так ли?

      • 0
    • Зависит от плагина. Я бы просто не рискнул проводить измерения под другим типом системы, чтобы система жизни приблизилась к ней. Может только создавать головную боль, и вы смотрите не в те места и т. Д. — рядом с этим вы можете лучше профилировать под Linux, чем под Windows. см.: hakre.wordpress.com/2010/09/09/…

      • 0
  2. Мы создали профилировщик PHP поверх XHProf, который также использует формат вывода callgrind. Основное преимущество по сравнению с XDebug заключается в значительно меньших накладных расходах и улучшенной обработке рекурсивных функций, а также в профилировании начальных и конечных функций в стиле XHProf, позволяющем выполнять автоматизированное модульное тестирование.

    Вы можете увидеть его по адресу http://www.exteon.ro/en/products/php-tools/web3tracer.

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

    • 0
  3. Профилирование с помощью Xdebug

    Я искал некоторые ссылки, чтобы было легче читать тему. Я искал профилирование PHP с помощью XDebug, что я бы предложил сделать:

    Для отображения результатов профилирования на удаленном сайте может пригодиться webgrind. Это PHP-приложение, которое обобщает выходные данные профилировщика.

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

    • 0
  4. Да, вполне разумно настроить сайт в новой среде, где вы могли бы запустить профилировщик производительности и другие инструменты.

    Как упоминалось в комментариях здесь, да, для достижения наилучших результатов вам понадобится среда, очень похожая на то, что работает в производственной среде. И чтобы получить еще лучшие результаты, вам нужно будет имитировать текущий трафик, загрузку ЦП/диска/сети, которые происходят на рабочем сервере, во время профилирования.

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

    1. Это кошмар для настройки и обслуживания. Просто проще (и точнее) сделать это в продакшене, поэтому существуют легкие инструменты профилирования, такие как XHProf. В отличие от Xdebug, эти профилировщики предназначены для работы в производственной среде, по запросу или с определенной частотой дискретизации. New Relic также является хорошим вариантом, если вы можете себе это позволить.
    2. В среде общего хостинга ваш сайт работает вместе с сотнями, а то и тысячами приложений, подобных вашему, каждое из которых потребляет ресурсы ЦП, дискового ввода-вывода, сети и памяти. Хотя некоторые общие хосты могут сообщать вам, что потребляет ваше приложение, было бы немного странно, если бы они также сообщали вам, что делают другие приложения 🙂

    Я занимаюсь профилированием приложений WordPress уже около десяти лет, и вот что вам нужно знать: 99% проблем с производительностью кроются в коде приложения. Не в конфигурации сервера, не в дисковом ио или объеме оперативной памяти, не в перенасыщенной сети. Но в коде приложения.

    Независимо от среды, если приложение выполняет:

    add_action( 'init', function() {
        wp_remote_get( 'https://some-third-party-service.org/api/version-check/' );
    } );
    

    И если этому стороннему сервису требуется 1 секунда для ответа, то каждая загрузка страницы на вашем сайте WordPress будет платить штраф в 1 секунду. Каждый. Одинокий. Время. В Windows, в Linux, в MacOS. С 1G RAM или 32G RAM. С SSD-диском или старым вращающимся магнитным диском.

    Могли ли вы обнаружить проблему с запуском профилировщика на локальном компьютере? Конечно, вы могли бы:

    WordPress performance profile

    Yes, naive code such as this can easily be spotted with PHP-level tools, like Query Monitor and the Debug Bar family, right there in production, even on a shared host. But if they don’t reveal the problem, then it’s perfectly fine to get a full copy of your production site, run it locally or some cheap VPS, in an environment where real profiling tools are available.

    • 0
  5. Да, вполне разумно профилировать веб-сайт на своем компьютере. Вам нужно будет установить среду, включая веб-сервер, и профилировать сайт с помощью выбранного профилировщика.

    В Windows локальная установка WordPress чрезвычайно проста благодаря установщику веб-платформы. Установите WordPress одним щелчком мыши, включая все предварительные условия отсюда.

    • 0

Оставить ответ

You must login to add an answer.