Архитектура Яндекс.Поиска v 1.04 Анатолий Орлов anatolix@yandex-team.ru Сентябрь 2007 – Май 2008.

Презентация:



Advertisements
Похожие презентации
Разгони свой сайт Лекция 5: Параллельные загрузки Мациевский Николай 1 / 27 webo.in.
Advertisements

Все о скорости сайтов Юрий Устинов Русоникс Москва, 20 июня 2013.
Событийные машины Сетевая многозадачность: событийные машины Павел Кудинов HighLoad 2007.
Как улучшить производительность проекта за три шага Шаромов Денис руководитель отдела техподдержки.
Распределенная Архитектура LAMP приложений Петр Зайцев Директор, Percona Ltd.
Я.Субботник, Санкт-Петербург, инженер по тестированию Ерошенко Артем Поиск багов в поиске инженер по тестированию Селиверстов Станислав.
Создание сети на основе сервера. Иногда требуется создать локальную сеть, в которой один из компьютеров будет выполнять функции сервера. Это делают для.
Разработка архитектуры больших систем О чем нужно думать перед кодированием? Александр Горный Продюсер Почта.ру
Что клиенты просят доделать после партнеров Евгений Потапов ITSumma.
Вопрос 1 Комплекс аппаратных и программных средств, позволяющих компьютерам обмениваться данными: 1)интерфейс; 2)магистраль; 3)компьютерная сеть; 4)адаптеры.
История Яндекса началась в конце 80-х с разработки поисковых технологий в компании «Аркадия», которая затем вошла в состав CompTek. Разработчики создали.
Раздел 3 Сетевые модели. Тема 3.1 Понятие сетевой модели. Архитектура сети определяет основные элементы сети, характеризует ее общую логическую организацию,
Учня 11-А класса Алчевської інформаційно-технологічної гімназії м. Алчевськ Луганської обл. Малишева Андрія Едуардовича
Smart-Soft Traffic Inspector. Основные возможности Traffic Inspector: комплексное решение для подключения сети или персонального компьютера к сети Интернет.
РАЗРАБОТКА ВЫСОКОНАГРУЖЕННЫХ WEB- ПРИЛОЖЕНИЙ inln.ru Кондратьев Денис.
Продвижение сайта Контекстные переходы оплата за переходы на сайт рекламодателя формат: текстово-графический блок Контекстные показы оплата за показы.
Промежуточная п роверочн ая работа по теме «Компьютерные сети»
Тема 3 Рассматриваемые вопросы 1. Классификация сетей 2. Назначение сетей 3. Компоненты вычислительных сетей 4. Топологии сетей 5. Архитектура сетей.
СОЗДАНИЕ ВИРТУАЛЬНОЙ ИНФРАСТРУКТУРЫ В ЦЕНТРАЛЬНОМ АППАРАТЕ ФЕДЕРАЛЬНОГО КАЗНАЧЕЙСТВА И МИГРАЦИЯ СУЩЕСТВУЮЩИХ ФИЗИЧЕСКИХ СЕРВЕРОВ В ВИРТУАЛЬНУЮ ИНФРАСТРУКТУРУ.
Архитектура новой почты Рамблера Андрей Шетухин. Rambler Mail сегодня 240 тысяч новых регистраций в день 66 миллионов пользователей 20 миллионов живых.
Транксрипт:

Архитектура Яндекс.Поиска v 1.04 Анатолий Орлов Сентябрь 2007 – Май 2008

Disclaimer Это все про поиск и его надежность и производительность -это не про робот и его нагрузки -не про ранжирование и релевантность в поиске. Описано реальное, а не идеальное решение -Можно и нужно сделать лучше -Часть решений объясняется термином legacy (читай: руки еще не дошли переделать) Совсем интимных данных не будет

Оглавление Что такое поиск и на чем все это работает Архитектура поиска и взаимодействие серверов Архитектура поискового кластера Методики анализа производительности кластера Пример проблемы и её решений.

Что такое Яндекс.Поиск ~40M показов SERP людям в день (+5M на xml поиски). База ~4 миллиардов документов. несколько тысяч серверов + сетевое оборудование в нескольких серверных в разных местах Москвы соединенных собственной оптикой.

На чем все это работает Поиски – FreeBSD 6,7 64 бита - кое где есть еще FreeBSD4-32 Языки разработки C++ и Perl - Примерно 52Mb кода на C++ и 3Mb Perl SLB – Linux, IPVS. - раньше была Cisco Роутеры – FreeBSD6. - с подпаченными сетевыми драйверами Коммутаторы – Cisco.

(Часть 2) Архитектура Яндекс.Поиска и взаимодействие серверов

Сферический поиск в Вакууме.

Кэширование Нужно кэшировать. На метапоисках. В нарисованной схеме кэши работают плохо

Правильное кэширование Каждый запрос кэшируется на одном сервере

Метапоиски более подробно

Программные решения Верхний метапоиск – Подхаченный apache(1.x) – FreeBSD4-32. fork()+kthreads – ModPerl Средний метапоиск – Свой http сервер. – FreeBSD6-64. Native Threads. – переходим на FreeBSD7 Базовый поиск – Свой http сервер. – FreeBSD6-64. Native Threads. – переходим на FreeBSD7

Взаимодействие Верхний –> средний, параллельные. – http (с установлением соединения) Средний -> базовый – keep-alive http. Обработка соединений – kevent/kqueue. – был FSM, перешли на CoRoutines. Хотим UDP

(Часть 3) Архитектура поискового кластера Яндекса

Поисковые кластера

Балансировка внутри кластера Linux, IPVS – проверяет живость серверов – раздает запросы примерно поровну Sticky – клиент по IP приклеивается к морде на N минут. Где я? az, buki, vedi, glagol.. sfront99

Сеть Машины одного кластера в одной подсети*

(Часть 4) Методики анализа производительности больших систем

Время ответа? Банально знать время ответа – среднее время ответа(бесполезно) – классы ответов – медианы Мониторим в RRD постоянно – знаем для всего сервиса – знаем для кластера отдельно – для каждого сервера отдельно – не только общее, но и базовых/средних Более сложные – время от времени

Классы ответов (абс).

Классы ответов (относит)

Медианы

Методы интенсивной терапии Запрос на входе метим reqid, и таcкаем его везде. Пишем в логи - всё. 2 раза. Сверяем показания в разных логах. В конечном итоге не верим никому, кроме tcpdump-а. – и ему тоже до конца не верим

(Часть 5) Пример проблемы и ее возможных решений. (проблема старая)

C чего все началось

Сетевые потери

Причины 1.2s и 3s это сетевые ретрансмиты. Нашли по разнице в логах и tcpdump-у. Причина потерь объективная – т.е. это не ошибка. Сетевое оборудование не держит наши нагрузки.

Возможные решения Переткнуть. Крутить настройки циски. Уменьшить количество пакетов. – packet rate vs. traffic. Ввести еще один уровень метапоиска Посылать информацию 2 раза. Маленько задержать ответы. Крутить таймауты.

Вопросы? Комментарии? Так же можно потом на Всё