Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Тошнит от колец
Великая битва систем мониторинга
(часть первая)
Александр Чистяков
Давайте познакомимся
• Меня зовут Саша
• Я адепт Церкви Метрик
• Я ненавижу Zabbix
Теперь ваша очередь
• В зале есть еще Саша?
• В зале есть еще адепт Церкви Метрик?
• В зале есть те, кто любит Zabbix?
Что здесь будет происходить?
• Мы возьмем несколько средств сбора и хранения метрик
• Мене, мене, текел, упарсин
• Zabbix ...
Я тебя слепила из того, что было
• Машина для системы мониторинга:
• 39G RAM, 6x300 SAS HDD, Adaptec AAC-RAID
• Write-cach...
Участники забега
• Graphite/Whisper (победитель прошлой Олимпиады)
Участники забега
• Graphite/Whisper (победитель прошлой Олимпиады)
• Prometheus
Участники забега
• Graphite/Whisper (победитель прошлой Олимпиады)
• Prometheus
• InfluxDB
Участники забега
• Graphite/Whisper (победитель прошлой Олимпиады)
• Prometheus
• InfluxDB
• Zabbix
Команда поддержки
• Grafana
• Красивые графики, нарисованные прямо при помощи
испытуемого хранилища
Команда поддержки
• Grafana
• Красивые графики, нарисованные прямо при помощи
испытуемого хранилища
• blktrace и seekwatch...
Погнали!
Graphite/Whisper - метрики хоста
• Мы возьмем несколько средств сбора и хранения
• Мене, мене, текел, упарсин
• Zabbix дол...
Graphite/Whisper - blktrace 120 секунд
• Мы возьмем несколько средств сбора и хра
• Мене, мене, текел, упарсин
• Zabbix до...
Graphite/Whisper - blktrace 30 секунд
• Мы возьмем несколько средств сбора и хра
• Мене, мене, текел, упарсин
• Zabbix дол...
Как устроен Carbon/Whisper
• Много файликов на диске (одна метрика - один файлик)
Как устроен Carbon/Whisper
• Много файликов на диске (одна метрика - один файлик)
• Файлики имеют предопределенный размер
Как устроен Carbon/Whisper
• Много файликов на диске (одна метрика - один файлик)
• Файлики имеют предопределенный размер
...
Как устроен Carbon/Whisper
• Много файликов на диске (одна метрика - один файлик)
• Файлики имеют предопределенный размер
...
Как устроен Carbon/Whisper
• Много файликов на диске (одна метрика - один файлик)
• Файлики имеют предопределенный размер
...
Ситуация в динамике
• Выключим коллектор на 10 машинах (из 26)
Ситуация в динамике
• Выключим коллектор на 10 машинах (из 26)
• Ситуация на графике мало изменилась (retention policy?)
Ситуация в динамике
• Выключим коллектор на 10 машинах (из 26)
• Ситуация на графике мало изменилась (retention policy?)
•...
Ситуация в динамике
• Выключим коллектор на 10 машинах (из 26)
• Ситуация на графике мало изменилась (retention policy?)
•...
Ситуация в динамике
• Выключим коллектор на 10 машинах (из 26)
• Ситуация на графике мало изменилась (retention policy?)
•...
Graphite/Carbon - без 10 хостов
• Мы возьмем несколько средств сбора и хранения
• Мене, мене, текел, упарсин
• Zabbix долж...
Что можно улучшить?
• Текущее retention policy - 11Gb места на диске
• Давайте не будем агрегировать?
Что можно улучшить?
• Текущее retention policy - 11Gb места на диске
• Давайте не будем агрегировать?
• 10s:60d
• 67Gb мес...
Graphite/Whisper - blktrace 120 секунд
• Мы возьмем несколько средств сбора и хра
• Мене, мене, текел, упарсин
• Zabbix до...
Graphite/Whisper - blktrace 30 секунд
• Мы возьмем несколько средств сбора и хра
• Мене, мене, текел, упарсин
• Zabbix дол...
Graphite/Whisper - в динамике
• Мы возьмем несколько средств сбора и хранения
• Мене, мене, текел, упарсин
• Zabbix должен...
Переходим к Prometheus
• Что мы знаем о лисе:
• Pull-модель, метрики забираются по HTTP непосредственно
сервером
Переходим к Prometheus
• Что мы знаем о лисе:
• Pull-модель, метрики забираются по HTTP непосредственно
сервером
• Время у...
Переходим к Prometheus
• Что мы знаем о лисе:
• Pull-модель, метрики забираются по HTTP непосредственно
сервером
• Время у...
Prometheus в динамике
Prometheus - blktrace 120 секунд
• Мы возьмем несколько средств сбора и хра
• Мене, мене, текел, упарсин
• Zabbix должен п...
Prometheus - blktrace 30 секунд
• Мы возьмем несколько средств сбора и хра
• Мене, мене, текел, упарсин
• Zabbix должен пр...
Prometheus - blktrace 1200 секунд
Так неинтересно :(
• Но постойте!
• Как сделать из 26 хостов 260?
Так неинтересно :(
• Но постойте!
• Как сделать из 26 хостов 260?
• Поставить на каждый хост 10 коллекторов
• Репортить ме...
Prometheus - 260 хостов
Prometheus - blktrace 120 секунд
Prometheus - blktrace 30 секунд
Результаты забега
• Graphite/Whisper - почетное последнее место
• Prometheus - новый победитель!
Результаты забега
• Graphite/Whisper - почетное последнее место
• Prometheus - новый победитель!
• Zabbix - дисквалифициро...
НО ПОЧЕМУ?
• Точно так же, как и Carbon/Whisper, Prometheus хранит
метрики в файликах
НО ПОЧЕМУ?
• Точно так же, как и Carbon/Whisper, Prometheus хранит
метрики в файликах
• Файлики записываются на диск порци...
Некоторые замечания
• Просто, легко и быстро писать ИЛИ просто, легко и быстро
читать
Некоторые замечания
• Просто, легко и быстро писать ИЛИ просто, легко и быстро
читать
• Пока метрики помещаются в память -...
Некоторые замечания
• Просто, легко и быстро писать ИЛИ просто, легко и быстро
читать
• Пока метрики помещаются в память -...
Выводы
• Graphite в 2016-м - это довольно смешно
• Не так, правда, смешно, как Zabbix
• Prometheus - лапочка
• Разбудите, ...
Спасибо за внимание!
• Ваши вопросы?
• С вами был Саша Чистяков, alex@gitinsky.com
• http://meetup.com/DevOps-40
Upcoming SlideShare
Loading in …5
×

Тошнит от колец великая битва систем мониторинга, часть I, Александр Чистяков (Git in Sky)

825 views

Published on

В поисках Святого Грааля мы перепробовали почти все системы сбора и хранения метрик — от распределенных до не очень. Несмотря на то, что цели и задачи систем сбора и хранения метрик одинаковы и кажутся очень простыми, нам было очень непросто — доходило до того, что на графиках ничего толком не рисовалось в сложной ситуации.

Уже отчаявшись, мы решили предпринять последнее усилие, вооружившись фактами. А именно: поскольку хранение и обработка time series информации является важнейшей задачей системы сбора и хранения метрик, мы решили измерить производительность, в первую очередь, подсистемы хранения. Для этого мы запаслись относительно недавно появившимися в ядре фреймворком eBPF, утилитой blktrace и визуализатором ее результатов iowatcher, утилитами atop и perf и другим инструментарием современного инженера по оптимизации производительности.

В первой части мы сравним между собой популярные системы сбора и хранения метрик, обычно существующие в рамках одного узла: Graphite, RRDTool, InfluxDB, Prometheus, Zabbix.

Published in: Engineering
  • Be the first to comment

Тошнит от колец великая битва систем мониторинга, часть I, Александр Чистяков (Git in Sky)

  1. 1. Тошнит от колец Великая битва систем мониторинга (часть первая) Александр Чистяков
  2. 2. Давайте познакомимся • Меня зовут Саша • Я адепт Церкви Метрик • Я ненавижу Zabbix
  3. 3. Теперь ваша очередь • В зале есть еще Саша? • В зале есть еще адепт Церкви Метрик? • В зале есть те, кто любит Zabbix?
  4. 4. Что здесь будет происходить? • Мы возьмем несколько средств сбора и хранения метрик • Мене, мене, текел, упарсин • Zabbix должен проиграть
  5. 5. Я тебя слепила из того, что было • Машина для системы мониторинга: • 39G RAM, 6x300 SAS HDD, Adaptec AAC-RAID • Write-cache mode : Enabled (write-back) • Мониторится 26 хостов разных конфигураций • Ubuntu 16.04 на хосте системы мониторинга • Ubuntu 14.04 на остальных хостах • В качестве коллектора выступает collectd
  6. 6. Участники забега • Graphite/Whisper (победитель прошлой Олимпиады)
  7. 7. Участники забега • Graphite/Whisper (победитель прошлой Олимпиады) • Prometheus
  8. 8. Участники забега • Graphite/Whisper (победитель прошлой Олимпиады) • Prometheus • InfluxDB
  9. 9. Участники забега • Graphite/Whisper (победитель прошлой Олимпиады) • Prometheus • InfluxDB • Zabbix
  10. 10. Команда поддержки • Grafana • Красивые графики, нарисованные прямо при помощи испытуемого хранилища
  11. 11. Команда поддержки • Grafana • Красивые графики, нарисованные прямо при помощи испытуемого хранилища • blktrace и seekwatcher • Красивые графики, показывающие куда физически на диске попадают на чтение и запись
  12. 12. Погнали!
  13. 13. Graphite/Whisper - метрики хоста • Мы возьмем несколько средств сбора и хранения • Мене, мене, текел, упарсин • Zabbix должен проиграть
  14. 14. Graphite/Whisper - blktrace 120 секунд • Мы возьмем несколько средств сбора и хра • Мене, мене, текел, упарсин • Zabbix должен проиграть
  15. 15. Graphite/Whisper - blktrace 30 секунд • Мы возьмем несколько средств сбора и хра • Мене, мене, текел, упарсин • Zabbix должен проиграть
  16. 16. Как устроен Carbon/Whisper • Много файликов на диске (одна метрика - один файлик)
  17. 17. Как устроен Carbon/Whisper • Много файликов на диске (одна метрика - один файлик) • Файлики имеют предопределенный размер
  18. 18. Как устроен Carbon/Whisper • Много файликов на диске (одна метрика - один файлик) • Файлики имеют предопределенный размер • Размер зависит от выбора retention policy
  19. 19. Как устроен Carbon/Whisper • Много файликов на диске (одна метрика - один файлик) • Файлики имеют предопределенный размер • Размер зависит от выбора retention policy • Мы начали с policy 10s:2d,60s:14d,300s:60d,1200s:395d
  20. 20. Как устроен Carbon/Whisper • Много файликов на диске (одна метрика - один файлик) • Файлики имеют предопределенный размер • Размер зависит от выбора retention policy • Мы начали с policy 10s:2d,60s:14d,300s:60d,1200s:395d • В момент записи метрики происходит также агрегация значений
  21. 21. Ситуация в динамике • Выключим коллектор на 10 машинах (из 26)
  22. 22. Ситуация в динамике • Выключим коллектор на 10 машинах (из 26) • Ситуация на графике мало изменилась (retention policy?)
  23. 23. Ситуация в динамике • Выключим коллектор на 10 машинах (из 26) • Ситуация на графике мало изменилась (retention policy?) • Остановим carbon, удалим 10 каталогов, запустим
  24. 24. Ситуация в динамике • Выключим коллектор на 10 машинах (из 26) • Ситуация на графике мало изменилась (retention policy?) • Остановим carbon, удалим 10 каталогов, запустим • Ситуация на графике все та же
  25. 25. Ситуация в динамике • Выключим коллектор на 10 машинах (из 26) • Ситуация на графике мало изменилась (retention policy?) • Остановим carbon, удалим 10 каталогов, запустим • Ситуация на графике все та же • Потому что характеристики дисковой подсистемы нелинейны
  26. 26. Graphite/Carbon - без 10 хостов • Мы возьмем несколько средств сбора и хранения • Мене, мене, текел, упарсин • Zabbix должен проигратьcollectd_rootconf
  27. 27. Что можно улучшить? • Текущее retention policy - 11Gb места на диске • Давайте не будем агрегировать?
  28. 28. Что можно улучшить? • Текущее retention policy - 11Gb места на диске • Давайте не будем агрегировать? • 10s:60d • 67Gb места на диске
  29. 29. Graphite/Whisper - blktrace 120 секунд • Мы возьмем несколько средств сбора и хра • Мене, мене, текел, упарсин • Zabbix должен проиграть
  30. 30. Graphite/Whisper - blktrace 30 секунд • Мы возьмем несколько средств сбора и хра • Мене, мене, текел, упарсин • Zabbix должен проиграть
  31. 31. Graphite/Whisper - в динамике • Мы возьмем несколько средств сбора и хранения • Мене, мене, текел, упарсин • Zabbix должен проигратьcollectd_rootconf
  32. 32. Переходим к Prometheus • Что мы знаем о лисе: • Pull-модель, метрики забираются по HTTP непосредственно сервером
  33. 33. Переходим к Prometheus • Что мы знаем о лисе: • Pull-модель, метрики забираются по HTTP непосредственно сервером • Время удержания по умолчанию - 15 дней
  34. 34. Переходим к Prometheus • Что мы знаем о лисе: • Pull-модель, метрики забираются по HTTP непосредственно сервером • Время удержания по умолчанию - 15 дней • Частота забора метрик по умолчанию - раз в 10 секунд
  35. 35. Prometheus в динамике
  36. 36. Prometheus - blktrace 120 секунд • Мы возьмем несколько средств сбора и хра • Мене, мене, текел, упарсин • Zabbix должен проиграть
  37. 37. Prometheus - blktrace 30 секунд • Мы возьмем несколько средств сбора и хра • Мене, мене, текел, упарсин • Zabbix должен проиграть
  38. 38. Prometheus - blktrace 1200 секунд
  39. 39. Так неинтересно :( • Но постойте! • Как сделать из 26 хостов 260?
  40. 40. Так неинтересно :( • Но постойте! • Как сделать из 26 хостов 260? • Поставить на каждый хост 10 коллекторов • Репортить метрики 10 раз с разными префиксами
  41. 41. Prometheus - 260 хостов
  42. 42. Prometheus - blktrace 120 секунд
  43. 43. Prometheus - blktrace 30 секунд
  44. 44. Результаты забега • Graphite/Whisper - почетное последнее место • Prometheus - новый победитель!
  45. 45. Результаты забега • Graphite/Whisper - почетное последнее место • Prometheus - новый победитель! • Zabbix - дисквалифицирован за употребление мельдония • InfluxDB - дисквалифицирован, авторы употребляли псилоцибин
  46. 46. НО ПОЧЕМУ? • Точно так же, как и Carbon/Whisper, Prometheus хранит метрики в файликах
  47. 47. НО ПОЧЕМУ? • Точно так же, как и Carbon/Whisper, Prometheus хранит метрики в файликах • Файлики записываются на диск порциями по 1Kb (1041 байт, если точнее) • Новая порция записывается, только когда она полностью готова
  48. 48. Некоторые замечания • Просто, легко и быстро писать ИЛИ просто, легко и быстро читать
  49. 49. Некоторые замечания • Просто, легко и быстро писать ИЛИ просто, легко и быстро читать • Пока метрики помещаются в память - все хорошо
  50. 50. Некоторые замечания • Просто, легко и быстро писать ИЛИ просто, легко и быстро читать • Пока метрики помещаются в память - все хорошо • Мы имеем дело со средством оперативного мониторинга, период удержания более двух суток вряд ли имеет смысл, период оперативного слежения - около шести часов
  51. 51. Выводы • Graphite в 2016-м - это довольно смешно • Не так, правда, смешно, как Zabbix • Prometheus - лапочка • Разбудите, когда команда InfluxDB что-нибудь зарелизит уже
  52. 52. Спасибо за внимание! • Ваши вопросы? • С вами был Саша Чистяков, alex@gitinsky.com • http://meetup.com/DevOps-40

×