Перейти к содержимому

Фотография

Нагрузочное тестирование в Яндексе


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 74

#21 robot

robot

    Новый участник

  • Members
  • Pip
  • 20 сообщений

Отправлено 18 апреля 2011 - 09:34

Насколько актуально запускать функциональные тесты + нагрузочные ?
Были ли реально на практике случай, когда такие тесты находили слабости в системе ?
  • 0

#22 BaAbaKa

BaAbaKa

    Активный участник

  • Members
  • PipPip
  • 80 сообщений
  • ФИО:Андрей Кузьмичев
  • Город:Россия, Москва

Отправлено 18 апреля 2011 - 09:35


Привет, меня зовут Андрей и мы с ребятами готовы рассказать вам о нагрузочном тестировании в Яндексе :)
Давайте попробуем вот какой формат: в этом посте мы будем собирать вопросы и пожелания, а собственно развернутые ответы выносить в отдельные посты. Ну или как пойдет :)

Привет, Андрей!
Давайте попробуем ещё и такой формат: в этом посте вы задаёте вопросы по тем затруднениям, которые испытываете, а мы - на них отвечать (брэйншторм?). Своеобразная оплата за ваши труды :friends:


:dirol: не, так свалка совсем получится, тем более если в формате мозгового штурма. Есичо, будем отдельные тредики заводить :)
  • 0
Кузьмичев Андрей,
руководитель отдела тестирования,
Объединенная компания «Афиши» и «Рамблера»
http://www.rambler.ru/jobs/

#23 Куатор

Куатор

    Постоянный участник

  • Members
  • PipPipPip
  • 247 сообщений
  • ФИО:Комендантов Илья
  • Город:Украина, Одесса

Отправлено 18 апреля 2011 - 09:40

:dirol: не, так свалка совсем получится, тем более если в формате мозгового штурма. Есичо, будем отдельные тредики заводить :)

Вопрос: Работа над Умным анализом ещё ведётся в рамках проекта Фантом (презентация всё же 2010 года) или уже успешно завершена? :)
Есть идея в этом направлении, а вдруг я ещё успеваю ?:))
  • 0
Идеальный тестировщик - человек с золотыми руками, растущими из ж...

#24 BaAbaKa

BaAbaKa

    Активный участник

  • Members
  • PipPip
  • 80 сообщений
  • ФИО:Андрей Кузьмичев
  • Город:Россия, Москва

Отправлено 18 апреля 2011 - 10:43

Насколько актуально запускать функциональные тесты + нагрузочные ?
Были ли реально на практике случай, когда такие тесты находили слабости в системе ?


Актуально. Было, но немного. Мы в таких случаях запускаем долгий тест на постоянной нагрузке, а ребята из функционального тестирования запускают свои автотесты. Несколько ошибок нашли, но совсем не много.

При этом это конечно же не отменяет валидации получаемых ответов при нагрзуочных тестах. Мы, чтобы не снижать производительность стрелялки, делаем это уже после теста (ни или во время, но в совсем отдельном процессе).
  • 0
Кузьмичев Андрей,
руководитель отдела тестирования,
Объединенная компания «Афиши» и «Рамблера»
http://www.rambler.ru/jobs/

#25 BaAbaKa

BaAbaKa

    Активный участник

  • Members
  • PipPip
  • 80 сообщений
  • ФИО:Андрей Кузьмичев
  • Город:Россия, Москва

Отправлено 18 апреля 2011 - 10:47


:dirol: не, так свалка совсем получится, тем более если в формате мозгового штурма. Есичо, будем отдельные тредики заводить :)

Вопрос: Работа над Умным анализом ещё ведётся в рамках проекта Фантом (презентация всё же 2010 года) или уже успешно завершена? :)
Есть идея в этом направлении, а вдруг я ещё успеваю ?:))



Умный анализатор, это который выявляет аномалии в процессах? Ведется, с phantom' ом никак не связан :) Сейчас этим занимается группы Алисы Смирновой (группа тоже находится в службе нагрузочного тестирования). На основе этого анализатора выросла целая система мониторинга. Завершать не планируем конечно же. В Лунапарке в этом месте изменилось не многое: чуть подправили коэффициенты в алгоритмах, добавили в анализ http- и сетевые коды ответов. Ну и в интерфейсе многое изменилось.

Если есть идеи — сдавай скорее :) Можно в личку, можно в вакансию :)
  • 0
Кузьмичев Андрей,
руководитель отдела тестирования,
Объединенная компания «Афиши» и «Рамблера»
http://www.rambler.ru/jobs/

