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.

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

2,823 views

Published on

  • Be the first to comment

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

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

×