Облачные вычисления и центры обработки данных

Cloudflare предоставляет мгновенное профилирование Workers и Durable Objects с помощью пламенных графиков

Cloudflare запустила профилирование использования процессора и памяти по запросу для сервисов Workers и Durable Objects в производственной среде с отображением результатов в виде интерактивных пламенных графиков. Инструмент помогает выявлять узкие места производительности и утечки памяти, однако требует наличия трафика во время сеанса профилирования и не фиксирует все проблемы запуска.

2026-10-09
3 мин. чтения
2 просмотров
certi.news Editorial Team
Cloudflare предоставляет мгновенное профилирование Workers и Durable Objects с помощью пламенных графиков

Cloudflare объявила о доступности профилирования использования процессора и памяти по запросу для сервисов Workers и Durable Objects. Разработчики могут собирать профили непосредственно в производственной среде и просматривать их в виде интерактивных пламенных графиков. Эта функция позволяет определить функции, потребляющие процессорное время или выделяющие наибольший объём памяти, вместо того чтобы полагаться только на журналы и агрегированные метрики.

Профилирование можно запустить со страницы Workers Observability на панели Cloudflare или через интерфейс командной строки. Разработчик выбирает тип профиля — CPU или memory — и продолжительность сбора, а также может выбрать разные версии Worker. После завершения сеанса можно просмотреть интерактивный график и скачать файл профилирования для анализа с помощью других инструментов.

Что показывают пламенные графики?

Каждый прямоугольник на графике представляет вызов функции, а его ширина отражает объём связанного с ней процессорного времени или памяти. Можно нажимать на функции, чтобы сосредоточиться на них, или использовать табличное представление для сортировки результатов по числу образцов. Cloudflare рекомендует собирать несколько профилей и искать самые широкие функции, а также включать source maps в проектах TypeScript, чтобы имена функций не отображались в нечитаемом виде.

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

cf workers versions profile latest --worker-id "$WORKER_ID_OR_NAME" --duration-ms 5000 --profile-type cpu > worker-cpu.pprof

Практические результаты, представленные Cloudflare

Cloudflare использовала инструмент для анализа Worker, реализующего привязку R2. Профилирование показало, что функция genericR2JsonReplacer повторно проходила дерево JSON во время выполнения JSON.stringify, из-за чего в некоторых случаях вложенное значение обрабатывалось пять раз. После исправления функция стала работать в 2,7 раза быстрее. Профилирование также выявило повторный вызов metrics; сохранения результата и его повторного использования оказалось достаточно, чтобы снизить потребление процессора.

В другом случае один из Workers превышал лимит памяти в 128 мегабайт: потребление P999 достигало примерно 133 мегабайт, что приводило к ошибкам «Exceeded Memory». Профиль heap показал, что код Prometheus, отвечавший примерно за 66,7% выделений, всё ещё частично выполнялся, хотя считалось, что он отключён. После полного удаления этого участка кода значение P999 снизилось со 133 до 118 мегабайт, а P50 — с 70 до 54 мегабайт.

Что меняется на практике?

Эта функция даёт командам разработки прямое представление о выполнении Workers в реальных условиях, где трафик и распределение изоляций могут отличаться от локальной среды разработки. Платформа учитывает сложность распределения Workers между несколькими центрами обработки данных и устройствами, а в Durable Objects разработчик может указать объект по имени, чтобы получить профиль именно той изоляции, в которой он выполняется.

Механизм выполнения сохраняет возможность принимать запросы во время сбора: блокировка изоляции удерживается только при запуске и остановке профилирования, после чего образцы CPU собираются с интервалом в одну миллисекунду в течение заданного периода. Durable Objects используют свою природу с сохранением состояния, чтобы направить запрос на профилирование к изоляции и владельцу указанного объекта.

Ограничения и следующий шаг

Профилирование не запускается автоматически, поэтому сеанс может пропустить короткие или редкие периоды, в которые возникает проблема. Профилировщик памяти показывает только выделения, произошедшие в течение окна измерения, и не обязательно зафиксирует потребление, связанное с запуском. Cloudflare сообщает, что работает над непрерывным профилированием, которое будет автоматически собирать образцы и позволит позднее просматривать их на панели управления.

Источник новости
c
Автор

certi.news Editorial Team

В той же категории

Вам также может понравиться

Все новости