Информация

Дата основания
Местоположение
Россия
Сайт
www.yandex.ru
Численность
свыше 10 000 человек
Дата регистрации

Блог на Хабре

Обновить

Как не держать лишнее железо и справляться с ростом нагрузки: внедрение graceful degradation в Яндекс.Маркете

Блог компании ЯндексРазработка веб-сайтовПоисковые технологииСерверная оптимизацияСерверное администрирование
Рейтинг +23
Количество просмотров 4,1k Добавить в закладки 28 Читать комментарии 18
Комментарии 18
Уменьшить нагрузку можно по-разному… мы выбрали третий вариант — снижать качество
— и это заметно. Недавно что то искал в Маркете — выдача не более 10 страниц, дальше товары отсутствуют. Чтобы найти то, «точно не знаю что», надо либо крутить фильтры (с неизвестным в смысле релевантности результатом), либо искать в другом месте. Лично я был разочарован — ждал от команды Яндекса большего.
А можете, пожалуйста, привести пример вашего запроса, по которому не было результата на первых 10 страницах? И номер обращения в поддержку, если писали. Было бы полезно.
Точно не помню, что то серверное искал и конечно ни в какую поддержку не обращался (я обычный покупатель — голосую ногами). Но вот сейчас захожу в каталог Маркета и выбираю: «Компьютерная техника — Компьютерные комплектующие — Рэковые корпуса» сортировка по цене по возрастанию, на 15 странице листание завершилось на товаре с ценником «3 230 ₽» (что очевидно далеко не конец списка в данной категории).

Если теперь выбрать сортировку по убыванию цены, то первый товар в списке «1 395 210 ₽» и листание также заканчивается на 15 странице на товаре с ценой «91 428 ₽».

Надеюсь что помог команде тестировщиков проекта Яндекс.Маркет)
Я заводил десятки обращений — и ничего никогда не менялось. Хотите кейсы, их есть у меня? Вот у меня в закладках лежит Аккумуляторная дисковая пила Bosch BITURBO GKT 18V-52 GC Professional, (06016B4000), продавалась в магазине b-tools.ru.

Пробуем сейчас «найти ее в других магазинах» (на самом деле она все еще продается, в том же самом — я проверял — b-tools.ru/product/bosch-gkt-18v-52-gc-akkumulyatornaya-diskovaya-pila-06016b4000 — оно конечно «уточняйте наличие», но в корзину я ее положить могу, и я такие вопросы с магазином в любом случае решил бы сам). Но мы ничего не находим.

И что самое противное — все что найдено, не имеет никакого отношения к тому, что ищем. Т.е. 99% результатов поиска я иначе как спам рассматривать не могу (ну точнее так — где-то на 8м месте есть один похожий товар, а на второй странице — еще два). Качество поиска, где на три страницы три релевантных результата вы как оцените?
К вопросу о «наличии», яндекс показывает то, что ему магазин выгрузит в специальной XML-ке. Что кореллирует с данными на сайте по усмотрению магазина. В остальном — качество поиска отвратительное, да.
Я догадываюсь, что они не парсят сайты магазинов, да. Но скажем так, это скорее путает, чем помогает, в текущем виде — потому что я вижу магазин, и вижу там товар, но не могу его найти (если на сайте магазина есть признак «наличие уточняйте» — было бы логично, чтобы и у Маркета такой признак тоже был).

Но в общем-то, у меня претензия к поиску не в этом, а скорее в том, что имеет место попытка найти «что-то похожее по названию» вместо того, чтобы найти точное совпадение по параметрам (если уж не конкретную модель). Ну т.е. смотрите, Bosch GKT 18V-52 GC — это вот что:
— ручная циркулярная пила
— аккумуляторная (у Bosch три линейки аккумуляторов, в том числе две — 18В, несовместимые друг с другом)
— погружная
— для работы по шине (погружная обычно означает шину, но не наоборот)
— по дереву (есть специальные пилы по металлу, там много чего другое)