#26 BaAbaKa

BaAbaKa

    Активный участник

  • Members
  • PipPip
  • 80 сообщений
  • ФИО:Андрей Кузьмичев
  • Город:Россия, Москва

Отправлено 18 апреля 2011 - 11:07

Андрей, а какими средствами выполняется тестирование производительности клиентской стороны для приложений, где много DHTML?
Ясно, что это немного в сторону вопрос, совсем не про генераторы нагрузки и Лунапарк, но всё равно интересно, ведь общая производительность складывается из многих составляющих.


Восприятие пользователем скорости интерфейса складывается из многих составных частей начиная от производительности серверной части и взаимодействия с сетью и заканчивая подходами к верстке и психологическим аспектам проектирования интерфейсов. Ты сейчас спрашиваешь про то, как тестируется производительность верстки?

Это очень большая задача. На сервисах с действительно сложной версткой (например, в Яндекс.Почте) очень много внимания уделяется производительности на клиенте. Тестируют и оптимизируют её сами разработчики интерфейсов (==верстальщики). Мы эту задачу пока скорее пытаемся укусить, но пока ничего заметного нет. Этим вопросом занимается не моя группа, но я лицо заинтересованное :) Если говорить про инструменты, то это pagetest-подобные штуки плюс анализ загрузки системы плюс ручные исследования с доставанием данных напрямую из браузеров. Движуха происходит и в Симфирополе, и в Москве, и в Питере. Если интересует что-то конкретное, могу поузнавать.
  • 0
Кузьмичев Андрей,
руководитель отдела тестирования,
Объединенная компания «Афиши» и «Рамблера»
http://www.rambler.ru/jobs/

#27 shiron

shiron

    Новый участник

  • Members
  • Pip
  • 6 сообщений
  • ФИО:Сташевский Павел

Отправлено 18 апреля 2011 - 13:09

Андрей, привет! :)
Хотелось бы узнать о ваших успехах в области моделирования "медленных" клиентов и вообще всего, что связано с моделированием различных параметров сети. Насколько я знаю, в Яндексе этим занимаются.

Интересно было бы узнать какие модели используются (марковские и т.д.), есть ли чего-нибудь из инструментов и что вообще можно и нужно смотреть на практике.
Вот как-то так :)
  • 0

#28 robot

robot

    Новый участник

  • Members
  • Pip
  • 20 сообщений

Отправлено 18 апреля 2011 - 13:30

Андрей, интересно как вы собираете информацию с серверов на которых находится тестируемый проект, понятно что нужно собрать логи запросов етц, вы собираете информацию о том как себя вела сама железка ? Если да, то какие данные собираете и чем ?
  • 0

#29 felix

felix

    Постоянный участник

  • Members
  • PipPipPip
  • 184 сообщений
  • ФИО:Зинатуллин Феликс
  • Город:Санкт-Петербург

Отправлено 18 апреля 2011 - 21:36

Андрей, в Яндексе часто бывают ситуации, когда по результатам нагрузки принято решение не код оптимизировать, а железо докупать?
  • 0
http://live-in-felix.blogspot.com/
Testing: manual expert, automation junior

#30 BaAbaKa

BaAbaKa

    Активный участник

  • Members
  • PipPip
  • 80 сообщений
  • ФИО:Андрей Кузьмичев
  • Город:Россия, Москва

Отправлено 19 апреля 2011 - 06:02

http://www.formsprin...549331678827421

Какие языки, технологии и ОС используются в нагрузочном тестировании Я? Если не под NDA, конечно. :)


  • 0
Кузьмичев Андрей,
руководитель отдела тестирования,
Объединенная компания «Афиши» и «Рамблера»
http://www.rambler.ru/jobs/

#31 BaAbaKa

BaAbaKa

    Активный участник

  • Members
  • PipPip
  • 80 сообщений
  • ФИО:Андрей Кузьмичев
  • Город:Россия, Москва

Отправлено 19 апреля 2011 - 09:31

Андрей, интересно как вы собираете информацию с серверов на которых находится тестируемый проект, понятно что нужно собрать логи запросов етц, вы собираете информацию о том как себя вела сама железка ? Если да, то какие данные собираете и чем ?


Да, конечно собираем, интересно же :) Стоит отметить, что у нас практически все production сервера это freebsd или ubuntu. При этом по числу проектов самая распространенная платформа — это именно ubuntu.

