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

2,478 views
2,322 views

Published on

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,478
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
26
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

масштабируемый 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/

×