Мы пытаемся использовать Graphite для графической веб-системы (почти) в реальном времени. Однако мы не можем ускорить графит быстрее, чем скорость обновления 1 секунды. В конечном итоге мы хотели бы получать обновления 100 мс.
Из чтения FAQ кажется, что графит быстрый - но это либо вводит в заблуждение, либо я не понимаю, как ускорить графит.
информация о времени для шепота, похоже, использует временные метки UNIX
Насколько масштабируем графит?
С точки зрения ЦП, Graphite масштабируется по горизонтали как на внешнем, так и на внутреннем интерфейсе, что означает, что вы можете просто добавить больше машин в микс, чтобы увеличить пропускную способность. Это также отказоустойчиво в том смысле, что потеря серверной машины приведет к потере минимального объема данных (независимо от того, что эта машина кэшировала в памяти) и не нарушит работу системы, если у вас остается достаточно ресурсов для обработки нагрузки.
С точки зрения ввода-вывода, под нагрузкой Graphite очень быстро выполняет множество крошечных операций ввода-вывода с большим количеством разных файлов. Это связано с тем, что каждая отдельная метрика, отправляемая в Graphite, хранится в собственном файле базы данных, подобно тому, как много инструментов (drraw, Cacti, Centreon и т. Д.), Созданных поверх RRD, работают. Фактически, Graphite изначально использовал RRD для хранения, пока не возникли фундаментальные ограничения, которые потребовали нового механизма хранения.
Большой объем (несколько тысяч различных показателей обновляются ежеминутно) в значительной степени требует хорошего RAID-массива. Серверная часть Graphite кэширует входящие данные, если диски не могут справиться с большим количеством выполняемых небольших операций записи (каждая точка данных занимает всего несколько байтов, но большинство дисков не могут выполнять более нескольких тысяч операций ввода-вывода в секунду, даже если они крошечные). Когда это происходит, движок базы данных Graphite, шепотом, позволяет Carbon записывать сразу несколько точек данных, таким образом увеличивая общую пропускную способность только за счет сохранения избыточных данных в кэш-памяти в памяти до тех пор, пока они не будут записаны.
Насколько графики в реальном времени?
Очень. Даже при большой нагрузке, когда количество метрик, поступающих в каждый временной интервал, намного превышает скорость, с которой ваша система хранения может выполнять операции ввода-вывода, и множество точек данных кэшируется в конвейере хранилища (см. Предыдущий вопрос для объяснения. ), Graphite по-прежнему рисует графики в реальном времени. Хитрость заключается в том, что когда веб-приложение Graphite получает запрос на построение графика, оно одновременно извлекает данные с диска, а также из кэша предварительного хранения (который может быть распределен, если у вас несколько внутренних серверов) и объединяет два источника данные для создания графика в реальном времени.
Также здесь отображаются только секунды и не дробные точки: http://graphite.readthedocs.org/en/latest/config-carbon.html и from and until must be a time specification conforming to the AT-STYLE time specification described
здесь: http://oss.oetiker.ch/rrdtool/doc/rrdfetch.en.html. http://graphite.wikidot.com/url-api-reference
Так что это? Графит быстрый? или это просто быстрая обработка больших наборов данных - мы ищем простой в использовании веб-приемник пакетных данных для визуального отображения - Graphite казался отличным решением, но теперь, когда все это настроено и запущено, я предполагаю, что мы просто потратили впустую много времени
Спасибо!