Как первая часть серии из трех частей на мониторинге Apache Solr Эта статья исследует, какие метрики Solr важны для мониторинга и почему. Вторая часть серии покрывает Инструменты мониторинга открытых источников Solr И определить инструменты и методы, которые вам нужно помочь вам мониторировать и администрировать Solr и SolrCloud в производстве.
Когда сначала думать о установке Solr, вы обычно задаете себе вопрос — я должен пойти с Мастер-рабская среда или я должен посвятить себя SolrCloud ? Этот вопрос останется без ответа в этом посте в блоге, но что мы хотим отметить, что важно знать, какую архитектуру вы будете следить. При работе с Clusters SolrCloud вы не только хотите мониторировать на метрики узла, но и широкую информацию о кластере и Метрики, связанные с зоофильем Отказ
При запуске Solr обычно является решающей частью системы. Он используется в качестве двигателя поиска и анализа для ваших данных — часть этого или всех. Такая критическая часть всей архитектуры необходима, чтобы быть как неисправным, так и доступен. Solr подходит к тому, что двумя способами. Унаследованная архитектура также называется Master-Place — он основан на четком различий между главным сервером, который отвечает за индексацию данных и подчиненные серверы, ответственные за доставку результатов поиска и анализа.
Когда данные нажаты на мастер, он преобразуется в так называемый инвертированный индекс на основе конфигурации, которую мы предоставляем. Инвертированный индикационный индекс на основе диска разделен на более мелкие, неизменные части, называемые сегментами, которые затем используются для поиска. Сегменты также могут быть объединены вместе в более крупные сегменты в процессе, называемом Слияние сегмента По причинам эффективности — тем больше сегментов у вас есть, медленнее ваши поиски могут быть и наоборот.
Как только данные были написаны в виде сегментов на диске магистра, его можно реплицировать на ведомые серверы. Это делается в модели тяги. Серверы подчиненные используют HTTP-протокол для копирования двоичных данных с главного узла. Каждый узел делает это самостоятельно и работает отдельно копирование измененных данных по сети. Мы уже видим дюжину мест, которые мы должны отслеживать и иметь знания о.
Наличие единого главного узла — это не то, что мы будем называть неисправность, из-за того, что имели одну точку отказа. Из-за этого второй тип архитектуры был введен с выпуском Solr 4.0 — SolrCloud Отказ Он основан на предположении, что данные распределены среди практически неограниченного количества узлов, и каждый узел может выполнять индексацию и поиск ролей обработки. Физические копии данных, размещенные в так называемых осколки Может быть создан по требованию в виде физических реплик и реплицируется между ними в ближайшее время в реальном времени, что позволяет для истинного допускания неисправностей и высокой доступности. Однако для этого нам нужно дополнительное программное обеспечение — Apache Zookeeper Кластер, чтобы помочь Solr управлять и настроить его узлы.
Когда данные нажаты на любой из узлов SOLR, которые являются частью кластера, первое, что сделано, является переадресацией данных к осколкам лидера. Лидер хранит данные в журнале записи rested Журнал транзакций и, в зависимости от Тип реплики , отправьте данные на реплику для обработки. Затем данные проиндексируются и записываются на диск в перевернутый формат индекса. Это может вызвать дополнительные требования ввода/вывода — поскольку индексирование данных также может вызвать Слияние сегмента И, наконец, он должен быть освеженным для того, чтобы быть видимым для поиска, что требует еще одной операции ввода-вывода.
Когда вы отправляете поисковый запрос в кластер SolrCloud, узел, который ударит запрос первоначально распространяет данные для осколков, которые необходимо запрашивать Для того, чтобы предоставить полную видимость данных. Каждый распределенный поиск проводится в двух этапах — рассеивается и собирать. Эта фаза рассеяния предназначена для поиска того, какие осколки имеют соответствующие документы, идентификатор этих документов и их оценка. Фаза набора посвящена рендере результатов поиска, извлекая необходимые документы из осколков, которые им проиндексировали. Каждый этап поиска требует ввода/вывода для чтения данных с диска, памяти для хранения результатов и промежуточных шагов, необходимых для выполнения поиска, циклы CPU для расчета всего и сети для транспортировки данных.
Теперь посмотрим, как мы можем отслеживать все эти метрики, которые имеют решающее значение для нашей индексации и поиска.
Один из инструментов, которые выходят из коробки с набором разработки Java и могут пригодиться, когда вам нужно быстро, мониторинг Ad-Hoc — JConsole. Инструмент GUI, который позволяет получить основные метрики о вашем JVM , как Использование памяти , Утилизация ЦП, JVM Threads , загруженные классы. В дополнение к этому также позволяет нам читать метрики, выставленные самим Solr в виде JMX MBeans. Какие метрики были выставлены создателями Solr в этой форме, можно прочитать с помощью JConsole. Такие вещи, такие как среднее время отклика запросов для заданного обработчика поиска, количество запросов на индексацию или количество ошибок — все можно прочитать через JMX MBeans Отказ Проблема с jconsole заключается в том, что она не показывает нам историю измерений.
Jconsole не единственный способ прочтения ценностей JMX MBean — есть другие инструменты, которые могут сделать это, как открытый источник JMXC или наш открытый источник Sematext Java Agent . В отличие от инструментов, которые экспортируют данные в текстовом формате, наш Sematext Java Agent может отправлять данные в Sematext Cloud — Полный раствор наблюдаемости стека, который может помочь вам получить подробное представление о ваших метриках Solr.
Второй вариант для сбора метрик Solr — API, представленный в Solr 6.4 — Metrics Solr API Отказ Он поддерживает поиск метрики по требованию, используя API на основе HTTP для сердечников, коллекций, узлов и JVM. Тем не менее, гибкость API не приходит от него, не имеющуюся в наличии по требованию, но он может сообщать о данных различным направлениям с помощью репортеров. Прямо сейчас из коробки данные могут быть экспортированы с небольшой конфигурацией для:
- JMX — JMX MBeans, то, что мы уже обсуждали
- SLF4J — журналы или любые пункты назначения, которые поддерживает SLF4J
- Графит
- Ганглия
Мы рассмотрим решения для мониторинга Solr с открытым исходным кодом, более подробно во второй части этой серии мониторинга трех частей.
Наличие знаний о том, как мы можем контролировать Solr, давайте теперь посмотрим на главные метрики Solr, которые мы должны следить за глаз.
Скорость запроса
Каждый обработчик в SOLR предоставляет информацию о скорости запросов, которые его отправляют. Знание того, сколько запросов в общей сложности и каждого обработчика обрабатывается вашим узлом Solr или кластер, может иметь решающее значение для диагностики, если операции будут правильно или нет. Внезапное падение или всплеск в скорости запроса может указать сбой в одном из компонентов вашей системы. Перекрестная ссылка на скорость запроса Метрика с задержкой запроса может дать вам информацию о том, как быстро ваши запросы находятся по данному уровню или показывать потенциальные проблемы, которые наступают, когда количество запросов одинаково, но задержка начинает расти.
Задержка запроса
Измерение того, насколько быстро ваши запросы, аналогичные скорости запроса, доступны для каждого из обработчиков отдельно. Это означает, что мы можем легко увидеть задержку наших запросов и обновлений запросов. Если у вас есть различные обработчики поиска, посвященные различным потребностям поиска, то есть один для поиска продукта, один для поиска по статьям, вы можете легко измерить задержку каждого из обработчиков и посмотреть, как быстро возвращаются результаты для данного типа данных. Перекрестная ссылка на задержку запроса с метриками, такими как коллектор для мусора Работа, использование памяти JVM, использование ввода/вывода и использование процессора позволяет легко диагностировать проблемы с производительностью.
Совершать события
Официальные события в Solr приходят в различных ароматах. Там руководство обменивается, отправляет с запросами на индексацию. Есть Автоматические коммиты — Те, которые увольняют после определенных критериев — либо прошло время, либо количество документов было больше порогового значения. Почему они важны? Они несут ответственность за постоянство данных и видимость данных. Трудный коммитация зачисляет данные на диск и очищает журнал транзакций. Мягкий коммит вновь открывает объект поиска, позволяющий SOLR просмотреть новые сегменты и, таким образом, обслуживают новые данные своим пользователям. Тем не менее, решается уравновесить количество коммиентов и время между ними — они не свободны, и мы должны быть уверены, что наши коммиты не слишком частые, а также не слишком далеко друг от друга.
Использование кэшей
Кэширования Сыграйте решающую роль в исполнении Solr, особенно когда речь идет о архитектуре Solr Master-Plave. Данные, которые кэшируются, могут быть легко доступны без необходимости дорогих дисковых операций. Кэши не бесплатны — им требуется память и более подробная информация, которую вы хотели бы кэшировать, тем больше ему потребуется память. Вот почему важно контролировать размер и скорость попадания кэши. Если ваши кеши слишком маленькие, скорость попадания будет низкой, и вы увидите много выселения — удаление данных из кэшей, вызывающих использование процессоров и сборки мусора, эффективно уменьшая производительность вашего узла. Кэши, которые слишком велики, с другой стороны, увеличит объем данных на кучи JVM, толкая сборщик мусора еще больше и снова снижает эффективную производительность ваших узлов. Вы также можете пересекать использование кэша с помощью Commite Events — помните, что каждое событие Commit отбрасывает записи внутри кэша, вызывающего его обновление и прогрев, что использует такие ресурсы, как CPU и I/O.
Вышеуказанные являются ключевые метрики Solr, чтобы обратить внимание, хотя есть Другие полезные метрики Solr , слишком.
Apache Solr — это программное обеспечение Java и, как таковое, в значительной степени зависит от выполнения всей виртуальной машины Java и его частей, таких как Мусорный коллектор Отказ Сама JVM не работает в изоляции и зависит от операционной системы, такой как доступна Физическая память , количество ядер CPU и их скорость и Скорость ввода/вывода подсистема. Давайте посмотрим на важнейшие метрики, о которых мы должны знать.
Утилизация ЦП
Большинство операций, выполненных SOLR, находятся в некоторой степени зависит от мощности переработки процессора. Когда вы индексируете данные, его необходимо обрабатывать, прежде чем он записан на диск — тем более сложно конфигурация анализа, тем больше ЦП Циклы будут необходимы для каждого документа. Time Time Analytics — аспекты, необходимые для обработки огромного объема документов в закрепленном времени для SOLR, чтобы иметь возможность своевременно возвращать результаты запроса. Виртуальная машина Java также требует мощности обработки процессоров для операций, таких как сбор мусора. Сопровождая использование процессора с другими метриками, то есть скорость запроса или задержка запроса может выявить потенциальные узкие места или указать нам потенциальные улучшения.
Память, JVM память и своп
Бесплатная память и Swap Space очень важны, когда вы заботитесь о производительности. Космос подкачки используется операционной системой, когда не хватает физической памяти, и существует необходимость для присвоения ещего памяти для приложений. В таких случаях страницы памяти могут быть поменяются, что означает, что те, которые будут вывезены из физической памяти и записаны на выделенный раздел подкачки на жестком диске. Когда данные с этих поменяемых страниц памяти необходимы операционная система, загружает его от пространства подкачки обратно в физическую память. Вы можете себе представить, что такая операция требует времени, даже самые быстрые твердотельные накопители величины медленнее по сравнению с памятью оперативной памяти. Будучи осведомленным о последствиях обмена памятью Теперь можно легко сказать, что приложения JVM не любят быть поменяемыми — она убивает производительность. Из-за этого вы хотите избежать вас Solr JVM куча памяти быть поменяемым. Вы должны внимательно следить за использованием вашей памяти и использование обмена и коррелировать то, что с вашим исполнением Solr или полностью отключить обмен.
В дополнение к мониторингу системной памяти, вы также должны удерживать внимательность к памяти JVM и использование его различных пулов. Иметь JVM Memory Pools Полностью использование, особенно пространство старого поколения приведет к обширной сборке мусора, а ваш Solr полностью непригодны.
Использование диска
Apache Solr — это очень приложение на основе ввода/вывода — Он пишет данные при индексации и считывает данные при выполнении поиска. Чем больше данных у вас есть тем выше использование вашей подсистемы ввода-вывода, и, конечно, производительность подсистемы ввода-вывода будет иметь прямое подключение к производительности Solr. Сопровождая метрики чтения и записи ввода/вывода, чтобы запросить задержку и использование процессора, может выделить потенциальные узкие места в вашей системе, позволяя вам лучше масштабировать все развертывание.
Статистика сборки мусора
Когда данные используются внутри приложения на основе JVM, он помещается на кучу. Сначала в меньшее ваше поколение, позже переехало в обычно более крупное старое поколение пространства кучи. Присвоение объекта к соответствующему количеству кучи пространства является одним из обязанностей сборщиков мусора. Основная ответственность и тот, который нас больше всего интересуют, это очистка объектов, которые не используются. Когда объект внутри кода Java больше не используется, его можно выводить из кучи в процессе сборки мусора. Этот процесс время от времени проходит время, как несколько раз в секунду для молодого поколения и время от времени, а затем для кучи старого поколения. Нам нужно знать, насколько они быстро они, как часто они, и если все здорово.
Если ваш процесс сбора мусора не останавливает все приложение, а сборка мусора старого поколения не является постоянным — это хорошо, это обычно означает, что у вас есть здоровая среда. Имейте в виду, что корреляционные метрики сборщика мусора с использованием памяти и измерениями производительности, такие как задержка запроса, могут выявить проблемы с памятью.
Наличие здорового Zookeeker ансамбля имеет решающее значение при запуске кластера SolrCloud. Он отвечает за сохранение конфигураций сбора, состояние сбора, необходимое для кластера SolrCloud для работы, помогите с лидерами выборов и так далее. Когда Zookeeper в беде, ваш кластер SolrCloud не сможет принять новые данные, перемещать осколки вокруг или принимать новые узлы, соединяющие кластер — единственное, что может работать, являются запросами, но только в некоторой степени.
Поскольку здоровый Zookeeper Cluster — это необходимый кусок каждой кластеры SolrCloud, он имеет решающее значение для Полная наблюдаемость ансамбля Zookeeker Отказ Вы должны следить за метриками, как:
- Статистика подключений, установленных с Zookeeper
- Запросы задержки
- Память и использование памяти JVM
- Коллектор мусора Время и счет
- Утилизация ЦП
- Статус кворума
Смотрите Более полный список метрик зоопарка В сематестке документы .
Solr — это удивительная платформа поисковой и аналитики, позволяющая воспламенять быструю индексацию данных и поиск. Сохранение всех соответствующих Solr и ОС Метрики под наблюдением просто проще, когда используется с правильным мониторинговым инструментом. Вот почему во второй части серии Solr мониторинга мы взглянем на возможные варианты, когда дело доходит до Мониторинг Solr используя инструменты с открытым исходным кодом Отказ Последняя часть серии будет покрывать Производство Готовый мониторинг Solr с Sematext Отказ
Оригинал: «https://dev.to/sematext/solr-key-metrics-to-monitor-71i»