Нагрузочное тестирование сайта на Wordpress / WP Super Cache vs. W3 Total Cache (Redis, Memcached) vs. Webinoly (FastCGI Cache + Redis Object Cache)

12 3
Midnight Pioneer
На сайте с 28.07.2022
Offline
13
920

Здравствуйте, товагищи.

Мне стало интересно потрогать разные плагины кэширования ну и вообще стало интересно, как ускорить свои сайты на Wordpress. Кроме того, я любитель почитать, что обо мне думает Lighthouse, а там тоже вечно (давай быстрее, чо ты как этот). В общем, речь тут пойдёт про скорость.

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

В общем, я начал искать какие-то простые и не очень затратные решения, которые подойдут для моей ситуации. Так как у меня были деньги на облачном счёте в RegRu я решил там немного поэкспериментировать.

На RegRu предусмотрена установка Ubuntu сразу с FastPanel на борту. Я, будучи чайником, начал именно с этого. Панелька очень красивая, всё очень удобно настраивается, никаких ограничений вроде бы нет. В общем, красота. Ты получаешь вроде бы VPS, а вроде бы и ни во что вникать не надо, всё наглядно и понятно. Сайт на WP добавил, сразу там можно DNS настроить, получить SSL сертификат (или прикрутить свой, например я, так как у меня нет сайтов в зоне .ru без проблем прикручивал сертификаты ZeroSSL). В общем, вы поняли, всё для людей, но единственное что плохо — если взять самый дешёвый VPS (Base-1, 1 ядро, 1gb), то сама по себе панелька с ходу сожрёт половину ресурсов. Останется добавить какой-то посещаемый сайт в эту конфигурацию и сервер начнёт прям кашлять. Зато тебе не надо понимать в администрировании, просто включил и поехал. Опять же, может быть с прямыми руками и Wordpress может не не так сильно жрать ресурсы, я не знаю, потому что чайник и пишу для таких же чайников. 

Потом панельку решено было утилизировать, был переустановлен образ системы уже без FastPanel, а в качестве замены установил Webinoly. Это как бы сервер Nginx, но заточенный специально для секты вордпрессоводов. Можно одной командой добавить сайт, включить кэш FastCGI, выпустить SSL-сертификат, в общем, всё тоже очень сильно упростили, но делается всё уже через консоль, а для таких как я чайников это уже страшно. Но вот Webinoly как раз всё очень сильно упростит и вроде не так уже и страшно. Можно у них на сайте почитать что это, почему, зачем и как. Очень крутая штука.

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

Нагрузочное тестирование проводилось с помощью loader.io, а гугловые пузомерки (меня там интересовала одна —  First Byte) смотрел тут: webpagetest.org. Картинки прикрепляю просто ссылками.

Теперь к сути:

1. Самый простой тариф VPS от RegRu, панель FastPanel на борту, без кэширования. Обработчик PHP —  Модуль Apache.

В такой конфигурации 650 запросов в минуту для сервера уже неподъёмный груз. Ошибок нет, но таймаут под конец теста адовый.

Нагрузочное тестирование | CoreWebVitals

2. Самый простой тариф VPS от RegRu, панель FastPanel на борту, WP Super Cache. Обработчик PHP —  Модуль Apache.

Включил WP Super Cache. Никаких тонких настроек не делал, потому что чайник. Просто включил и всё. Стало сильно бодрее, 4500 запросов в минуту — никаких проблем. 4750 — начались ошибки. Именно ошибки, а не просто задержки.

Показатель  First Byte тоже включение WP Super Cache взбодрило. 

Может быть тут найдутся товарищи, которые могут подсказать по тонким настройкам? Интересно было бы выжать из этого максимум, потому как именно такая схема именно с этим плагином самая простая и не требует вообще никаких дополнительных телодвижений.

3. Самый простой тариф VPS от RegRu, панель FastPanel на борту, W3 Total Cache. Обработчик PHP —  Модуль Apache.

W3 Total Cache включил уже не просто так, предварительно на сервере установил memcached и redis, но это наверное уже на область, где без понимания процессов и без тонкой настройки никак. Поэтому и тут буду признателен любым советам и наблюдениям, может быть кто-то посоветует, как настраивается memcached и redis, потому как если просто включить и активировать это всё в плагине — результат так себе. Плагин особо не настраивался, был запущен мастер настройки, там просто была выбрана самая удачная по мнению плагина настройка (redis или memecached).

Нагрузочное тестирование | CoreWebVitals

Ошибок сильно больше, чем при включённом  одной кнопкой WP Super Cache при такой же нагрузке. Зато чуть пошустрее First Bite и LCP. Но там скорее на уровне погрешности, это не стоит того, чтобы ставить плагин, который тяжелее, сложнее настраивается и для работы которого ещё надо на сервере установить memecached и redis.

4. Самый простой тариф VPS от RegRu, Webinoly на борту, без кэширования и с FastCGI.

