При измерении производительности легко получить какие-нибудь данные, но эти данные далеко не всегда отражают реальность, причиной тому может быть как новый эффект, так и неправильная обработка информации в реальном времени. В докладе рассматриваются основные проблемы существующих решений + примеры и цифры на основе опыта одного open source проекта. Основное внимание уделяется измерению latency и быстрым счётчикам, также рассмотрены сэмплирование, генерация случайных чисел и распределённая обработка измеряемых данных.
5. Проблемы измерения
Адекватность самих измерений1
Импульс в квантовой механике1
Масса отдельных частей
здорового человека1
Адекватность обработки1
Средняя температура по больнице
38. Folsom (библиотека)
Базируется на ETS1
Поддерживает счётчики, одиночные
значения, гистограммы и “истории”1
Прост в использовании1
Не поддерживает экспорт метрик1
https://github.com/boundary/folsom
45. Exometer (библиотека)
Больше видов гистограмм1
Включает folsom1
Кастомизация представления
метрики1
Отправка в графит/statsd или вывод
на экран1
https://github.com/Feuerlabs/exometer
48. HDR Histogram
Специализируется на временных
задержках1
Реализована на Си1
Нет потоковой безопасности1
https://github.com/HdrHistogram/
hdr_histogram_erl
66. Скорость генерации
Random
Timestamp
SSL random
Erlang now
0,01 1 100
0,3
2
0,2
0,7
8
38
0,04
0,2
Random
Timestamp
SSL random
Erlang now
0,01 0,1 1 10 100
0,5
2
0,4
0,7
3
79
0,2
0,04
Время в секундах на
3*106 операций
больше=хуже
laptop 4 ядра
с4.8xlarge 36 ядер
1 поток
зелёный
300 потоков
синий цвет