TGViewer
Сохранёнки программиста Сохранёнки программиста @prog_stuff · 6.51K subscribers
Post #3053 181
Почему BPF LPM trie замедляется с ростом таблицы префиксов

Обстоятельный разбор сбоя Cloudflare в продакшене начинается с блокировки процессора: освобождение BPF-карты с миллионами записей заняло более 10 секунд. Автор объясняет устройство trie, поиск самого длинного префикса и ограничения реализации в ядре Linux.

Узлы лишь с двумя потомками заставляют плотную карту проходить цепочку однобитовых сравнений; сжатия уровней нет. Разрозненные адреса узлов дают промахи кэша L1, а примерно с 80 000 записей узким местом становятся промахи dTLB при преобразовании адресов. При миллионе записей скорость поиска падает примерно до 1,5 млн операций в секунду.

Читать стоит разработчикам сетевых сервисов и тем, кто эксплуатирует BPF-карты. Прогоните поиск и освобождение карты на своей плотности ключей и объёме данных: распределение префиксов определяет эффективность сжатия путей.
More from @prog_stuff
  1. Oct 7, 2026Как изолировать медленного WebSocket-клиента При блокирующей отправке клиент, который не у…
  2. Oct 7, 2026Как подготовить Rails-код к параллельной работе через Ractor Глубокий разбор адаптации Rai…
  3. Oct 6, 2026Как Apache Hudi отсекает лишние партиции и файлы Это первая часть обстоятельного разбора и…
  4. Oct 3, 2026Go расширил экспериментальный SIMD без ассемблерных вставок В Go 1.27 разработчики предста…
  5. Oct 3, 2026Отредактировал снимок билета без сброса криптографической даты В стандарте C2PA подпись св…
  6. Oct 3, 2026Как искать баги, которые не воспроизводятся в тестах В обстоятельном разборе трёх расследо…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →