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

Может ли один корневой сервер обрабатывать более 50 миллионов запросов в месяц?

Я запускаю приложение LAMP, установленное на одном сервере, с радостью обслуживающее около 1 млн PI в месяц. Теперь я ищу потенциальное партнерство, при котором мое приложение может обслуживать около 50-80 миллионов запросов в месяц.

Вот так выглядит моя архитектура:

Таким образом, изображения обслуживаются с static.domain.com, а приложение обслуживается с www.domain.com. API, из которого поступает 90% трафика, находится в отдельном https-домене api.domain.com, но запрашивает стек mysql и solr.

Сможет ли один корневой сервер с ОЗУ 128 ГБ и твердотельными накопителями в SW-Raid 1 с шестиядерным процессором Intel® Xeon® E5-1650 v3 Haswell справиться с такой нагрузкой? Большинство запросов будет идти против solr и доставить только поток json, потенциально не попадая на «диск».

Является ли это перебором с 128 ГБ ОЗУ или один сервер даже не сможет справиться с такой нагрузкой? Я мог бы также использовать 2 сервера и баланс нагрузки. Вопрос в том, как внутри этой архитектуры.

Спасибо за любой намек по этому поводу.

У меня есть веревка, сколько узлов я могу на ней завязать?

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

Для математики ... 50 миллионов запросов в месяц, при условии, что 30-дневный месяц составляет около 19-20 запросов в секунду ... Я предполагаю, что это возможно, зависит от того, сколько именно работы Solr нужно сделать и сколько накладных расходов ваше приложение добавляет.

Может ли сервер с этим справиться? Да.

но..

Будет ли это на самом деле полностью зависит от вашего кода. Серверы, на которых вы просматриваете эту страницу, в настоящее время обрабатывают около 75 миллионов запросов в месяц каждый, и им при этом довольно скучно, пиковая загрузка процессора составляет около 10%. Так что это определенно выполнимо.

Если вы хотите масштабироваться таким образом, вам необходимо убедиться, что код вашего приложения масштабируется в соответствии с тем, что вам нужно, и может потребоваться оптимизация. Проведите нагрузочное тестирование, чтобы убедиться, что различные компоненты приложения могут масштабироваться в соответствии с вашими ожиданиями.