Нагрузка phpBB на хостинг: сколько ядер CPU нужно и что упирается первым

Нагрузка phpBB на хостинг: сколько ядер CPU нужно и что упирается первым

 

Когда растёт онлайн, phpBB бьёт не только по CPU, но и по базе и диску. Типичная страница форума собирается из десятков запросов к базе, шаблонов, аватаров и вложений. Если сервер не подготовлен, рост RPS превращается в лавину 5xx и долгих ответов, хотя визуально нагрузки «немного».

Важно понимать профиль. Гости читают темы и разделы, это динамика на чтение. Авторизация, поиск, отправка сообщений и лички тяжелее и чувствительнее к latency базы. Боты добавляют шум, особенно если кеш и GeoIP настроены плохо. Из коробки phpBB может жить и на 1 vCPU, но предсказуемость появляется только после правильной настройки OPcache, PHP-FPM, Nginx и InnoDB.

Оценка по ядрам опирается на среднюю стоимость страницы. На современном PHP 8.2 с OPcache и MariaDB на NVMe динамическая страница phpBB обычно «съедает» 50–120 мс CPU времени. Это даёт грубый ориентир 8–16 динамических запросов в секунду на одно vCPU при условии, что база в памяти и диск быстрый. Без кешей и с медленным диском цифры падают до 4–8 RPS на ядро.

Задача не в том, чтобы «накидать ядер», а убрать узкие горлышки. В большинстве кейсов первым упираются IOPS и сеть соединений, а уже затем CPU. Ниже даю практические ориентиры, таблицу размеров и настройки, которые сразу снимают боль.

 

Что нагружает phpBB больше всего

 

  • Просмотр темы и раздела с большим числом сообщений и вложений.

  • Поиск и индексатор, особенно без внешнего поискового движка.

  • Одновременные авторизованные сеансы с непрогретым кешем.

  • Расширения, которые добавляют запросы на каждую страницу.

  • Боты и сканеры при неправильной конфигурации robots и кешей.

 

Ориентиры производительности на одно vCPU

 

  • С PHP 8.2 + OPcache, Nginx + PHP-FPM, MariaDB 10.6+, NVMe

    • Динамика чтения гостями: 8–16 RPS на 1 vCPU при p95 ниже 250–300 мс.

    • С авторизацией и поиском: 5–10 RPS на 1 vCPU.

     

  • Без OPcache или на медленном диске

    • Динамика падает до 4–8 RPS на 1 vCPU даже при той же базе.

     

  • Формула прикидки

    • RPS на ядро приблизительно равно 0.6 ÷ t_php, где t_php в секундах среднее CPU-время генерации страницы. Пример: t_php = 0.08 с даёт около 7.5–10 RPS на ядро с учётом накладных.

     

Быстрый sizing по онлайнам

 

Онлайн одновременно

Оценочный RPS динамики

Рекомендовано vCPU

RAM

Диск

Комментарии

50 гостей

5–8

2

4–6 ГБ

SSD

OPcache, базовый тюнинг InnoDB

200 гостей

12–20

4

8–12 ГБ

NVMe

Redis кеш, microcache для гостей

500 гостей

25–40

6–8

16–24 ГБ

NVMe

БД на отдельном томе или VDS

1000+ гостей

50–80

12+

24–32 ГБ

NVMe RAID

Разделение ролей, реплика БД по чтению

Примечание: это рабочие ориентиры, итог зависит от расширений, шаблонов, доли авторизованных пользователей и поиска.

 

Настройки, которые сразу экономят CPU

 

OPcache

opcache.enable=1

opcache.memory_consumption=256

opcache.interned_strings_buffer=16

opcache.max_accelerated_files=100000

JIT отключать для phpBB, это веб-приложение, выигрыша почти нет

 

PHP-FPM

pm=dynamic

pm.max_children рассчитывать как RAM_под_PHP ÷ средний_расход_на_воркер

отдельные пулы для фронта и админки

 

Nginx

worker_processes auto, worker_connections 8192

отдавать статику без PHP, включить sendfile и gzip_static

microcache на 1–5 секунд для гостей на страницах viewtopic и viewforum

 

MariaDB

innodb_buffer_pool_size 60–70 процента RAM сервера БД

innodb_log_file_size 512M, innodb_flush_log_at_trx_commit=2 для снижения fsync

отключить query_cache, использовать utf8mb4

включить slow_query_log и разбирать запросы длиннее 300 мс

 

Кеш и сессии

Redis для кеша и сессий phpBB, хранение в памяти разгружает диск

cron phpBB запускать системным cron раз в минуту, а не ждать ботов

 

 

Когда масштабировать

 

  • CPU

    • средняя загрузка выше 70 процентов 15 минут и более

    • run queue стабильно больше числа vCPU

     

  • Память

    • буфер InnoDB не помещает активный набор данных и начинается своп

     

  • Диск

    • p95 latency выше 10 мс на NVMe или I/O wait выше 10 процентов

     

  • Сеть и соединения

    • очередь SYN и дропы backlog, TIME_WAIT шторм при пиках

     

 

Чек-лист топ 5 советов

 

  1. Включите OPcache и перенесите статику на Nginx, а не через PHP.
  2. Дайте базе память: 60–70 процентов RAM под InnoDB buffer pool и NVMe для данных.
  3. Включите Redis и microcache для гостей, это снижает динамику в разы.
  4. Следите за p95 latency, slow log и I/O wait, а не только за процентом CPU.
  5. Не смешивайте базу и веб при больших онлайнах, вынесите БД на отдельный VDS.

 

Что входит при заказе у нас

  • Поднимем phpBB на оптимальном LAMP с OPcache, Redis и тюнингом MariaDB.

  • Настроим microcache и корректный cron форума, мигрируем базу и файлы.

  • При аренде от 6 месяцев настраиваем серверы бесплатно.

 

Как оформить заказ

 

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

  • Мы предложим конфигурацию по ядрам, памяти и диску, согласуем перенос и график работ.

 

Акция для клиентов QCKL

 

  • При оплате хостинга или VPS от 6 месяцев удвоим оплаченный период.

  • Оформите заказ сейчас и укажите в комментарии к заявке текст «Удвоение периода 6+ месяцев». Закрепим условия и активируем приоритетно.

 

  • 0 Benutzer fanden dies hilfreich
War diese Antwort hilfreich?

Verwandte Artikel

HTTP-Fehler: häufige ursachen und deren behebung

Fehler 403: Verboten (Forbidden): Der Server versteht die Anfrage, weigert sich jedoch, sie...

DNS-konfiguration mit Cloudflare

Cloudflare ist ein beliebter Dienst, der Schutz und Leistungsverbesserungen für Websites bietet....

10 Beispiele für die verwendung von weiterleitungen in einer .htaccess

1. Weiterleitung von einer Seite zur anderen Leitet eine bestimmte Seite zu einer neuen Seite...

FTP-Verbindung zum hosting mit FileZilla herstellen

FileZilla ist ein einfaches und praktisches Tool, um Dateien auf Ihrem Server zu verwalten. Hier...

Was ist ein subdomain und wofür wird es verwendet?

Eine Subdomain ist ein Teil eines Domainnamens, der vor dem Hauptdomainnamen hinzugefügt wird....

Powered by WHMCompleteSolution