Построение флейм-графиков с помощью FE Profiler
Введение
В Apache Doris 2.1.4 и более поздних версиях в каталоге развертывания FE ${DORIS_FE_HOME}/bin поставляется скрипт profile_fe.sh. Скрипт использует async-profiler для построения флейм-графика FE, который помогает выявить узкие места в производительности FE.
Поддерживаемые системы
| Система | Поддерживается |
|---|---|
| Linux | Да |
| macOS | Да |
| Windows | Пока нет |
Порядок использования
1. Запустите profile_fe.sh
# Profile the FE for 10 seconds by default and generate a flame graph
${DORIS_FE_HOME}/bin/profile_fe.sh
# Profile the FE for 30 seconds and generate a flame graph
PROFILE_SECONDS=30 ${DORIS_FE_HOME}/bin/profile_fe.sh
| Переменная окружения | Значение | По умолчанию |
|---|---|---|
PROFILE_SECONDS | Длительность сбора данных async-profiler (в секундах) | 10 |
2. Запустите нагрузку
После запуска команды async-profiler собирает данные в течение указанного времени. В этот период многократно отправляйте целевые запросы в FE, чтобы async-profiler мог зафиксировать кадры стека для нужных путей выполнения кода.
3. Просмотрите флейм-график
После завершения сбора данных скрипт создает HTML-файл с флейм-графиком в каталоге ${DORIS_FE_HOME}/log. Узкие места в производительности FE обычно выглядят как «плато» (низкие и широкие участки). Оптимизируйте код, соответствующий этим кадрам стека.
Пример флейм-графика:

Использование async-profiler в старых версиях FE
Для версий Doris, предшествующих 2.1.4, вручную скачайте следующие два файла:
- Скачайте ap-loader-all-3.0-8.jar в каталог
${DORIS_FE_HOME}/lib. - Скачайте profile_fe.sh в каталог
${DORIS_FE_HOME}/bin. - Запустите
profile_fe.sh, чтобы построить флейм-график.
Часто задаваемые вопросы
Вопрос: На флейм-графике нет кадров стека целевой функции за период сбора данных.
Обычно это означает, что во время сбора данных не выполнялся соответствующий путь обработки запроса. Пока работает profile_fe.sh, многократно отправляйте целевой SQL вручную или с помощью скрипта либо увеличьте длительность сбора данных с помощью PROFILE_SECONDS=30.
Вопрос: Как выбрать между FE Profiler и Arthas?
profile_fe.sh: подход на основе скрипта с фиксированной длительностью сбора данных, подходящий для быстрого разового построения флейм-графика.- Arthas: интерактивный терминал, поддерживающий
trace,watchи другие средства более подробного наблюдения за работой программы во время выполнения; подходит для углубленного анализа.