The OpenNET Project / Index page

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

Инструментарий для наглядной оценки проблем с производительностью

20.03.2012 14:07

Брендан Грег (Brendan Gregg), один из разработчиков DTrace, представил проект FlameGraph, одна из областей использования которого связана с выявлением узких мест, влияющих на производительность ядра Linux. FlameGraph создан как средство для наглядной визуализации проблемных мест в ядре, потребляющих наибольшее число процессорных ресурсов. Код проекта написан на языке Perl и открыт под лицензией CDDL.

В качестве исходных данных поддерживается сбор информации о состоянии системы через такие механизмы, как DTrace, perf_events и SystemTap. Практически, FlameGraph может визуализировать не только статистику работы ядра, но и данные о выполнении любых приложений, которые могут быть получены при помощи вышеотмеченных инструментов DTrace, perf_events и SystemTap. На графиках также могут быть проанализированы сетевые операции, файловый ввод/вывод, статистка выполнения процессов и другие данные. Результаты анализа генерируются в виде графика, экспортируемого в формате SVG.

Формирование графика производится в три этапа: накопление данных, сброс накопленной статистики и создание графика. Например:


   perf record -a -g -F 1000 sleep 60
   perf script | ./stackcollapse-perf.pl > out.perf-folded
   cat out.perf-folded | ./flamegraph.pl > perf-kernel.svg

Последний этап можно расширить, отфильтровав только интересующую информацию (например, статистику по потреблению CPU, работе ext4 или определённым системным вызовам):


   grep -v cpu_idle out.perf-folded | ./flamegraph.pl > nonidle.svg
   grep ext4 out.perf-folded | ./flamegraph.pl > ext4internals.svg
   egrep 'system_call.*sys_(read|write)' out.perf-folded | ./flamegraph.pl > rw.svg

Как правило в результате работы DTrace, perf_events и SystemTap накапливается большой объем данных. Обобщённую информацию можно получить при помощи команды "perf report", но результаты достаточно трудны для анализа, так как отчёт создаётся в текстовом представлении, как правило на нескольких страницах, которые невозможно сразу охватить взглядом и требуется сопоставление относительных процентов. В случае FlameGraph данные представлены на одном экране с выделением цветом проблемных мест и возможностью получения подробностей при наведении курсора на интересующую область.

Для сравнения, часть вывода "perf report":



  1. Главная ссылка к новости (http://dtrace.org/blogs/brenda...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/33403-linux
Ключевые слова: linux, kernel, perl, dtrace, systemtap, statistic, analyze, monitoring, profile
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (12) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, Аноним (-), 15:09, 20/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Я джва года этого ждал. Нет, серьезно, я заколебался в цифры втыкать, графики для обзора ситуации в целом - самое то.
     
     
  • 2.5, Ваня (??), 15:20, 20/03/2012 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Графики - !Ъ. Вывод в консоль с последующим разбором скриптами - Ъ!
     
     
  • 3.6, XoRe (ok), 15:36, 20/03/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Графики - !Ъ.

    Особенно ASCII-графики =)

     
     
  • 4.10, pavlinux (ok), 16:13, 20/03/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А чё?! http://i32.fastpic.ru/big/2012/0320/b8/e7d11e9fc4a73a07cd95bf206774dcb8.png
     
     
  • 5.29, XoRe (ok), 23:37, 21/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > А чё?! http://i32.fastpic.ru/big/2012/0320/b8/e7d11e9fc4a73a07cd95bf206774dcb8.png

    Вам все хиханьки, а я вполне серьёзно.
    У меня в свое время лог зашумленности сети велся как-то так:
    |**********        | 40%
    |****                  | 20%
    |*******              | 30%
    |*****                 | 25%
    ...

    2d график, поддающийся парсингу и аналитике =)

     

  • 1.15, Аноним (-), 18:56, 20/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Народ, кто в курсе, данные позволяют получать такой же подробный отчет как после Devel::NYTProf ?
     
     
  • 2.27, TS (ok), 15:19, 21/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Это ж трейс ядра, а не Perl.
    Я как раз щас плотно занимаюсь трейсом Perl на Systemtap - но результаты не радуют, честно сказать - до Devel::NYTProf там как до Луны... :(
     
     
  • 3.28, Аноним (-), 23:20, 21/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >Это ж трейс ядра, а не Perl.

    Я все понимаю. Ну а вопрос был про уровень детализации и Devel::NYTProf здесь упомянут лишь для сравнения (Perl тут не при чем).

    >Я как раз щас плотно занимаюсь трейсом Perl на Systemtap - но результаты не радуют, честно сказать - до Devel::NYTProf там как до Луны... :(

    Благодарю за ответ.

     

  • 1.30, Аноним (-), 02:00, 24/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    CDDL… Благодаря этой лицензии этот проект проанализируют и перепишут под GPL… как это было с ZFS :)

    Неужели сторонники GPL настолько фанатики лицензии?
    Неужели они не могут взять и использовать модуль ядра, который написан под лицензией CDDL?
    После перехода GCC на GPLv3 от этого компилятора отказалась BSD, а после — Apple… А потом LLVM стал более популярным, чем GCC

     
     
  • 2.31, XoRe (ok), 04:02, 24/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > CDDL… Благодаря этой лицензии этот проект проанализируют и перепишут под GPL…
    > как это было с ZFS :)
    > Неужели сторонники GPL настолько фанатики лицензии?
    > Неужели они не могут взять и использовать модуль ядра, который написан под
    > лицензией CDDL?
    > После перехода GCC на GPLv3 от этого компилятора отказалась BSD, а после
    > — Apple… А потом LLVM стал более популярным, чем GCC

    Иногда интересно узнать, что было бы с IT, если бы не было Столлмана с его твердостью убеждений.

     
  • 2.32, anonymous (??), 11:39, 24/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Неужели сторонники GPL настолько фанатики лицензии?
    > Неужели они не могут взять и использовать модуль ядра, который написан под
    > лицензией CDDL?

    Неужели сторонники EULA настолько фанатики лицензии?
    Неужели пожилая учительница не может просто взять и использовать копию Windows, не отдавая американским корпорациям последние деньги?

    > А потом LLVM стал более популярным, чем GCC

    Х(

     
     
  • 3.33, Аноним (-), 22:24, 26/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >> Неужели сторонники GPL настолько фанатики лицензии?
    >> Неужели они не могут взять и использовать модуль ядра, который написан под
    >> лицензией CDDL?
    >Неужели сторонники EULA настолько фанатики лицензии?
    >Неужели пожилая учительница не может просто взять и использовать копию Windows, не отдавая американским корпорациям последние деньги?

    +1. Лучшего ответа не найти.

     

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



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

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