масштабируемый Sphinx кластер. вячеслав крюков. зал 1
Upcoming SlideShare
Loading in...5
×
 

масштабируемый Sphinx кластер. вячеслав крюков. зал 1

on

  • 2,355 views

 

Statistics

Views

Total Views
2,355
Views on SlideShare
2,224
Embed Views
131

Actions

Likes
3
Downloads
22
Comments
0

3 Embeds 131

http://2011.ritconf.ru 71
http://ritconf.ru 56
http://translate.googleusercontent.com 4

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

масштабируемый Sphinx кластер. вячеслав крюков. зал 1 масштабируемый Sphinx кластер. вячеслав крюков. зал 1 Presentation Transcript

  • Масштабируемый Sphinx кластер Вячеслав Крюков Ivinco.com
  • Sphinx кластер для проекта BoardReader.COM• Поисковый сервис по форумам, социальным сетям и медиа данным• Более 30 серверов• Более 15 млрд. проиндексированных документов• Более 5 TB данных в индексах (постов форумов и блогов, новостей, изображений, ссылок)• Более 10 млн. запросов в сутки, в пике 500 тыс. запросов в час
  • Масштабируемость Sphinx кластера• Scale Up Распределение данных по нескольким инстансам searchd (нодам) на одном сервере. Апгрейд сервера• Scale Out Распределение данных по нескольким серверам. Добавление новых серверов• До 2^64 документов на кластер
  • Дистрибутивные индексы Sphinx• Инструмент масштабирования кластера• Распределение запросов по нескольким индексам на локальных и удаленных нодах• Мерж результатов, удаление дубликатов• Инкрементация данных
  • Архитектура ноды Sphinx кластера
  • Архитектура Sphinx кластера
  • Конфигурация Sphinx кластера• Запрос к кластеру транслируется через Sphinx forwarder к конечным нодам• Утилизация ресурсов многодисковых и многоядерных серверов через настройку многопоточности searchd или нескольких нод на одном сервере (Sphinx nodes)• 4 ступени инкрементации данных – Full, 3 Months, Week, Inc и соотв. им конечные индексы
  • Конфигурация Sphinx кластера• Схема распределения данных кластера - привязка индексируемых данных к списку серверов и агентов с параметрами соединения и конечными индексами• Сохранение состояния индексации для стыковки между ступенями инкрементации данных• Интерпретируемый конфигурационный файл• Обновление конфигурационных данных
  • Обновление и инкрементация данных• Инкрементация данных каждые 5мин, сутки, неделю, месяц для соотв. ступеней Inc , Week, 3 Months, Full• Запас места на диске для переиндексации до 50-70%• Перезаливка существующих данных, killlists• Изменение атрибутов записей в индексах• Механизм очередей• Режим обслуживания БД MySQL с индексируемыми данными• Мержинг индексов вместо переиндексации
  • Проблемы производительности• Ухудшение производительности отдельной ноды сказывается на всем кластере• Нехватка пропускной способности дисков, ресурсов памяти – активно используется Swap, CPU (встречается реже)
  • Оценка производительностиavg(t): 0.32 secstd(t): 1.08 secКол-во запросов: 11828803t — время выполнения Sphinx запроса
  • Оценка производительности
  • Оптимизация конфигурации Sphinx кластера• Цель – получить лучшую производительность кластера на текущих ресурсах• Уменьшение затрат на процесс индексации и сторонние задачи (все, что кроме searchd)• Выбор оптимального количества ступеней инкрементации данных• Оптимизация размера и количества атрибутов• Перебалансировка данных
  • Оптимизация Sphinx запросов• Цель – выполнить Sphinx запрос меньшими ресурсами• Multi-queries• 10 web запросов – 1 Sphinx запрос• Автоматизация переключения запроса на индекс меньшего размера или на нужную ноду
  • Когда исчерпаны текущие ресурсыДобавляем новые серверы, делаем балансировку - если растет кол-во данных или используем межнодовую репликацию - если растеткол-во запросов
  • Балансировка Sphinx кластера• Причина – ухудшение производительности• Ухудшение производительности отдельных нод кластера• Добавление новых серверов в кластер• Оценка объема индексируемых данных и перерасчет их распределения в кластере• Учет неравнозначности ресурсов отдельных серверов• Переиндексация индексов, затрагиваемых перебалансировкой• Целостность процесса балансировки
  • Дополнительные меры• Кеширование• Резервное копирование индексов Sphinx• Логи производительности и ошибок• Мониторинг, система оповещения - nagios, Zabbix• Автоматизация операций администрирования• Тестирование изменений конфигурации кластера
  • Перспективные Sphinx фитчи• RT индексы• Изменение атрибутов записей в индексах по условию• MySql – Sphinx репликация – в работе• Встроенная в Sphinx межнодовая репликация – в планах
  • Поздравляем Андрея Аксенова и его команду свыходом книги - "Introduction to Search with Sphinx" в издательстве OReilly!
  • Спасибо за внимание! Вопросы? vkrukov@ivinco.com www.ivinco.com/services/ www.ivinco.com/software/ www.ivinco.com/blog/