# perforator

Published articles for perforator.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Profiling a Yandex Food PHP monolith to identify CPU usage and reduce allocated cores

DevFeed: [Profiling a Yandex Food PHP monolith to identify CPU usage and reduce allocated cores](<https://devfeed.tech/articles/1000-80-cpu-24892.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/yandex/articles/1078050/>)

Author: m03r (Яндекс)

Published: 2026-09-08T07:31:51Z

Content type: article

Language: ru

Sources: [Яндекс - Как мы делаем Яндекс / Статьи](<https://devfeed.tech/sources/source.md>)

Topics: [PHP](<https://devfeed.tech/topics/php.md>), [cpu](<https://devfeed.tech/topics/cpu.md>), [eBPF](<https://devfeed.tech/topics/ebpf.md>), [Linux](<https://devfeed.tech/topics/linux.md>)

Tags: [cpu](<https://devfeed.tech/tags/cpu.md>), [ebpf](<https://devfeed.tech/tags/ebpf.md>), [haproxy](<https://devfeed.tech/tags/haproxy.md>), [linux](<https://devfeed.tech/tags/linux.md>), [perforator](<https://devfeed.tech/tags/perforator.md>), [php](<https://devfeed.tech/tags/php.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>)

### AI overview

A backend developer describes investigating unexpectedly high CPU usage in a legacy PHP monolith at Yandex Food. By profiling the application with Perforator and its PHP support, the investigation examined why CPU consumption was unusually high and how the allocated capacity could be reduced.

### Source excerpt

Всем привет, меня зовут Миша, и я бэкенд-разработчик в платформе Яндекс Еды. Я уже рассказывал, как мы анализировали наш PHP-монолит и вынесли из него процессинг заказов, и с тех пор роль этого легаси заметно уменьшилась. Заодно туда стали писать гораздо меньше нового кода, релизы стали реже, и он спокойненько себе работал, не привлекая лишнего внимания. Так оно бы и продолжалось, но тут случилась повышенная нагрузка и необходимость зарезервировать побольше мощностей для беспроблемной обработки повышенного спроса. Монолит справился на отлично, но самое интересное случилось потом: возвращая выделение ресурсов к прежним значениям, я случайно обратил внимание, что RPS в пиковые вечерние часы как-то подозрительно совпадает с количеством ядер CPU, выделенных на весь монолит. Количество выделенных ядер, конечно, ещё ничего не означает, поэтому я полез смотреть реальное потребление процессорного времени, сложив CPU usage по всем подам. С помощью нехитрой арифметики я обнаружил, что 100% загрузки одного ядра приходятся на 2,5 RPS. Какое-то время я находился в состоянии глубокого изумления, после чего решил, что это никуда не годится, и отправился в увлекательное приключение на 20 минут. Немного спойлеров: дело оказалось далеко не только в PHP. Читать далее

## Куда уходит память? Семплирующее профилирование колонок с Алисой в проде

DevFeed: [Куда уходит память? Семплирующее профилирование колонок с Алисой в проде](<https://devfeed.tech/articles/article-24865.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/yandex/articles/1054774/>)

Author: Cthutq66a (Яндекс)

Published: 2026-07-16T07:02:46Z

Content type: tutorial

Language: ru

Sources: [Яндекс - Как мы делаем Яндекс / Статьи](<https://devfeed.tech/sources/source.md>)

Topics: [Linux](<https://devfeed.tech/topics/linux.md>), [c/c++](<https://devfeed.tech/topics/c-c-plus-plus.md>)

Tags: [arm](<https://devfeed.tech/tags/arm.md>), [c](<https://devfeed.tech/tags/c.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [linux](<https://devfeed.tech/tags/linux.md>), [memory](<https://devfeed.tech/tags/memory.md>), [perfetto](<https://devfeed.tech/tags/perfetto.md>), [perforator](<https://devfeed.tech/tags/perforator.md>), [tag-2d1d9199270a](<https://devfeed.tech/tags/tag-2d1d9199270a.md>), [tag-4004cf5948d3](<https://devfeed.tech/tags/tag-4004cf5948d3.md>), [tag-967d8467ce56](<https://devfeed.tech/tags/tag-967d8467ce56.md>), [tag-d346fb5ae499](<https://devfeed.tech/tags/tag-d346fb5ae499.md>)

### AI overview

The article explains how Yandex analyzes memory consumption in production across Linux smart speakers with Alice. It focuses on inexpensive sampling of dynamic allocations because the devices have limited memory and full allocation tracing is too costly. The article compares tools such as Perfetto with heapprofd and Perforator and describes constraints including memory, flash storage, and 32-bit ARM compatibility.

### Source excerpt

Типичная умная колонка с Алисой -- это скромное железо и совсем немного оперативной памяти: у младших моделей её всего 256 МБ на всё устройство сразу. И за каждый мегабайт идёт настоящая борьба между множеством команд и компонентов: бизнес-логикой, обработкой звука, локальными нейросетями. Ежедневно мы собираем и анализируем memory-дампы с миллионов колонок -- нам важно понимать, куда уходят эти драгоценные мегабайты. Меня зовут Сергей, я работаю в команде, которая пишет прикладной код на C/C++ для умных устройств с Алисой (например, колонок, телевизоров и автомобилей). Под катом расскажу, как мы построили и используем инструмент для анализа потребления памяти в проде на нашем флоте Linux-колонок. Читать далее