среда, 9 февраля 2022 г.

[prog.c++] Вспомнил давеча про aragata

Где-то с год назад мы открыли разработку под названием arataga. Это был прокси-сервер, который делали под специфические запросы, но который остался невостребованным. Немного о том, что, как и почему можно прочитать в посте годичной давности.

Давеча довелось вспомнить про этот проект. Ну раз довелось, то почему бы и не посвятить этой теме небольшой пост, с картинками :)

Когда открывали arataga в январе 2021-го это был всего лишь работающий прототип, протестировать который под реальной нагрузкой у нас не было возможности.

Но вот в апреле-мае 2021 такая возможность появилась.

Погоняли на реальных серверах по реальными запросами реальных пользователей, посмотрели что к чему. Что-то подшаманили и, местами, стало намного лучше. Так что arataga, по моему мнению, перешел из категории прототипов во вполне себе работающий продукт. Недостаточно проверенный реальной эксплуатацией, к сожалению, но все-таки.

О том, что было сделано в arataga по следам натурных испытаний мы даже рассказали в виде статьи на Хабре. А потом еще и сделали презентацию на тему arataga (вот она на slideshare, а отсюда ее можно взять в PDF). Так что, если кому-то интересно, то можно ознакомиться.

Я же позволю себе в этом посте опубликовать две картинки. Это скриншоты, которые я делал во время испытаний на реальном трафике.

Первая картинка -- это загрузка сервера с работающим старым прокси. Этих прокси там запущено четыре экземпляра. Такая схема была выбрана в процессе сопровождения, поскольку в единственном экземпляре нагрузку держать уже не получалось.

Интересные циферки можно увидеть: в каждом из экземпляров старого прокси работает больше 4K нативных тредов. Это то, к чему приводит использование модели thread-per-connection. Причем это еще слабо нагруженный сервер, доводилось видеть картинки, когда в каждом экземпляре работало более чем по 13K тредов и более...

Вторая картинка -- это загрузка того же сервера, но уже с работающим на нем новым aragata.


Решение открыть arataga до сих пор считаю правильным. Хотя дивидендов нам это пока никаких не принесло.

Тем не менее, пусть лежит в открытом доступе. Отличный пример того, что мы можем делать. И как мы это можем делать. Вдруг когда-то да и стрельнет.