Назад | Перейти на главную страницу

минимальные требования для сайта с высокой посещаемостью

У меня есть веб-сайт, содержащий одну страницу PHP, которая выполняет 3 простых SQL-запроса к базе данных MySQL, 2 простых запроса выбора и 1 простое обновление.

Выходной HTML-код с некоторыми изображениями составляет 500 КБ.

Серверу необходимо обрабатывать 50-150 запросов в секунду.

Можете ли вы помочь мне определить минимальные спецификации, необходимые серверу для обеспечения 100% бесперебойной работы?

500 КБ * 150 запросов / с = 73 МБ / с или 586 Мбит / с. Это значительный объем пропускной способности: почти 190 Тбайт / месяц передачи. Установить оборудование для поддержки этого на самом деле довольно просто; вы, вероятно, могли бы обойтись на (мощном) VPS, если «простой» на самом деле означает «простой», но пропускная способность будет камнем преткновения, поскольку большинство хостов VPS будут сопротивляться (или взимать непомерную плату за) такого рода ежемесячного перевода.

Вы хотите разместить все самостоятельно в полном, географически распределенном HA, или стоит переложить часть хостинга на CDN?

Это все равно что сказать: «Какая машина выиграет Baja 1000?». Это зависит.

Кроме того, 100% безотказная работа невозможна. Вы можете подойти чертовски близко, однако

При этом есть несколько вещей, которые вы захотите сделать.

1) Какой бы раствор вы ни использовали, убедитесь, что вы измеряете все, что можете. С помощью показателей вы можете определить, есть ли у вас избыточная или недостаточная подготовка, и принять меры. Вы также можете видеть тенденции и делать осознанный выбор, прежде чем что-то начнет ломаться.

2) Избыточность - ваш друг. Географическая избыточность (разделение приложения на разные центры обработки данных в разных географических регионах), горизонтальная (разделение серверов приложений от БД и серверов контента) и вертикальная (несколько небольших с балансировщиком нагрузки лучше, чем 1 большой).

Итак, это вид на 10 км.

В частности, в вашем случае я бы определил группу серверов, которые могли бы обрабатывать около 75% вашего трафика. Возможно 2–3 сервера Nginx (мой личный выбор, используйте то, что вам удобно), выходящих на пару серверов БД (1 мастер, 1 реплика только для чтения). Используйте веб-сервер для прокси-сервера на какой-то FCGI или другой сервер приложений. Убедитесь, что серверы переднего плана обслуживают ваши кэшированные страницы (вы кэшируете, верно ??).

Теперь вам нужно будет поставить перед ним какой-нибудь LB. Подойдет сингл, потому что ...

Вы будете настраивать копию этого в другом центре обработки данных. Все реплики БД только для чтения, если вы не хотите копаться и настраивать репликацию master / master.

Используйте циклический DNS для разделения трафика между DNS CNAMES двух балансировщиков нагрузки.

В случае сбоя на одном из DC, просто переместите задействованный cname на верхний сайт.

Это будет дорого и это сложно сделать.

Честно говоря, большинство людей просто сделают это в одном DC, так как пройти весь путь просто неэффективно.

Лично я бы начал с малого и посмотрел, как это работает. Добавление серверов должно быть простым, и через некоторое время вы сможете увидеть, где вашему приложению нужна помощь.