Задать вопрос
@webman2004

Правильно ли я понимаю теорию нагрузки на сервер с 100 мбитным каналом?

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

Допустим, сервер только принимает запросы, но не отдает ответы. Железо сервера и исполняемый код на нем выдерживают обработку 10 тыс./сек. запросов.
Отправляемый объем данных на сервер постоянен и равняется 300 байт в одном запросе, получается что канал может выдержать 100 мбит/300 байт = 43690 запросов/сек.
Поскольку железо и ПО способно обработать только 10 тыс./сек., то канал используется неэффективно? В данном случае хватило бы канала около 25 мбит?

Теперь, сервер только отсылает ответы и способен обработать 10 тыс./сек.
Отправляемый объем данных постоянен и равняется 50 кбайт в одном ответе, получается что канал может выдержать 100 мбит/50 кбайт = 256 ответов/сек.
Поскольку канал способен обработать только 256 ответов/сек., то железо используется неэффективно? В данном случае хватило бы железа способного обработать 256 запросов/сек?

Спасибо!
  • Вопрос задан
  • 1228 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
ifaustrue
@ifaustrue
Пишу интересное в теллеграмм канале @cooladmin
В ваших рассуждениях есть логика.
Но не забывайте:
1. Учитывать накладные расходы (это и служебный трафик и системный трафик и подтверждения доставки и все хендшейки и тд.), которые могут составлять большой % от целевого трафика
2. Не забывайте про latency. На толстых каналах, чаще всего, этот показатель ниже, так как, опять же чаще всего, он растёт экспоненциально нагрузке на канал, так для нагрузки 80 мегабит для сто мегабитного канала, задержки уже могут проявляться, для гигабита - точно нет.
3. Всегда используйте ваши мощности не на 100%. Даже на не 80%. Хорошей практикой будет использовать в пике 60% от мощностей.
4. Лучше иметь одно контролируемое бутылочное горлышко, параметры которого заранее известны (например ширина канала), чем иметь 5-ть не контролируемых, каждое из которых срабатывает в разные моменты времени (то CPU в полку, то памяти мало, то дисковая очередь, то канал).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
begemot_sun
@begemot_sun
Программист в душе.
Когда ты принимаешь трафик, то примерно 1\10 от его объева уходит абоненту обратно в виде подтверждения доставки. Т.о. вы должны это учитывать также.
Ответ написан
Комментировать
index0h
@index0h
PHP, Golang. https://github.com/index0h
Так то оно так, но в реальности - нет. rps на разном железе у вас будет отличаться. Что касается трафика - важна еще скорость поступления / отдачи его из вне. Например клиент будет отправлять запрос на 300b со скоростью 8bit/sec, такой запрос проживет 37.5sec. Так же есть еще сетевые издержки.
Железо не стоит брать с расчетом в 100% нагрузку, это путь в никуда.
Ответ написан
opium
@opium
Просто люблю качественно работать
Если вы по юдп то почти да, так как служебную информацию вы не учли
По тисипи работать в одну сторону нельзя
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы