Перейти к содержимому
Последнее обновление

Построение флейм-графиков с помощью 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, вручную скачайте следующие два файла:

  1. Скачайте ap-loader-all-3.0-8.jar в каталог ${DORIS_FE_HOME}/lib.
  2. Скачайте profile_fe.sh в каталог ${DORIS_FE_HOME}/bin.
  3. Запустите profile_fe.sh, чтобы построить флейм-график.

Часто задаваемые вопросы​

Вопрос: На флейм-графике нет кадров стека целевой функции за период сбора данных.

Обычно это означает, что во время сбора данных не выполнялся соответствующий путь обработки запроса. Пока работает profile_fe.sh, многократно отправляйте целевой SQL вручную или с помощью скрипта либо увеличьте длительность сбора данных с помощью PROFILE_SECONDS=30.

Вопрос: Как выбрать между FE Profiler и Arthas?

  • profile_fe.sh: подход на основе скрипта с фиксированной длительностью сбора данных, подходящий для быстрого разового построения флейм-графика.
  • Arthas: интерактивный терминал, поддерживающий trace, watch и другие средства более подробного наблюдения за работой программы во время выполнения; подходит для углубленного анализа.