Что такое PHP Workers и почему вас это должно волновать?

Опубликовано: 2022-06-30

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

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

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

Что такое PHP-воркер?

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

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

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

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

Основное руководство по плагинам WordPress на 2022 год >>

Однако это не означает, что пятый клиент (процесс PHP) или более поздние не обрабатываются. Процессы PHP помещаются в очередь для рабочего процесса, что означает, что он обрабатывает первый запрос в очереди, а затем переходит к следующему процессу PHP в очереди. Другими словами, выстраивается длинная очередь, и люди начинают ждать.

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

Что происходит, когда у вас слишком мало PHP-воркеров на сайт

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

Если вы используете сайт электронной коммерции поверх этого, это только увеличит размер очереди. Подобно клиентам, ожидающим в очереди, некоторые процессы PHP покидают очередь. Процессы, которые не написаны, чтобы покинуть линию или тайм-аут, и будут сидеть и ждать. Тогда они начнут сильно нагружать ресурсы сервера. Как будто очередь на кассе теперь обвивается вокруг квартала!

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

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

Как облегчить нагрузку на ваших PHP-воркеров

Распространенная проблема, с которой начинают работать PHP-работники, — это наличие слишком большого количества плагинов и тяжелых тем. Как правило, вы можете помочь решить проблемы, вызванные раздутым веб-сайтом, с помощью следующих советов:

  1. Добавьте кеширование сайта с помощью плагина
  2. Сокращение внешних вызовов на удаленные сайты
  3. Общая оптимизация сайта

Оптимизация сайта может быть сложной, особенно в случае сайтов с интенсивным трафиком, требующим большего внимания к деталям. Как правило, чем больше сайт, тем более эффективным должен быть сайт в том, как он запрашивает свои стили, продукты, заказы и клиентов. Таким образом, вы меньше используете обработчиков PHP для общей функциональности сайта, а обработчики PHP могут эффективно обрабатывать то, что имеет значение — ваш трафик.

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

С Nexcess у вас уже есть 20 одновременных пользователей в рамках плана XS. Это увеличивается с шагом 20 по мере перехода к плану XXL (в котором 120).

Руководство для начинающих по оптимизации производительности WordPress >>

Другие платформы управляемых приложений предлагают от двух до четырех исполнителей PHP в начальных предложениях. Хостинг Nexcess Managed WordPress, WooCommerce и Magento также имеет встроенное кэширование на стороне сервера, которое помогает свести к минимуму использование обработчиков PHP для обработки статического контента, позволяя обработчикам PHP обрабатывать запросы от самых важных людей: ваших клиентов.

Поддерживайте более быстрый сайт с большим количеством PHP-воркеров

Однако обработчики PHP могут управлять тысячами процессов каждый; в игру вступают многие факторы, в том числе:

  • Сколько внешних вызовов они делают?
  • Сколько плагинов конкурируют с запросами к базе?

Кроме того, добавление обработчиков PHP на сайт также увеличит выделение ресурсов, используемых с сервера. Чем больше запущено процессов PHP, тем больше потребуется ресурсов ОЗУ и ЦП, что создает большую нагрузку на сервер, а максимально возможная оптимизация может снизить нагрузку на сервер. Работники PHP являются ключевыми, но они не являются волшебным, универсальным решением.

Чем больше плагинов (даже неактивных), тем больше PHP-воркеров используется для обработки нестатических запросов. То же самое относится и к популярным темам.

По этой причине всегда полезно использовать кэширование и сеть доставки контента (CDN), чтобы снизить нагрузку на PHP-работников. Это оптимизирует ваш сайт для максимально быстрой обработки запросов клиентов.

Лучше встроен с полностью управляемым хостингом от Nexcess

Улучшение работы вашего сайта начинается с качественного хостинга. С полностью управляемым хостингом Nexcess для WordPress и WooCommerce вы получаете:

  • Автоматическое масштабирование для поддержания скорости вашего сайта во время всплесков трафика.
  • Автоматически оптимизированные изображения для быстрой загрузки.
  • Молниеносная загрузка благодаря нашему встроенному CDN.
  • И более!

Узнайте, почему пользователи дали нам оценку 4,6 из 5 звезд на Trustpilot. Попробуйте оптимизированный хостинг для вашего сайта. Ознакомьтесь с нашими планами, чтобы начать сегодня.