Slow Queries WordPress Site (500 000 посетителей в месяц и 150 000 сообщений) - PullRequest
0 голосов
/ 02 мая 2019

Я управляю сайтом WordPress с 500 тысячами посетителей в месяц и 150 тысячами сообщений со средним числом просмотров страниц в секунду.Я пытаюсь выяснить, является ли нагрузка на сервер нормальной или есть что-то, что я могу сделать, чтобы исправить проблемы с производительностью, не увеличивая настройки сервера и ежемесячные затраты.

Вот настройка сервера, яработает прямо сейчас:

  • 2 Внешние серверы, Nginx: 2 ЦП и 4 ГБ ОЗУ
  • 1 БД, сервер MariaDB: 8 ЦП и 16 ГБ ОЗУ
  • 1Сервер Redis: 2 ЦП и 4 ГБ ОЗУ

Тема WordPress разрабатывается с нуля, где я оптимизировал запросы и минимизировал использование плагинов (всего 5 плагинов).

IЗапустите Nginx с обратным прокси-кэшем, где я кэширую все страницы в течение 5 минут, чтобы иметь возможность обрабатывать пики в трафике (два ежедневных пика с 3 тыс. посетителей за 30 минут при отправке информационных бюллетеней).

Сервер MariaDB и Redis работаетDebian с готовой конфигурацией.Единственное, что я изменил, это innodb_buffer_pool_size = 11G и max_connections = 300 в MariaDB.

ЦП БД работает на 50% при 100 посетителях в реальном времени и на 85-90% с 300-700 посетителями в реальном времени.

Проблема в том, что запросам требуется некоторое время для загрузки (3-6 секунд) даже при 50% -ной загрузке ЦП.

Моя промежуточная среда работает на тех же серверах, нос другой таблицей базы данных (такое же количество сообщений) и время запросов составляет 0,5-1,5 секунды.

Таким образом, единственное отличие состоит в том, что у рабочей базы данных больше одновременно работающих пользователей.

Чтоможет ли это заставить запросы загружаться в этот раз?

Ответы [ 2 ]

0 голосов
/ 19 мая 2019

Запросы с использованием wp_postmeta выполняются медленно из-за неэффективной схемы. Вы можете это исправить.

См. http://mysql.rjweb.org/doc.php/index_cookbook_mysql#speeding_up_wp_postmeta

Это поможет не только «бросить аппаратное обеспечение в проблему».

0 голосов
/ 02 мая 2019

Звучит так, как будто вам нужны балансировщики узлов или более мощный сервер.

У вас 500 000 посетителей со 100 просмотрами страниц в секунду, Wordpress печально неуклюж и известен сериализацией объектов в базе данных (каждый отображаемый компонент является запросом). Допустим, у вас есть простой веб-сайт (15 запросов) и 5 ​​плагинов (10 запросов), которые теперь умножают 25 на 100 просмотров, и у вас есть 2500 запросов в секунду на 16 ГБ ОЗУ. Это означает, что каждый запрос получает около 0,0064 ГБ памяти или 6,4 мегабайта.

Если в вашей базе данных нет таблиц, достаточно маленьких для размещения на дискетах 4.25, я рекомендую больше power sir.

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