
Я пытаюсь понять, какую настройку сервера мне нужно будет поддерживать:
- 1 тыс. http-запросов в секунду
- каждый пост будет содержать XML-файл размером от 5 до 50 КБ (в среднем 25 килобайт)
Даже если я получу соединение на скорости 100 Мбит/с с моим выделенным боксом (обычно они дают 10 Мбит/с, но вы можете увеличить скорость), по моим расчетам, это составит около 12 Кбит/с, что означает около 480 файлов по 25 КБ в секунду.
Это значит, что мне нужно около 3 серверов, каждый с соединением на скорости 100 Мбит/с.
Сможет ли один сервер, работающий под управлением HAProxy, перенаправлять запросы на другие серверы или это означает, что мне нужно что-то еще, что может обрабатывать более 100 Мбит/с, чтобы проксировать данные на другие серверы?
Если мои расчеты неверны, буду признателен за любые исправления.
решение1
Во-первых, я предполагаю, что вы правильно рассчитали размер своих серверов, поскольку вас интересует только пропускная способность.
Во-вторых, вам нужно будет спроектировать проект для худшего варианта развития событий, когда все 1000 запросов будут отправлять файл размером 50 КБ.
Во-вторых, давайте нормализуем все в битах в секунду, а не в байтах в секунду, поскольку именно в них измеряется пропускная способность.
Итак, это дает нам (50 * 8) * 1000 = 400 000. В переводе на Мбит/с это будет 400. Теперь вам нужно добавить около 20% накладных расходов, которые добавляют TCP и Ethernet, и вы получите худший сценарий в 480 Мбит/с.
Ваш экземпляр HAProxy должен быть гигабитным, чтобы справиться со всем этим трафиком. И вам понадобится как минимум 4 сервера за ним, работающих на скорости 100 Мбит/с.
Теперь предостережение, эти скорости - это скорости вашего подключения к интернету, вам нужно спросить у вашего провайдера, каковы эти межсерверные скорости. Надеюсь, если это хороший провайдер, у него гигабитные межсерверные соединения между серверами, тогда вам просто нужно беспокоиться о вашем использовании интернета.