Webinoly нам немного сэкономит ресурсы сервера, поэтому даже без кэширования результаты немного бодрее, чем в варианте с FastPanel на борту. В плане показателей First Bite и LCP тоже гораздо лучше именно вариант с Webinoly, оно и понятно, нет никаких лишних деталей, Nginx. Но самое интересное начинается при включении серверного кэширования. Webinoly умеет это делать одной командой, сразу вносит необходимые настройки и устанавливает на сайт два плагина, которые просто облегчат нам жизнь. Как видно из результатов нагрузочного тестирования и показателей CoreWebVitals — такая конфигурация рвёт всё предыдущие просто в нелепую труху. За 15 секунд обработано 10 000 запросов и даже намёка на какие-то задержки нет. Сравните дополнительно показатели Response Times. 

Нагрузочное тестирование без кэша | Нагрузочное тестирование с FastCG | CoreWebVitals  без кэшаCoreWebVitals с FastCGI

***

После всех этих тестов я попробовал тоже самое проделать на сервере чуть подороже. Вариант Base-2 (2 ядра, 2 Gb). Всё тоже самое, но чуть чуть бодрее без кэширования, что нам в принципе не интересно.

Потом решил врубить самый дорогой, высокочастотный, Turbo-8 (8 ядер, 16 Gb). Тут уже без кеширования сервер тянет гораздо бодрее, прямо в разы. Это было заметно уже при установке Webinoly, сервер реально во много раз шустрее. 

Вот результаты тестов на самом дорогом тарифе:

Нагрузочное тестирование без кэша | Нагрузочное тестирование с FastCG | CoreWebVitals с FastCGI

Получается, что без кэширования этот самый дорогой сервер в 9 раз шустрее, чем самый простой и самый дешёвый, при этом стоит он дороже в 26 раз.

Это было бы важно, если бы мы использовали сервер опять же с панелью управления и не использовали серверное кэширование. А вот когда врубается FastCGI, то в принципе вся разница нивелируется и получается что сайт становится таким же резвым, как будто у нас обычный html отдаётся, т.е. сильно бодрее, чем в любом другом случае и сильно (прям очень сильно) экономит ресурсы сервера. И уже не нужно брать дорогущий сервер. Класс.

Конец

В общем, я когда-то переехал с сервера с Webinoly на RegRu, просто потому что хотелось удобную панельку FastPanel. Наверное Vesta жрёт меньше ресурсов, я не проверял. Сейчас для меня очевидно, что на Webinoly  я забил зря, но я просто сильно переживаю за то, что если что-то пойдёт не так, к примеру, какой-то плагин внесёт изменения в конфиг Nginx, сайты перестанут запускаться, а я, так как чайник, не смогу с этим толком ничего придумать, поэтому надо бы что-то почитать по теме (посоветуете что-то?).

Если кто-то тоже хочет удобную панельку, не обязательно идти в RegRu (потому что они днище). FastPanel можно установить на любой чистый сервер и всё полетит. Поддержка там классная, быстро помогают по любым вопросам относительно панельки (это не реклама, реально это для меня важно и мне понравилось как быстро и грамотно отвечает поддержка). НО! Я всё же склонен вернуть все сайты на вариант с Webinoly.

P.S. 

Кому из опытных товарищей есть что сказать по любому моменту этой портянки — высказывайтесь пожалуйста, это будет очень ценно. Отдельно было бы классно увидеть подобные тесты с OpenLiteSpeed, но я не нашёл какого-то внятного гайда, чтоб для чайников по шагам с установки Ubuntu до запуска Wordpress сайта. Точнее, гайды я видел, но лыжи у меня что-то не поехали. Поэтому если кто-то обладает сакральными знаниями на этот счёт тоже прощу поделиться, а я сюда допилю такие же тесты, чтобы сравнить, действительно ли Nginx из коробки сливает или OpenLiteSpeed всё-таки перехвалили.

P.P.S. 

Надеюсь, что-то из этого бестолкового текста кому-то будет полезно.
Arxidemon
На сайте с 14.03.2014
Offline
90
#1
У меня связка VPS 1гб рам SSD KVM + VestaCP ( apache + nginx + remi + vsftpd +iptables +MySql) + Wordpress сайт + WP Cerber (плагин защиты, вырубает всех ботов) и Hummingbird (кэширование и оптимизация) + Cloudflare + новый сайт СДЛ на самописе, ещё не завершённый и не раскрученный + парочка ГС. Сайты нормально работают, не летят конечно, но и не тормозят. Только по ночам иногда сервер бд вырубается, подозреваю что виноваты бекапы. Планирую купить VPS на 2гб рам, как только срок действия этого (осталось 3 месяца) закончится.
-S
На сайте с 10.12.2006
Offline
1356
#2
Arxidemon #:
У меня связка VPS 1гб рам SSD KVM + VestaCP ( apache + nginx + remi + vsftpd +iptables +MySql) + Wordpress сайт + WP Cerber (плагин защиты, вырубает всех ботов) и Hummingbird (кэширование и оптимизация) + Cloudflare + новый сайт СДЛ на самописе, ещё не завершённый и не раскрученный + парочка ГС. Сайты нормально работают, не летят конечно, но и не тормозят. Только по ночам иногда сервер бд вырубается, подозреваю что виноваты бекапы. Планирую купить VPS на 2гб рам, как только срок действия этого (осталось 3 месяца) закончится.

