The OpenNET Project / Index page

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

Яндекс открыл Perforator, инструментарий для профилирования приложений

30.01.2025 16:31

Компания Яндекс объявила об открытии исходного кода инструментария Perforator, предназначенного для непрерывного сбора детальных метрик с информацией о работе приложений и рассчитанного на использование в крупных кластерах и датацентрах. Инструментарий позволяет анализировать работу приложений в реальном времени, оценивать распределение ресурсов на Linux-серверах и выявлять наиболее ресурсоёмкие приложения. Код написан на языке С++ и распространяется под лицензией MIT (eBPF-программы под GPLv2).

В Яндекс Perforator развёрнут в кластере, насчитывающем более 10 тысяч узлов, и применяется для выявления и исправления проблем с производительностью в различных сервисах, включая Яндекс Поиск и Яндекс Рекламу. Отмечается, что Perforator способствовал устранению узких мест и оптимизации ресурсоёмких вычислений, благодаря чему компании Яндекс удалось на 20% снизить расходы на серверы.

Заявленные возможности:

  • Использование подсистемы ядра eBPF и API perf_events для сборка сведений о работе компонентов ядра Linux и приложений в пространстве пользователя. Накладные расходы при сборе метрик приводят к снижению производительности примерно на 0.1%. Поддерживается работа только на системах с архитектурой x86-64.
  • Масштабируемое хранилище профилей производительности. Для хранения метаданных профилей используется СУБД ClickHouse, для хранения бинарных метаданных - PostgreSQL, а для хранения raw-профилей и бинарных данных - любые хранилища, совместимые с Amazon S3.
  • Возможность раскрутки стека вызовов (unwinding) без необходимости включения при сборке программ отладочных символов и опции "-fno-omit-frame-pointer" (сохраняет указатель на кадр стека, содержащий адреса возврата и переменные функции).
  • Наличие языка запросов и web-интерфейса для инспектирования нагрузки на CPU при работе приложений.
  • Для наглядной оценки узких мест применяется визуализация в стиле FlameGraph.
  • Возможность профилирования проектов, использующих различные языки и runtime, без внесения изменений в сборочные процессы и без перекомпиляции программ. Заявлена поддержка языков программирования C++, Go, Rust, Java, Python и JavaScript/Node.js.
  • Возможность генерации профилей sPGO для последующей сборки приложений с оптимизациями на основе результатов профилирования кода (PGO - Profile-guided optimization), которые позволяют генерировать более оптимальный код на основе анализа особенностей выполнения программы.
  • Поддержка использования в качестве замены инструментария perf в Linux.
  • Автоматизация развёртывания в кластерах на базе Kubernetes. На каждом узле запускается специальный агент, собирающий, агрегирующий, сжимающий и передающий данные о производительности. Данные передаются агентами в формате, совместимом с pprof, через gRPC в микросервисы, отвечающие за сбор, хранение, анализ, символизацию (преобразование адресов в имена функций и позиции в коде) и обработку профилей и исполняемых файлов (необходимы при раскрутке стека).


  1. Главная ссылка к новости (https://yandex.ru/company/news...)
  2. OpenNews: Яндекс открыл YTsaurus, платформу для обработки и хранения больших объёмов данных
  3. OpenNews: Яндекс открыл код библиотеки машинного обучения CatBoost
  4. OpenNews: Яндекс открыл код фреймворка userver для создания высоконагруженных приложений
  5. OpenNews: Яндекс открыл код распределённой СУБД YDB, поддерживающей SQL
  6. OpenNews: Яндекс опубликовал skbtrace, утилиту для трассировки сетевых операций в Linux
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/62641-yandex
Ключевые слова: yandex, perforator, debug, profiler
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (57) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, дАнон (?), 17:00, 30/01/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +12 +/
    "и выявлять наиболее ресурсоёмкие приложения"

    занялись бы уже Яндекc Go на Андроиде. а то чуть ли не флагман нужен для работы курьером или вызова такси

     
     
  • 2.2, Аноним (2), 17:07, 30/01/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Для вызова такси вообще смартфон не нужен, а проблемы курьеров яндекс не волнуют
     
     
  • 3.4, Аноним (-), 17:15, 30/01/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Я посмотрю как ты по телефону будешь мрашрут по лесу описывать)
     
     
  • 4.11, нах. (?), 17:42, 30/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Я посмотрю как ты по телефону будешь мрашрут по лесу описывать)

    да так и описываешь - "да, там канава, ну она неглубокая и дно чистое, как переехали - сразу направо и потом по просеке налево до упора". А просто по яндекс-точке он и не поедет, потому что "хрен тебя знает, пройдет ли там вообще машина".

     
     
  • 5.34, pic (??), 23:02, 30/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Да в 1,5 тысяч н.п. РФ вообще нет и не было мобильного интернета, канава там дело десятое. Врач, хлеб, связь, полиция (40% нехватка л.с.).
     
  • 4.46, Аноним (46), 23:54, 30/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Сидя рядом с водилой, буду ему словами описывать.
     
     
  • 5.48, dullish (ok), 23:58, 30/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Можно подумать, он по русски понимает. И, нет, полагаю, английский для него тоже не родной.
     
  • 2.18, Аноним (18), 19:26, 30/01/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >занялись бы уже Яндекc Go на Андроиде. а то чуть ли не флагман нужен для работы курьером или вызова такси

    Когда из яндекс разработки пойдут в курьерку, тогда и оптимизируют.

     
  • 2.25, Yandex Man (?), 22:13, 30/01/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это приложение в принципе не может быть быстрым. Потому что на стороне сервера оно написано на микросервисах, которые дергают цепочкой микросервисы. Тех лид Яндекса(Денис Исаев - нереально крутой парень) высказал мнение что это архитектурная ошибка которая тормозит всё приложение и каждый запрос - но пока это никак не изменить. Подбробности: https://youtu.be/229RE8fwMNs
     
     
  • 3.29, Аноним (29), 22:36, 30/01/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну и нахрена спрашивается вообще микросервисы тогда нужны? Все гонялись с ними, а на деле туфта. Так же и с растом будет.
     
     
  • 4.44, wewewe (?), 23:49, 30/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Нужен здравый смысл. И огромный монолит, и по микросервису на каждые три строчки кода - как правило плохие архитектурные решения. Хорошая архитектура - это баланс, а не упороться в какую-нибудь одну концепцию. Аналогично и с растом. Хорошо уметь ловить ошибки работы с памятью, но это не может быть единственной целью, оправдывающей вообще всё.
     
  • 4.49, Аноним (46), 23:58, 30/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А если микросервисы оформить плагинчиками, чтоб без переключения контекста?
     
  • 3.30, Мне хватает (?), 22:39, 30/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Даешь монолит как у дедов было
     
  • 3.31, Аноним (31), 22:39, 30/01/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Денис Исаев - нереально крутой парень

    Денис, сам себя не похвалишь - никто не похвалит.

    Вообще, смотрел этот доклад, что там крутого? Сделали г@вно и хвалятся как через боль стали приводить к нормальному виду. Герои, не иначе.

     
     
  • 4.50, Аноним (46), 00:05, 31/01/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Допфинансирование выбили. Ну не герои, а люди с нормальными потребностями. А если всё сразу делать на отлично, так можно и на морозе остаться. Всё же и так работает.
     
     
  • 5.53, Аноним (31), 00:27, 31/01/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    От Яндекса ждешь как минимум не наступать на такие граблищи. На деле там неопытные студенты многим заведуют.
     
     
  • 6.63, Нуину (?), 00:51, 31/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >  На деле там неопытные студенты многим заведуют

    Ты просто дроче^Wалгосекцию не прошел, вот и бесишься (шутка).

    А по факту да, не хватает им взгляда здорового со стороны. Раньше еще NIH-синдром был очень сильный. Сейчас вроде спадает, хотя может я ошибаюсь.

     
  • 3.62, Нуину (?), 00:48, 31/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Тех лид Яндекса(Денис Исаев - нереально крутой парень) высказал мнение что это архитектурная ошибка которая тормозит всё приложение и каждый запрос - но пока это никак не изменить.

    :D Нереально крутой (хотя не понятно почему) техлид, сказал, что в приложении архитектурная ошибка и ее нельзя поправить? Я все правильно понял? Зато микросервисы и котлин. Сразу вспомнилась история как Маск уволил разраба твиттера (Frohnhoefer) под андроид.

     
  • 2.26, дрыщ (?), 22:15, 30/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    На бюджетных устройствах с UFS-памятью ничего не тормозит вообще.
     
  • 2.54, cheburnator9000 (ok), 00:28, 31/01/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Лол после того как они туда запихали рекламу оно стало тормозить адцки. Видимо perforator никак не хочет находить проблемный код блоков рекламы 🤣

    Я их Go не запускал пару лет. Недавно запустил и был в ужасе, ибо телефон чуть ли не намертво завис. Через пару минут оно проперделось и нарисовало километр рекламы.

     

  • 1.5, Аноним (5), 17:15, 30/01/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    эт чтобы мониторить 10к серверов необходимо еще и 10к серверов для хранения и анализа?
     
     
  • 2.12, Самый Лучший Гусь (?), 17:50, 30/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    10к+1
     
     
  • 3.13, Аноним (5), 17:58, 30/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    аналитег
     
  • 2.27, chdlb (?), 22:17, 30/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    perforator показал что 80% времени сервера трятятся на профилирование
     
  • 2.42, 12yoexpert (ok), 23:32, 30/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    телеметрия сама себя не оттелеметрирует
     
  • 2.47, wewewe (?), 23:55, 30/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Не, там эпсилон железа тратится. Окупится очень быстро.
     

  • 1.7, Аноним (7), 17:23, 30/01/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >компании Яндекс удалось на 20% снизить расходы на серверы

    Вот, начали экономить, чтобы хоть как-то оправиться от многотысячных штрафов:
    https://vc.ru/food/407512

     
     
  • 2.8, Bob (??), 17:29, 30/01/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Намного проще платить штрафы по 60к деревянных, чем деожать инфраструктуру безопасности
     
     
  • 3.21, Аноним (21), 20:13, 30/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Зришь в корень.
     
  • 3.43, pic (??), 23:37, 30/01/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вот штрафы с оборота бы навесить, тогда толк будет, особенно когда сейчас туго с налогами в бюджете.
     
     
  • 4.55, cheburnator9000 (ok), 00:31, 31/01/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Так отдай государству всю свою годичную зарплату в виде налогов. Ему ведь так важна твоя поддержка! Как им иначе пару млрд рублей выделять на _патриотические_ проекты. И попилы.
     
  • 2.10, Аноним (10), 17:39, 30/01/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это для физлица много(и то не для каждого). Яндексу дешевле их выплачивать, чем нанимать ещё сотрудников. Не пойдут же опеннетчики чинить что-то за спасибо и промокод на такси
     
  • 2.39, pic (??), 23:18, 30/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Перфоратор не для этого.

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

    А сейчас даже цап-царап (ц) не получается.
    Выход - оптимизация нагрузок и кода.
    Так бы даже этот инструмент анализа не стали рожать.

    Так что и эти несчастные супераппы в России не приживутся.

     
     
  • 3.45, wewewe (?), 23:52, 30/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > В тучные несанкционные годы им было плевать, железо было доступное, пили любого качества код - серваки всё стерпят, не хватит - добавим.

    Это возможно у вас в ИП Козявкин так было, а в Яндексе всегда железа не хватало. Как минимум, потому что ДЦ не резиновые, и 500к ядер аллоцировать - это не в каком-нибудь облаке ещё пару виртуалок накликать.

     
     
  • 4.52, pic (??), 00:18, 31/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Корпоративная порука?
    Понимаю, но не сочувствую.
     
     
  • 5.59, wewewe (?), 00:38, 31/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Какая ещё порука? Видимо для вас капекс это только фильм с Кевином Спейси, вот я и объясняю, что нет, скорее плевать на оптимизации будет какой-нибудь мелкий бизнес с виртуалкой в чужом облаке, чем большая компания со своими ДЦ.
     
  • 2.51, Аноним (46), 00:08, 31/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А за что их штрафуют? Они честно исполняют обязанности ОРИ.
     

  • 1.9, Тот_ещё_аноним (ok), 17:37, 30/01/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    С нетерпением ждём релиз flugergehaimer от vk group
     
     
  • 2.41, pic (??), 23:23, 30/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Для этих нужно кое-что другое ;)
    Но и это их не спасло бы.
     

  • 1.14, Нуину (?), 18:06, 30/01/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Заявлена поддержка языков программирования  C++, Go, Rust, Java, Python и JavaScript/Node.js

    В Яндексе раст уже разрешили?

     
  • 1.16, Аноним (16), 18:16, 30/01/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    просто фронт к https://github.com/google/autofdo похоже, судя по кишочкам dockerfile.build
     
     
  • 2.40, Аноним (40), 23:20, 30/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Да вроде не очень похоже. Вот кишки какие-то: https://github.com/yandex/perforator/blob/main/perforator/agent/collector/prog
     

  • 1.17, Аноним (17), 18:22, 30/01/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Яндекс, почини уже самокаты с помощью перфоратора. Весь 2024 год были проблемы сними.
     
     
  • 2.28, Аноним (-), 22:19, 30/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Перфоратор - название с юмором конечно.
     
     
  • 3.36, Аноним (21), 23:03, 30/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Плохой нейминг у плохо компании.  
     
  • 3.65, Нуину (?), 01:04, 31/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Где тут юмор?
     

  • 1.23, Аноним (23), 21:41, 30/01/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я вот задумался, а нафига профилировать вообще питон и ноду.жс?

    Если в принципе возникают вопросы к этому, то надо брать и не глядя переписывать.

     
     
  • 2.24, Yandex Man (?), 22:09, 30/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    У яндекса главная страница 20 лет была на перле. Миллион строк на перле если быть точнее.
    Только недавно переписали на golang https://youtu.be/AALxh1mbsTo
     
     
  • 3.35, Аноним (21), 23:03, 30/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    У них и фрибсд была 15 лет назад.
     
  • 3.56, Нуину (?), 00:33, 31/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > У яндекса главная страница 20 лет была на перле

    В докладе явно сказано, что там был перл + v8, который фронтовый код запускал. Переделали на 2 сервиса, а потом уже перловый на го насколько я понял. Логично предположить, что нода на фронте.

     
  • 3.58, Нуину (?), 00:37, 31/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > У яндекса главная страница 20 лет была на перле.

    Интересно на что перепишут новый кот еще через 20 лет...

     
  • 2.57, Нуину (?), 00:35, 31/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Я вот задумался, а нафига профилировать вообще питон и ноду.жс?

    Ну потому что часто не в языке проблема, что тормозит что-то.

     
  • 2.61, wewewe (?), 00:43, 31/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Я вот задумался, а нафига профилировать вообще питон и ноду.жс?

    Хотя бы чтобы понять сколько и зачем оно тратит ресурсов в целом. Это же cluster-wide тулза. Ну и если 95% питонячей тулзы приходится на какую-нибудь сишную либу, то переписывание не очень поможет.

     

  • 1.37, Аноним (-), 23:12, 30/01/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Яндекс открыл Perforator,
    > инструментарий для профилирования приложений

    Для перфорирования приложений, вы хотели сказать? Задолбало яндекс такси? Взал да и профигачил в экране дырку! А инструмент "kuvaldometr" выпустить не планируется? Для сбора фидбэка :)

     
  • 1.38, Михаил Розенталь (-), 23:16, 30/01/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Тындекс может идти на**р. Эти чepти заблoчили почтовый ящик, которым я пользовался 16 лет. Требуют засветить паcпорт или номер тeлeфона. При том что в последнее время я не менял ни комп, ни провайдера, ни браузер, т.е. все как обычно. И вот такой наглости я не стерпел. Хочешь номер телефона? Получай. Скормил фейковый (на разок зайти этого вполне хватит), зашел в почту, выгрузил все что нужно, удалил почту и контакты, удалил сам г**ноящик. Пока юзаю Gmail, но думаю перейти на Proton, благо основная часть контактов юзает Gmail или корпоративные ящики (если что, Proton забанен на всех роccийских пoмoйках вроде Тындекса или Мыла). А то может статься, что и Gmail однажды выкинет что-то подобное.
     
     
  • 2.60, Нуину (?), 00:40, 31/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > А то может статься, что и Gmail однажды выкинет что-то подобное.

    Уже просит же периодически.

     
  • 2.64, Иван Демидов (?), 00:53, 31/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вот это драма. Держите нас в курсе сюжета. Обязательно напишите как броллер 747 совершит посадку.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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