И мне вместо нее в поиске вываливают просто циркулярные пилы, какие попало. Ну т.е. вот из этих 5 пунктов только один совпадает в 99% случаев. А почему? А потому, что там просто нет этих признаков, если открыть карточку товара, то вы не найдете там признаков «погружная», «по шине» или «для дерева» — их там просто нет.

Ну и в итоге мы имеем то что имеем — три страницы результатов, из них одна — сетевая пила Боша, которые более-менее подходит, аккумуляторная Макита (слишком дорого, ибо нужно покупать и аккумуляторы тоже), Макита по металлу. И это все, все остальное вообще не имеет отношения к делу.

Зачастую в таких случаях намного лучше было бы ответить, что ничего не нашли.
И что самое противное — все что найдено, не имеет никакого отношения к тому, что ищем. Т.е. 99% результатов поиска я иначе как спам рассматривать не могу
Такие жалобы я вижу на Хабре далеко не в первый раз. Уверен, что BarakAdama и другие сотрудники Яндекса их тоже видят. Уж сколько времени прошло, а воз и ныне там…
Вообще, мне кажется что плохая поддержка — это самый большой недостаток этого продукта (это не относится к Яндекс Маркету, у гугля, или скажем у карт примерно такие же проблемы). Ну т.е. я реально много раз заводил обращения — результат с моей точки зрения близок к нулю.

У меня даже пост в черновиках на эту тему валяется, пока сомневаюсь, стоит ли его публиковать (на тему улучшения такого сорта поиска техническими средствами). Я при этом прекрасно понимиаю, что реализация изменений в большом продукте может быть делом сложным и не быстрым.
реализация изменений в большом продукте может быть делом сложным и не быстрым.
… что не может служить поводом этого не делать.
Поэтому публиковать Ваш «пост в черновиках», на мой взгляд, непременно сто́ит.
Главное — после публикации разослать ссылку на статью Яндексу, Гуглю, Картам и.т.д., чтобы заставить их реагировать как положено, а не как им удобнее:
я реально много раз заводил обращения — результат с моей точки зрения близок к нулю.
Ну я в общем-то уже его опубликовал. Хотя не думаю что это как-то улучшит поддержку всех названных компаний, да и пост в общем не про нее.
Отлично, спасибо!
Теперь обязательно отправьте ссылку на статью в Яндекс.Маркет и другим сервисам, указав, что за 7 часов статью прочитали 2000 человек.
Это работает (хотя и не всегда).
Автоматизация работает за счёт постоянного мониторинга загрузки CPU. Если нагрузка становится выше 90%, автоматика начинает снижать качество.

То есть такая система будет хорошо работать только в случае если на сервис выделено отдельное железо?
Этот подход будет хорошо работать, если невозможно быстро поднять новые инстансы сервиса. То есть, даже если вы в AWS, но запуск нового инстанса занимает много времени, то лучше сделать механизм уменьшения нагрузки.
Разумеется, это одно из ключевых условий
Нам хотелось бы меньше греть воздух, ведь если сократить количество железа в каждом ДЦ хотя бы на 10%, речь уже шла бы о внушительных суммах. При этом, если просто вытащить часть железа, а затем при пиковой нагрузке какой-то из ДЦ отключится, оставшиеся мощности могут не справиться.

По-моему тут что-то недоговорили. Если проблема только в энергопотреблении (как заявлено) то можно простаивающее железо и выключать, а включать только в аварийной ситуации (понятно, не мгновенно, но не думаю что это вызовет проблемы, всё-таки это по идее редкое событие). Или датацентры ежедневно вводятся/выводятся из строя?
Но за само железо в таком случае всё равно придётся платить, да, почему-то об этом не сказано.

Включать сервера при необходимости – плохой вариант.
От момента включения до момента, когда сервер сможет обрабатывать запросы, пройдет минимум пол часа. Надо время на включение, на закачку и распаковку индекса, на закачку и установку поисковика, на запуск.
Все это время сервису в целом будет очень плохо.

Действительно, достаточно лишь снизить нагрузку, но начальству не объяснить

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.