Самый минимальный вариант мониторинга — глазками в какой-нибудь dstat. Показания с произвольной группы машинок можно загрузить в Лунапарк и потом анализировать совместно с остальными данными о поведении системы. Сейчас у нас в процессе запуска инструмент, который сможет собирать абсолютно любую информацию с машинки (число установлеленных соединений к бэкенду, топ-3 процессов и т.п.) — можно будет написать свой собственный скриптег, который будет собирать любую необходимую информацию. Важное условие — сбор статистики должен оказывать минимальное влияние на сам тестируемый сервис. Для сбора базовых системных показателей работаем напрямую со всякими /proc/stat.

Думали про вариант использования обычной статистики, которая мониторит сервисы в prod, но отказались из-за крутого огрубления/округления показаний. Для локализации проблем и точного представления о том, что и где происходит она оказалась неприемлема.
  • 0
Кузьмичев Андрей,
руководитель отдела тестирования,
Объединенная компания «Афиши» и «Рамблера»
http://www.rambler.ru/jobs/

#32 BaAbaKa

BaAbaKa

    Активный участник

  • Members
  • PipPip
  • 80 сообщений
  • ФИО:Андрей Кузьмичев
  • Город:Россия, Москва

Отправлено 19 апреля 2011 - 09:36

Андрей, в Яндексе часто бывают ситуации, когда по результатам нагрузки принято решение не код оптимизировать, а железо докупать?


Нагрузочное тестирование не имеет права вето, но имеет весомый совещательный голос. Окончательное решение лежит за руководителем проекта. Мы все вместе всегда стараемся найти компромисс между целесообразностью оптимизации / переноса запуска / доставления машинок и кучи других вариантов. Бывает по всякому. Обычно после цикла оптимизаций производительность становится приемлемой для запуска, за который не будет стыдно, а дальше в плановом порядке допиливаем и оптимизируем. Если совсем обобщать, то горизонтальный рост за счет железа не ок — датацентры не резиновые + такой рост заметно добавляет эксплуатационных расходов. Так что железками не топим :)
  • 0
Кузьмичев Андрей,
руководитель отдела тестирования,
Объединенная компания «Афиши» и «Рамблера»
http://www.rambler.ru/jobs/

#33 BaAbaKa

BaAbaKa

    Активный участник

  • Members
  • PipPip
  • 80 сообщений
  • ФИО:Андрей Кузьмичев
  • Город:Россия, Москва

Отправлено 19 апреля 2011 - 09:42

http://www.formspring.me/baabaka/q/184549331678827421

Какие языки, технологии и ОС используются в нагрузочном тестировании Я? Если не под NDA, конечно. :)


Танки, с которых подается нагрузка: понесредственно пушка на c++ с оберткой вокруг неё на perl/python
Веб-морда со статистикой и аналитикой: mysql + apache + nginx + perl / python; для визуализации используем amcharts
Мишени, на которых живет тестируемый сервис: для высоконагрузенных, сложных, постояннотестируемых проектов физический машинки (идентичные production или чуть хуже) — около 30 машинок; кластер из 25 машинок для виртуалок на основе openvz ( однойвиртуалке на время теста выделяются все ресурсы физической машинки)
На танках и вебе ubuntu, на мишенях ubuntu или редко freebsd.

Для отдельных сложных или нетипичных тестов собираем отдельные штуки.
  • 0
Кузьмичев Андрей,
руководитель отдела тестирования,
Объединенная компания «Афиши» и «Рамблера»
http://www.rambler.ru/jobs/

#34 BaAbaKa

BaAbaKa

    Активный участник

  • Members
  • PipPip
  • 80 сообщений
  • ФИО:Андрей Кузьмичев
  • Город:Россия, Москва

Отправлено 19 апреля 2011 - 11:18

Андрей, привет! :)
Хотелось бы узнать о ваших успехах в области моделирования "медленных" клиентов и вообще всего, что связано с моделированием различных параметров сети. Насколько я знаю, в Яндексе этим занимаются.

Интересно было бы узнать какие модели используются (марковские и т.д.), есть ли чего-нибудь из инструментов и что вообще можно и нужно смотреть на практике.
Вот как-то так :)


В общем случае для оценки производительности кода о медленных соединениях и потерях можно не думать. Плюс внутри своих датацентров сеть у нас быстрая, каналы толстые и всё хорошо :) В реальной жизни от сети никуда не деться. В общем случае сеть — это дополнительный источник проблем и рисков. Над снижением этих рисков у нас трудятся сетевые инженеры (топология сети, как внешней, так и внутренней, например), системные администраторы (региональное проксирование, например). Но не смотря на это, медленные соединения, особенно на сервисах с тяжелым контентом, периодически доставляют проблем. Для того, чтобы устранять эти проблемы ещё до релиза мы вместе с нашими администраторами и ноками сделали вандервафлю Это какбэ шейпер трафика на основе tc и iptables, управляем задержкой, потерями, полосой. С моделями пока особенно не заморачиваемся — надо понять, насколько вообще есть смысл в этом месте сильно заморачиваться. В планах ещё много чего в этом направлении :)
  • 0