Ботов нужно блочить до попадания на сервер средствами CF, отключить  WP Cerber, который явно грузит.

Arxidemon
На сайте с 14.03.2014
Offline
90
#3
-= Serafim =- #:

Ботов нужно блочить до попадания на сервер средствами CF, отключить  WP Cerber, который явно грузит.

Что такое CF ?

Arxidemon
На сайте с 14.03.2014
Offline
90
#4
-= Serafim =- #:

Ботов нужно блочить до попадания на сервер средствами CF, отключить  WP Cerber, который явно грузит.

Кроме защиты от ботов Цербер заменяет ещё целый ряд плагинов, как минимум смену адреса админки и гугл капчу.

suffix
На сайте с 26.08.2010
Offline
329
#5
 В общем, речь тут пойдёт про скорость.

Нет, не про скорость. Вы повторяете ошибку 100500  "тестировщиков" в интернетах.

Вспомните что такое скорость из курса школьной физики - ну и причём здесь нагрузочное тестирование ?

То, сколько единовременных соединений держит тот или иной вариант это про "мощность" а не про скорость.

А вот тесты Гугла при "обычной" нагрузке сайта - вот они про скорость.

Работу Вы провели полезную, возможно даже кому-то полезную (не хватает кому-то мощности железа в пиковых нагрузках на сайте, поменяет софт исходя из вашего теста и железо станет справляться), но не про скорость :)))

Клуб любителей хрюш (https://www.babai.ru)
Midnight Pioneer
На сайте с 28.07.2022
Offline
13
#6
suffix #:
но не про скорость :)))

Ну т.е. наличие или отсутствие ощутимых задержек при нагрузке на сайт это не про скорость? Вот есть два сайта, на одном я жду пока страницы откроются, на другом страницы открываются сразу. Что это для меня, как для пользователя? Не скорость?

Но в целом вы правы, я никакой не тестировщик. В принципе мне изначально стал интересен OpenLightSpeed, я про него начитался, мол, он сильно шустрый и Nginx это всё прошлый век. Вот это всё вышеописанное для себя просто решил зафиксировать и заодно поделиться с теми, кому это может быть интересно. 

OpenLightSpeed осталось победить и там такой же тест провести на таком же VPS. Потом сюда выложу. Но пока что лыжи не едут у меня)

Ну и я всё же надеюсь, что придут грамотные коллеги и поведают нам всем за настройку memcached, чтоб всё летало) Ну и если есть повелители  OpenLightSpeed знайте, вас тут тоже очень ждут)

suffix
На сайте с 26.08.2010
Offline
329
#7
Midnight Pioneer #:

Ну т.е. наличие или отсутствие ощутимых задержек при нагрузке на сайт это не про скорость? Вот есть два сайта, на одном я жду пока страницы откроются, на другом страницы открываются сразу. Что это для меня, как для пользователя? Не скорость?

Ну не тупите ! 

Если при "обычной", "типичной" для конкретного сайта нагрузке всё тормозит - это значит что вебмастер или беден как церковная мышь и сайт свой скоро забросит или ему пора вон из профессии. 

Какое это отношение имеет к нагрузочному тестированию когда нагоняются 100500 единовременных посещений которых в реальности на сайте этом НИКОГДА не будет ?

Это Вы тупо "мощность" связки железо-софт тестируете, а не "скорость" сайта.

Вот когда Вы свой сайт днём (а не ночью) отправляете на проверку в тривиальнейший Гугл Пейджспид - это 100% про скорость конкретного сайта в РЕАЛЬНЫХ условиях.

Нагрузочное тестирование-то здесь причём ?

suffix
На сайте с 26.08.2010
Offline
329
#8
Midnight Pioneer #:

поведают нам всем за настройку memcached

Поведаем: memcached для кластеров, для одиночных выделенных серверов и тем более vps он нафиг не нужен. 

Midnight Pioneer
На сайте с 28.07.2022
Offline
13
#9
suffix #:
когда нагоняются 100500 единовременных посещений

Вы думаете, что 1 посетитель = 1 запрос?

suffix
На сайте с 26.08.2010
Offline
329
#10
Midnight Pioneer #:

Вы думаете, что 1 посетитель = 1 запрос?

Вы к мелочам собрались придираться ? Какая разница сколько запросов на одного посетителя если 100500 разделить это количество всё равно овердофига, что не бывает на реальном сайте. 

Ладно, оставайтесь в теме без меня, раз конструктивно обсуждать не умеете.

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий