Я мигрирую форум на Discourse.
К сожалению, текущий форум на vBulletin повреждён, и у меня нет доступа к ежемесячной статистике форума.
Вот что мне известно и что я смог оценить (на основе нескольких снимков главной страницы из archive.org):
180 000 пользователей (включая множество спам-аккаунтов, которые не были заблокированы…)
1,6 млн сообщений (включая темы). Обратите внимание, что форуму 20 лет, и пик активности пришёлся на 2000-е годы, сейчас активность значительно ниже.
Около 10 пользователей и 800 посетителей в любой момент времени.
Около 20 сообщений в день.
Полная база данных vBulletin, включая аватары и вложения, занимает 13 ГБ.
Ожидаю, что ежедневная статистика вырастет (надеюсь!), когда форум снова откроется.
Исходя из этой информации, можете ли вы оценить, какие характеристики сервера мне потребуются? Я арендую сервер у Hetzner, вот их список VPS: https://www.hetzner.com/cloud
Я бы, вероятно, начал с CPX51, так как цифры указывают на высокую активность, но, возможно, можно обойтись и CPX41, если не ожидается значительного роста трафика.
В идеале я бы хотел использовать S3 и CDN для снижения части нагрузки.
CDN критически важен для снижения нагрузки. S3 не так необходим, если только вы не планируете сообщество из одержимых загрузкой гигантских изображений пользователей
Привет, спасибо за ваши ответы. Я ничего не знаю о CDN, поэтому собираюсь разобраться, что это такое, как это работает и как это повлияет на производительность Discourse.
С моим опытом вы сможете начать без каких-либо проблем с CPX11. Единственное, что меня беспокоит, — это место на диске, так как вы довольно быстро его заполните. Как и в случае с OOO, у вас будет занято 65–70% дискового пространства, поэтому, чтобы избежать скорого простоя из-за необходимости обновления, я бы выбрал CPX21, но не потому, что серверу нужна дополнительная мощность.
Другой вариант — разместить все загрузки в S3 или аналогичном сервисе. Проблема в том, что я почти уверен, что Hetzner пока не предлагает этот продукт. Использование S3 позволит вам перенести все вложения на другой хостинг, что значительно дешевле.
CDN — это сеть доставки контента. Этот сервис кэширует ваши наиболее часто используемые статические ресурсы, такие как JS, изображения и т. д., и распределяет их по нескольким точкам присутствия (PoP), что снижает нагрузку на ваш сервер и увеличивает скорость загрузки, если ваше сообщество распределено по нескольким регионам.
Если хотите, вы можете отправить мне личное сообщение, и я дам вам ещё несколько советов.
Я предпочитаю S3 (по крайней мере для хранения резервных копий) — просто ради дополнительного спокойствия, что одна копия резервной копии хранится вне сайта.
Я планирую использовать 3S для резервного копирования моего сайта в дополнение к локальным резервным копиям, но не для загрузок, так как, по моему мнению, это не будет действительно полезно. Однако мне нужно подумать об этом подробнее и найти дополнительную информацию.
Серверы Hetzner масштабируемы, и я могу увеличить или уменьшить их мощность за секунды (хотя уменьшить размер диска нельзя), но я предпочитаю сразу выбрать правильные характеристики, чем действовать полностью эмпирически.
Кроме того, мои загрузки занимают 7 ГБ дискового пространства.
Большое спасибо за это быстрое объяснение. Моё сообщество международное, поэтому это, вероятно, поможет.
Просто чтобы у вас было немного больше информации для сравнения и чтобы объяснить, почему я считаю, что CPX11 будет достаточно, если у него будет чуть больше места на диске.
Я использую конфигурацию с 1 виртуальным ядром CPU и 2 ГБ оперативной памяти и не сталкивался с проблемами производительности.
Проблема (как всегда) в том, что каждый посетитель, заходящий на сайт одновременно, потребляет определённые ресурсы сервера (CPU/RAM). Если вы используете CDN, эта нагрузка значительно снижается, так как большая часть работы по поиску файлов и их доставке пользователям берётся на себя CDN, а не вашим сервером.
Теперь о том, что характеристики вашего сервера зависят от объёма дискового пространства и от того, сколько пользователей решат зайти на сайт одновременно.