Кузьмичев Андрей,
руководитель отдела тестирования,
Объединенная компания «Афиши» и «Рамблера»
http://www.rambler.ru/jobs/

#35 Troubleshooter

Troubleshooter

    Опытный участник

  • Members
  • PipPipPipPip
  • 398 сообщений
  • Город:Киев

Отправлено 19 апреля 2011 - 14:07

Танки, с которых подается нагрузка: понесредственно пушка на c++ с оберткой вокруг неё на perl/python
Веб-морда со статистикой и аналитикой: mysql + apache + nginx + perl / python; для визуализации используем amcharts
Мишени, на которых живет тестируемый сервис: для высоконагрузенных, сложных, постояннотестируемых проектов физический машинки (идентичные production или чуть хуже) — около 30 машинок; кластер из 25 машинок для виртуалок на основе openvz ( однойвиртуалке на время теста выделяются все ресурсы физической машинки)
На танках и вебе ubuntu, на мишенях ubuntu или редко freebsd.

Для отдельных сложных или нетипичных тестов собираем отдельные штуки.


У меня несколько общих вопросов:
1) Выбор amcharts для визуализации выглядит несколько странным решением. Почему именно amcharts, а не кастомное решение под себя?
2) Сколько у Вас по времени занимает процесс автоматического анализа\парсинга логов?. Очевидно, что совокупный обьем логов очень большой.
3) В каком виде вы храните historical data?
4) Какое железо у типичного танка?
5) Какая степень вовлеченности вашей команды в нахождение источника проблемы с производительностью? Что происходит после нахождения проблемы, репорт в отдел разработки? Если можно опишите жизненный цикл performance issue.
6) Сколько у Вас человек в команде?
  • 0

#36 felix

felix

    Постоянный участник

  • Members
  • PipPipPip
  • 184 сообщений
  • ФИО:Зинатуллин Феликс
  • Город:Санкт-Петербург

Отправлено 19 апреля 2011 - 14:08

Вот тут мы собрали все наши офисы: http://company.yandex.ru/contacts/all/ Как вы видите, они расположены во всех крупных городах. Офисы разработки мы готовы открывать там, где появляются сильные команды разработки — именно так появился офис разработки в Екатеринбурге и Симферополе. Так что или создавайте хорошую командру разработки, которая потом сможет присоединиться к команде Яндекса, или посмотрите наши вакансии удаленной работы (http://company.yande.../job/vacancies/), или можете сделать хороший стартап и поучаствовать в Яндекс.Старте :)


Андрей, а появляются вакансии по удаленной работе для разработчиков/тестировщиков?
  • 0
http://live-in-felix.blogspot.com/
Testing: manual expert, automation junior

#37 BaAbaKa

BaAbaKa

    Активный участник

  • Members
  • PipPip
  • 80 сообщений
  • ФИО:Андрей Кузьмичев
  • Город:Россия, Москва

Отправлено 19 апреля 2011 - 14:16


Вот тут мы собрали все наши офисы: http://company.yandex.ru/contacts/all/ Как вы видите, они расположены во всех крупных городах. Офисы разработки мы готовы открывать там, где появляются сильные команды разработки — именно так появился офис разработки в Екатеринбурге и Симферополе. Так что или создавайте хорошую командру разработки, которая потом сможет присоединиться к команде Яндекса, или посмотрите наши вакансии удаленной работы (http://company.yande.../job/vacancies/), или можете сделать хороший стартап и поучаствовать в Яндекс.Старте :)


Андрей, а появляются вакансии по удаленной работе для разработчиков/тестировщиков?


Мы не практикуем удаленную работу для разработчиков и тестировщиков. И есть исключения, подтверждающие эти правила :)
  • 0
Кузьмичев Андрей,
руководитель отдела тестирования,
Объединенная компания «Афиши» и «Рамблера»
http://www.rambler.ru/jobs/

#38 felix

felix

    Постоянный участник

  • Members
  • PipPipPip
  • 184 сообщений
  • ФИО:Зинатуллин Феликс
  • Город:Санкт-Петербург

Отправлено 19 апреля 2011 - 14:19

