[PHPConf 2009] Pinba - realtime statistics for PHP (lдоклад от tony2001)

Я голосую ...

  • Обязательно включить

    Голосов: 17 100,0%
  • Не включать

    Голосов: 0 0,0%
  • Укажу в топике

    Голосов: 0 0,0%

  • Всего проголосовало
    17
  • Опрос закрыт .

confguru

ExAdmin
Команда форума
Pinba - realtime statistics for PHP (lдоклад от tony2001)

При разработке больших проектов довольно часто бывает, что проблемы с производительностью
всплывают уже после внедрения, не смотря на все предварительные расчеты и тесты.
От этого никак нельзя уйти, но с этим нельзя и мириться.
Пинба помогает разработчикам следить за производительностью их проекта самым детальнейшим образом -
вплоть до конкретных операций на конкретных серверах, что позволяет выявлять узкие места на живом,
рабочем проекте в реальном времени.

Целевая аудитория
Разработчики, системные администраторы

Область применения
Проекты размером выше среднего, с большим объёмом кода.


P.S.
pinba is here
Как некоторые уже знают, мы всё-таки решили вопрос с открытием Пинбы.
Документация, исходники и всё остальное доступно на pinba.org.

Кратко о том, что это и для чего это:
Это демон для сбора статистики о выполнении PHP-скриптов. Статистика есть двух видов - общая (скрипт, время, rusage, объем вывода и др.) и данные по таймерам. Таймеры тут один из ключевых моментов, поэтому они достойны отдельного упоминания, см. ниже.
В то же время, это не standalone-демон, данные собираются отдельным тредом в MySQL. При этом функционал MySQL используется для доступа к данным (которые видны пользователю как обычные таблицы, только read only), т.е. для выборок можно использовать обычный SQL.
Статистика не хранится вечно, это просто невозможно, хранится только актуальная статистика (это понятие для всех разное и конечно это настраивается), так что возьмем для примера 1 000 000 последних запросов или 15 минут - т.е. хранятся все запросы за последние 15 минут, но не более миллиона записей. В зависимости от количества таймеров, эти данные могут занимать от 500Mb до нескольких Gb памяти. На диск, конечно, ничего не пишется.

Подробнее о таймерах:
Таймеры нужны для замеров конкретных частей кода. У таймеров есть "таги" для описания и группировки.
Например, есть у вас коннект к базам - оборачиваете его в таймер с тагами "operation"=>"connect", "db"=>$dbase. В результате мы получаем статистику по одному тагу - "сколько раз в секунду у нас выполняется операция connect и сколько времени она занимает" и по двум - "сколько раз в секунду у нас выполняется операция connect к конкретному серверу и сколько она занимает".
Тагов и таймеров может быть произвольное количество (но про разум не стоит забывать тоже, всё это доп. нагрузка на сервер).

Несколько примеров использования от Фишера: http://pinba.org/wiki/Manual:Usage_examples
Вся документация: http://pinba.org/wiki/Manual
 
Сверху