Некоторое время назад мне пришла задача спроектировать высокопроизводительный балансировщик нагрузки для протокола Diameter. Через 3 месяца задача исчезла, так как как оказалось слишком долго и дорого, но в итоге балансировщик был сделан и имеется его MVP которое готово к установке как на реальное железо так и в облаке. В итоге продукт получился неплохим, и он с лихвой выигрывал имееющееся решение в той компании, по производительности был выигрыш раз в 6 по ресурсам раз в 100. Но суть не в этом, а в том что балансировщик был кластерным и умел хранить сессии в Redis. Решение было сделано, оно показало работоспособность, все хорошо, но меня не устраивала производительность. В тот момент я столкнулся с очень интересной проблемой - по каким то причинам я не мог пробить барьер в 5-7К Diameter Transactions per second. В принципе 5-7К TPS было неплохо, но проблемным участком как показал анализ был Redis. Проведя немного времени я смог добиться приемлемого результать и производительность подня
Преамбула
Некоторое время назад передо мной встала задача спроектировать высокопроизводительный балансировщик нагрузки для протокола Diameter. Через три месяца проект на стороне заказчика свернули — решение показалось слишком долгим и дорогим в разработке. Тем не менее, я довел дело до конца и собрал MVP, готовый к развертыванию как на «голом железе», так и в облачной инфраструктуре.
Продукт получился отличным: он с лихвой выигрывал у имевшегося в компании решения, превосходя его по производительности примерно в 6 раз, а по эффективности использования ресурсов — почти в 100 раз.
Но речь сейчас не о самом балансировщике, а об одной из его ключевых частей. Балансировщик был кластерным и хранил сессии в Redis. Система работала, функциональность была подтверждена, но меня категорически не устраивала производительность. Я столкнулся с удручающим барьером: по непонятным на первый взгляд причинам система упиралась в 5 000–7 000 Diameter Transactions Per Second (TPS).
Похожие статьи
Аргументы и Факты
Аргументы и Факты
Испуг прошел. Появилось объяснение заявлениям Стубба о связях с РФ
В ближайшие несколько недель или месяцев западным странам стоит наладить контакты с Россией, заявил финский лидер.
Синхронисты Румянцева и Захаров победили на юниорском чемпионате мира в технической программе микст-дуэтов
Россияне Алина Румянцева и Захар Трофимов завоевали золото юниорского чемпионата мира по синхронному плаванию в технической программе среди смешанных дуэтов.
CAS увеличил на год срок дисквалификации российского легкоатлета Михаила Акименко
Спортивный арбитражный суд (CAS) увеличил срок дисквалификации серебряного призёра чемпионата мира – 2019 в прыжках в высоту Михаила Акименко за нарушение антидопинговых правил.
Стали известны подробности взрыва на заводе боеприпасов в Италии
Взрыв на заводе боеприпасов KNDS под Римом произошел в неиспользуемом складском помещении, где не было сотрудников и материалов. Прокуратура исключила диверсию.