Мы не практикуем удаленную работу для разработчиков и тестировщиков. И есть исключения, подтверждающие эти правила :)


Расскажешь причину? Раз есть исключения, которые подтвердили правила - с чем Яндекс столкнулся, что Вы отказываетесь от удаленных работников?
  • 0
http://live-in-felix.blogspot.com/
Testing: manual expert, automation junior

#39 Zenturio

Zenturio

    Опытный участник

  • Members
  • PipPipPipPip
  • 386 сообщений
  • ФИО:Дмитрий
  • Город:Смоленск - Москва


Отправлено 19 апреля 2011 - 17:08


Интересует тестирования Яндекс Видео, проводилось ли оно ? Если да, то как и чем эммулировалось большое количество видео стримов ?


Любой сервис, который мы запускаем проходит обязательный этап нагрузочного тестирования. Яндекс.Видео тут конечно же не исключение. Грубо говоря Видео — это сами интерфейсы + поиск + хранилище + стримминг. Для тестирования именно стримовой части использовали JMeter — его для этой задачи было более чем достаточно.


А можно подробнее о данном проекте
Как именно определяли максимальную нагрузку? меня интересует именно механизм запроса к видеоконтенту для проигрывания
Также интересует upload и download
Какие примерно ресурсы для этого пришлось использовать?
  • 0

#40 BaAbaKa

BaAbaKa

    Активный участник

  • Members
  • PipPip
  • 80 сообщений
  • ФИО:Андрей Кузьмичев
  • Город:Россия, Москва

Отправлено 19 апреля 2011 - 18:44


Танки, с которых подается нагрузка: понесредственно пушка на c++ с оберткой вокруг неё на perl/python
Веб-морда со статистикой и аналитикой: mysql + apache + nginx + perl / python; для визуализации используем amcharts
Мишени, на которых живет тестируемый сервис: для высоконагрузенных, сложных, постояннотестируемых проектов физический машинки (идентичные production или чуть хуже) — около 30 машинок; кластер из 25 машинок для виртуалок на основе openvz ( однойвиртуалке на время теста выделяются все ресурсы физической машинки)
На танках и вебе ubuntu, на мишенях ubuntu или редко freebsd.

Для отдельных сложных или нетипичных тестов собираем отдельные штуки.


У меня несколько общих вопросов:
1) Выбор amcharts для визуализации выглядит несколько странным решением. Почему именно amcharts, а не кастомное решение под себя?
2) Сколько у Вас по времени занимает процесс автоматического анализа\парсинга логов?. Очевидно, что совокупный обьем логов очень большой.
3) В каком виде вы храните historical data?
4) Какое железо у типичного танка?
5) Какая степень вовлеченности вашей команды в нахождение источника проблемы с производительностью? Что происходит после нахождения проблемы, репорт в отдел разработки? Если можно опишите жизненный цикл performance issue.
6) Сколько у Вас человек в команде?


1) Amcharts невероятно гибкий инструмент для визуализации данных. Очень удобно. После недавнего выхода js-версии теперь можно сделать вообще невероятные вещи) Зачем писать своё, поддерживать, если есть готовое и очень хорошее? Чуть подробнее о том, что пробовали и почему остановились на AmCharts я рассказывал на YaC, тут выше ссылка уже была.
2) В общем случае grep по дампам ответов и логам работает очень быстро.
3) Рассказывал на YaC. Сырые данные хранятся до удаления тестировщиком, данные о распределениях времен и ответов плюс некоторые точно рассчитанные агрегаты уезжают в MySQL. Исходные файлы с запросами хранятся 3 месяца, далее хранится только восстановленный из HTTP-запросов шаблон запросов.
4) Обычные стоечные машинки 5440/5530/5645, 24Gb, сетевые интерфейсы в гигабит или в десятку. Под отдельные задачи собираем специфичное железо.
5) Глубокая :) Тут стоит начинать разговаривать о том, как вообще внутри Яндекса построены процессы, о матричной структуре, проектных командах. Мы очень тесно взаимодействуем и с разработчиками, и с админами, и с ноками, и с менеджерами, и с маркетологами. В общем случае, берем ноутбук, садимся вместе и разбираемся. Это и приятнее, и быстрее. И в конечном счете дает колоссальный профит по всем фронтам.
6) 12 (9 мск + 3 спб) и ищем ещё
  • 0
Кузьмичев Андрей,
руководитель отдела тестирования,
Объединенная компания «Афиши» и «Рамблера»
http://www.rambler.ru/jobs/


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных