The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."
Отправлено edge790, 17-Сен-22 16:18 
Сделали на раст просто потому что проще и хорошо подходит.
Отсутствие рантайма и сборщика мусора дадут равномерное время обработки запросов, в отличии от Go, C#, или Java.

Так же у nginx был блокирующий ввод-вывод и Multiprocess + Multithreading. Nginx генерирует worker processes у каждого из которых свои worker connections. Используя этот подход хуже утилизируются процессорные кеши, но по словам nginx - лучше утилизируется сетевое подключение, потому что каждый процесс имеет свой личный порт.

Для Cloudflare это огромный минус, т.к. им очень важен TTFB (Time to first byte - время до первого байта) - сколько времени проходит до получения первого байта полезной информации. Низкий TTFB = ваш процесс висел в ожидании байта, не делая ничего полезного, но потребляя ресурсы. TTFB можно уменьшить разными подходами (например переиспользовать соединение), но многие из них рушатся из-за multiprocess модели - т.к. у каждого процесса свой порт, пошарить коннекшн не получится.

Поэтому в Cloudflare решили заменить Multiprocess и Multithreading на Workstealing Multithreading + убрать блокирующий ввод-вывод. Они это сделали используя tokio.rs

Можно ли было сделать это всё на любом другом языке и добиться таких же результатов? Конечно! Даже на Lua или python проведя достаточно большую работу и изменив их рантайм.
Но rust - самое простое решение. В отличии от некоторых других языков, тут нет рантайма и есть контроль над тем когда и как освобождается память, а так же менеджер пакетов(cargo) который позволит вставить и поддерживать библиотеку которая хорошо подходит под текущие задачи, и легко обновить её в случае каких-либо проблем (в отличии от C/C++).

tl;dr: rust был самым простым вариантом

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру