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

Фотография

Критерии и показатели нагрузочных тестов для базы данных

PostgreSQL

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

#1 Appium

Appium

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

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

Отправлено 11 апреля 2018 - 08:02

Добрый день.

 

Только в первый раз приступаю к такой задаче. Обращаюсь к вам за помощью и советом.

Вопросы:

 

  1. Каковы бывают критерии для нагрузочных тестов для базы данных?
  2. Какие бывают показатели  для нагрузочных тестов для базы данных?
  3. У какого инструмента больше всего возможностей под реализацию нагрузочных тестов для базы данных?
  4. Какие показатели являются главными, а какие второстепенными?
  5. По каким показателям максимум может протестировать JMeter и HP LoadRunner?
  6. Какие еще инструменты  будут полезны?

Заранее благодарен за любые советы.

 


  • 0

#2 SALar

SALar

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 2 298 сообщений
  • Город:Москва


Отправлено 11 апреля 2018 - 09:07

Определитесь, что именно вы тестируете. Есть минимум 4 вида тестов, называемых нагрузочными. Но они тестируют принципиально разные критерии качества.

ГОСТ 25010 вам в помощь, если хотите биться головой сами. Ну и мой блог почитайте. Там эта тема более-менее раскрыта.

 

Можете заказать консультацию. Здесь довольно много спецов.

 

PS. Если вы верите в волшебную пилюлю типа "JMeter и HP LoadRunner"... Ну не знаю даже... К "Свидетелям Иеговы" сходите. Результат примерно тот же.

 

PSS. Видел я работу типа "спецов" из специальной формы, занимающейся нагрузочным тестированием. Инструмент они знали. Но вот их отчет... Я просто плакал слезами глаз. Это ж насколько надо быть непрофессионалом... В личке могу назвать фирму. А этих типа "специалистов" больше на порог не пущу.


  • 0

-- 

Сергей Мартыненко

Блог 255 ступеней (байки для оруженосца)

facebook (Дети диаграммы Ганта)

ВебПосиделки клуба имени Френсиса Бэкона 

 


#3 gako

gako

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

  • Members
  • PipPip
  • 115 сообщений
  • Город:Калининград

Отправлено 11 апреля 2018 - 10:44

Критерии и показатели (метрики) определяются исходя из поставленной задачи. Для чего вам нужно нагрузочное тестирование? Почему возникла такая задача? Какая архитектура системы, которую предполагается тестировать? Как правило, необходимость в нагрузочных тестах возникает, когда у вас уже пыхтит относительно сложная система - с модулями балансировки, шифрования, разными интеграциями и еще может быть кучей всего. 

Как уже выше отметил Сергей, инструменты сами по себе не решают задачу нахождения узких мест, они просто позволяют создать нагрузку на входе и снять таймауты на выходе. Этого может быть достаточно для выявления проблемы, но скорее всего нет. 

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


  • 0

#4 Appium

Appium

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

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

Отправлено 12 апреля 2018 - 03:40

 

 

 

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

Спасибо за ответ. Родились следующие вопросы :

  1. Из чего состоит такая система мониторинга и анализа и какова её структура?
  2. Что нужно для создания данной системы мониторинга и анализа?
  3. Что мы подразумеваем под  узлом системы?

  • 0

#5 gako

gako

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

  • Members
  • PipPip
  • 115 сообщений
  • Город:Калининград

Отправлено 12 апреля 2018 - 06:51

3. Среднесферическая система в вакууме выглядит как - фронтенд -- бэкенд -- база данных. То есть состоит из трех узлов. 

 

2. Мы, например, купили готовое решение. Знаю компании, где разработали и внедрили свои инструменты. Кто-то комбинирует. Нет универсального варианта. Надо отталкиваться от поставленной задачи и имеющихся ресурсов. 

 

1. Дам ссылку на платформу, которую мы установили для мониторинга своего приложения >>> Архитектурно все подобные системы выглядят +/- одинаково.


  • 0

#6 SALar

SALar

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 2 298 сообщений
  • Город:Москва


Отправлено 12 апреля 2018 - 07:29

В данном случае нагружать "фронтенд -- бэкенд" не надо. Для нагрузки БД лучшим инструментом является сама БД. Внезапно. Звучит не так пафосно, зато работает отлично.

Так же Яндекс и Баду (может еще кто), для тестирования производительности используют разновидность А/В тестирования. Нагрузку дают пользователи. Именно производительности, а не нагрузочное тестирование. Совершенно другой зверь. Там не просто атрибуты качества разные. Там даже группы разные.

 

Я имел удовольствие беседовать по поводу этих видов тестирования с Тимуром Хайрулиным. Тогда еще руководителем отдела нагрузочного тестирования Яндекса. Как вы понимаете у них огромная выборка и куча исследований в этой области. Полагаю никто на этом форуме не обладает даже близким опытом. Так вот Тимур крайне, крайне негативно отзывался о всех инструментах автоматизации тестирования.

 

Если есть хоть малейший шанс отказаться от использования инструментов нагрузочного тестирования - откажитесь.
Если вы верите в волшебную пилюлю типа "JMeter и HP LoadRunner"... Ну не знаю даже... К "Свидетелям Иеговы" сходите. Результат примерно тот же.

 

 

 

А вот мониторинг вам нужен. Отслеживайте использование: процессора, памяти, дисковые операции и т.д. Как вариант, сделайте виртуалку и начинайте играть с увеличением / уменьшением ресурсов. Тогда можно и от мониторинга отказаться.

 

Читать от корки до корки: http://blog.shumoos....-oanoedhiaaiea/


  • 0

-- 

Сергей Мартыненко

Блог 255 ступеней (байки для оруженосца)

facebook (Дети диаграммы Ганта)

ВебПосиделки клуба имени Френсиса Бэкона 

 


#7 SALar

SALar

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 2 298 сообщений
  • Город:Москва


Отправлено 12 апреля 2018 - 11:49

Пожалуй, я выражусь еще более резко.

 

У вас есть выбор. Или провести нагрузочное тестирование, или использовать JMeter. Если вы не будете использовать JMeter, то есть небольшой шанс провести нагрузочное тестирование. Если будете использовать - шансов нет.

 

PS. А вообще то это сложный вид тестирования. Проще денег спецу кинуть и он все сделает.

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


  • 0

-- 

Сергей Мартыненко

Блог 255 ступеней (байки для оруженосца)

facebook (Дети диаграммы Ганта)

ВебПосиделки клуба имени Френсиса Бэкона 

 


#8 Mendel

Mendel

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

  • Members
  • Pip
  • 23 сообщений
  • ФИО:Александр

Отправлено 13 апреля 2018 - 09:52


У вас есть выбор. Или провести нагрузочное тестирование, или использовать JMeter. Если вы не будете использовать JMeter, то есть небольшой шанс провести нагрузочное тестирование. Если будете использовать - шансов нет.

 

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

 

Их роль в самом процессе действительно переоценивается. Да, очень много можно понять просто внимательно исследовав продакшен. Да, один из подходов, завернуть трафик с продуктового в тестовый контур. Но это не всегда возможно и не всегда целесообразно. Иногда трафик сложно дублировать. Иногда интересна синтетика(говоря о терминологии, это уже может быть не "нагрузочный" тест).

 

Тот же jmeter вполне может подавать нужную нагрузку если хорошо понимаешь как он это делает и что нужно.

Но это всё только про генерацию нагрузки. Обычно это не самая сложная и трудоёмкая часть. Нужно хорошо уметь анализировать логи и метрики для оценки того что подать, нужно анализировать систему которую нагружаешь и понимать что за технологии и код исследуются. Так же важно правильно собирать и понимать результаты. Но задача jmeter как и любого генератора - подать нагрузку, он с этим вполне справляется.

 

По теме, для начала пообщайтись с администраторами и оцените как анализируется производительность системы в продакшене. Как она устроена, какие технологии есть. Какие проблемы возникают. Проанализируйте пользовательский трафик, поймите суть эксперимента который собираетесь провести, что в результате должны узнать и главное как вы это будете оценивать. Инструменты сами по себе, проанализровать производительность системы не смогут.

В случае с базой данных, у вас с 99% уже есть возможность понять какие запросы тормозят, где и какие локи берутся и во что вы упираетесь. Начните с этого, это скорее всего будет очень полезно. Для генерации "правильной" нагрузки на базу, вам понадобится ОЧЕНЬ хорошо подбирать очередность, параметры запросов и объём тестовых данных в базе, в противном случае, результаты не будут биться с реальностью. Кстати какую БД тестируете?


  • 1

#9 misga

misga

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:мишель коко

Отправлено 17 апреля 2018 - 05:05

По каким показателям максимум может протестировать JMeter и HP LoadRunner? прошу ответа 000156.png


  • 0

#10 SALar

SALar

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 2 298 сообщений
  • Город:Москва


Отправлено 17 апреля 2018 - 06:06

 

По каким показателям максимум может протестировать JMeter и HP LoadRunner? прошу ответа 000156.png

 

Ни по каким.

Не, есть люди, забивающие гвозди рубанком и закручивающие шурупы пилой. Но вам то это зачем?

 

PS. Читать от корки до корки: http://blog.shumoos....-oanoedhiaaiea/  Потом спрашивайте.

 

 

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

 

 

+1

 

 Но задача jmeter как и любого генератора - подать нагрузку, он с этим вполне справляется.

 

 

Тимур Хайрулин с вами не согласен. Ему я доверяю больше.


  • 0

-- 

Сергей Мартыненко

Блог 255 ступеней (байки для оруженосца)

facebook (Дети диаграммы Ганта)

ВебПосиделки клуба имени Френсиса Бэкона 

 


#11 misga

misga

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:мишель коко

Отправлено 17 апреля 2018 - 08:43

спасибо за ответ000156.png


  • 0

#12 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 17 апреля 2018 - 15:15

У Тимура Хайрулина были свои задачи, какие не перед каждым стоят. И да, под их задачи jmeter не подходил.
Когда передо мной встала задача провести нагрузочное тестирование сервиса, jmeter я выкинул на 2-й день и взял siedge.

Тем не менее, задачи которые решаются jmeter-ом есть. Даже есть задачи для решения которых достаточно только jmeter.
 


  • 2

#13 Appium

Appium

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

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

Отправлено 18 апреля 2018 - 10:04

... siedge.

...
 

Данная утилита сможет мне помочь в  замере минимальной скорости транзакций и максимальное время ожидания клиента ?


  • 0

#14 gako

gako

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

  • Members
  • PipPip
  • 115 сообщений
  • Город:Калининград

Отправлено 18 апреля 2018 - 12:54

Не сможет, если у вас задача только базу данных протестировать. 


  • 0

#15 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 18 апреля 2018 - 13:04

 

... siedge.

...
 

Данная утилита сможет мне помочь в  замере минимальной скорости транзакций и максимальное время ожидания клиента ?

 

siedge умеет генерировать запросы в множество потоков и валить в консоль коды и тайминги ответов.
Поможет ли это вам - я не знаю. Скорее нет, вы же тестируете не web-сервис.

И прежде чем измерять "минимальную скорость транзакций" и "максимальное время ожидания клиента" определитесь, в чем и что вы будете измерять. Например "транзакция" понятие абсолютно безразменрое. Одна и та-же транзакция выполняемая на 10 и на 10млрд записях - это две большие разницы.
И главное, определитесь зачем вы будете это делать. Понимание цели деятельности снимает 90% вопросов возникающих в процессе.

PS: Нагрузочное тестирование требует хорошего понимания ньюансов окружения, клиент-серверных взаимодействий, сетевых протоколов, настроек ОС, архитектуры системы, профилей нагрузки. В противном случае вы не получите релевантного результата.

Я видел результаты отличающиеся на 2 порядка из за одной "галочки"
Я видел супер инструмент для нагрузочного тестирования на который человек убил месяц и который по факту тестировал производительность его домашнего WiFi, а будучи вынесен на 24-х головый сервер имеющий 10 Гбит до нагружаемой системы, съел одно ядро процессора и обсыпался трейсбеками.


  • 2

#16 Souly

Souly

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

  • Members
  • Pip
  • 1 сообщений
  • ФИО:Никитин Сергей Викторович

Отправлено 08 мая 2019 - 13:35

Доброго дня! Блог переехал? Было бы интересно ознакомиться, где теперь можно найти?

 

 

PS. Читать от корки до корки: http://blog.shumoos....-oanoedhiaaiea/  Потом спрашивайте.

 

 

Столкнулся на практике с ситуацией, когда даже небольшая нагрузка от JMeter выявила серьезные проблемы с БД - сравнивали время ответа на два запроса в разных окружениях (aws vs metal): один запрос тянет данные из БД, другой - нет. Для одинаковых копий БД на серверах с похожими характеристиками итоговая latency логарифмически расходилась с увеличением нагрузки. 


  • 0

#17 Vasiliy

Vasiliy

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 2 959 сообщений
  • ФИО:Касимов Василий
  • Город:Москва

Отправлено 08 мая 2019 - 13:46

Блог не переехал, просто Сергей его не оплатил вовремя.. Подождите, скоро восстановится.
  • 0

#18 Сергей

Сергей

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 245 сообщений
  • Город:Москва

Отправлено 08 мая 2019 - 20:09

Чем JMeter не угодил И чем угодил Siedge?
Ну и заодно, может ещё чем пользовались? HP LoadRunner, SB LoadComplete, Y.Tank, просто Python?
С примерами. пожалуйста.

У Тимура Хайрулина были свои задачи, какие не перед каждым стоят. И да, под их задачи jmeter не подходил.
Когда передо мной встала задача провести нагрузочное тестирование сервиса, jmeter я выкинул на 2-й день и взял siedge.
Тем не менее, задачи которые решаются jmeter-ом есть. Даже есть задачи для решения которых достаточно только jmeter.


  • 0

"Если ты хороший плотник и делаешь красивую тумбочку, ты не будешь прибивать сзади фанеру, даже несмотря на то, что задняя часть повернута к стене, и никто ее не видит. Ты будешь хорошо спать ночью, только если тебе удалось воплотить в своем произведении эстетическую красоту и качество." © Стив Джобс


#19 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 10 мая 2019 - 13:09

Чем JMeter не угодил И чем угодил Siedge?
Ну и заодно, может ещё чем пользовались? HP LoadRunner, SB LoadComplete, Y.Tank, просто Python?
С примерами. пожалуйста.
 

У Тимура Хайрулина были свои задачи, какие не перед каждым стоят. И да, под их задачи jmeter не подходил.
Когда передо мной встала задача провести нагрузочное тестирование сервиса, jmeter я выкинул на 2-й день и взял siedge.
Тем не менее, задачи которые решаются jmeter-ом есть. Даже есть задачи для решения которых достаточно только jmeter.

jmeter на тот момент содержал критический для меня баг, не умел закрывыть сессию после каждого запроса.
siedge просто работал.
Просто ruby пользовался. У меня был написан эмулятор клиента и "нянька" которая генерировала профиль нагрузки запуская и убивая клиентов.
  • 0



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

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