Назад | Перейти на главную страницу

Является ли модуль RRD Ganglia узким местом?

Я хочу отслеживать МНОГО метрик на множестве машин, и на веб-сайте Graphite я заметил, что компонент RRD ганглиев, вероятно, создает проблему масштабируемости из следующего FAQ, объясняющего, почему вообще было изобретено шепот. Если проблема не решена (мне нравится webapp от ganglia2), мне интересно, есть ли способ использовать gweb2 для чтения данных шепотом.

"Вторая причина, по которой был написан Whisper, - это производительность. RRDtool очень быстр, на самом деле он намного быстрее, чем Whisper. Но проблема с RRD (в то время, когда был написан Whisper) заключалась в том, что RRD позволяет вставлять только одно значение в базу данных за раз, в то время как шепот был написан так, чтобы можно было вставлять сразу несколько точек данных, сжимая их в одну операцию записи. Причина, по которой это значительно повышает производительность при высокой нагрузке, заключается в том, что Graphite работает со многими множеством файлов и с такими маленькими выполняемых операций (напишите несколько байтов здесь, несколько там и т. д.), узкое место вызвано количество операций ввода / вывода. Рассмотрим сценарий, в котором Graphite получает 100 000 различных значений метрики каждую минуту, чтобы выдержать эту нагрузку, Graphite должен иметь возможность записывать такое количество точек данных на диск каждую минуту. Но предположим, что ваше базовое хранилище может обрабатывать только 20 000 операций ввода-вывода в минуту. С RRD (на тот момент писали шепотом) шансов угнаться не было. Но с помощью шепота мы можем продолжать кэшировать входящие данные до тех пор, пока не накопим, скажем, 10 минут данных для данной метрики, а затем вместо выполнения 10 операций ввода-вывода для записи этих 10 точек данных шепот может сделать это за 1 операцию. Причина, по которой я все время упоминал «во время написания шепота», заключается в том, что RRD теперь поддерживает такое поведение. Однако Graphite будет продолжать использовать шепот, пока существует первая проблема ».

Проблема, упомянутая в FAQ по шепоту, которая была решена, называется «RRDCacheD». И да, ганглии могут быть настроены для использования этого, согласно http://sourceforge.net/apps/trac/ganglia/wiki/rrdcached_integration , что должно значительно улучшить производительность ввода-вывода ганглиев.