Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: Выполнить несколько запросов параллельно  [new]
o-o
Guest
a вообще вы заметили, часто тема названа так-то и сяк-то, а спрашивают не совсем это?
вот бы еще была возможность давать теме второе, ральное название,
уже после того как выяснили, что же человек хотел. чтоб в поиске лучше вылазило.
я даже не про темы типа "помогите-спасите!!!"
наверное это надо было куда-то в "предложения" написать...
5 сен 14, 12:10    [16539261]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить несколько запросов параллельно  [new]
Glory
Member

Откуда:
Сообщений: 104751
DM64
мне сравнить два сервера на "приближенной к реальности" нагрузке.

Вот откуда вы знаете эту приближенную к реальности нагрузку ?
И в чем вы ее меряете ?
5 сен 14, 12:12    [16539288]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить несколько запросов параллельно  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31987
Glory
alexeyvg
Но в принципе приближение можно хорошее дать и такими упрощёнными средствами,

Приближение можно дать, выполнив тестовый набор на двух серверах в одном коннекте.
200 параллельно выполняемых случайных наборов дадут фигню, а не приближение.
Так если у них реально выполняется по "N запросов в минуту с каждого из 200 коннектов"? Тогда так и надо эмулировать, почему нет.

К примеру, может, после очередного изменения кода попрут дедлоки или массовые блокировки в приложении?
Из одного коннекта это не воспроизвести, тест пропустит изменения, а продакшен встанет. А так будет более приближенно к реальности.

Конечно, у ТС задача уже, для однократного сравнительного тестирования двух серверов это несколько избыточно, но ИМХО даже для этой цели сравнение при многопоточной нагрузке будет более корректным.
5 сен 14, 12:13    [16539301]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить несколько запросов параллельно  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31987
alexeyvg
Glory
200 параллельно выполняемых случайных наборов дадут фигню, а не приближение.
Так если у них реально выполняется по "N запросов в минуту с каждого из 200 коннектов"? Тогда так и надо эмулировать, почему нет.

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

Понятно, не "произвольные наборы" нафантазировать. Иначе это будет действительно фигня.
5 сен 14, 12:16    [16539342]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить несколько запросов параллельно  [new]
Glory
Member

Откуда:
Сообщений: 104751
alexeyvg
К примеру, может, после очередного изменения кода попрут дедлоки или массовые блокировки в приложении?

А как вы протестируете будущие изменения кода ??

alexeyvg
Так если у них реально выполняется по "N запросов в минуту с каждого из 200 коннектов"? Тогда так и надо эмулировать, почему нет.

Расставленные лично мною в разном порядке запросы - это вовсе не "N запросов в минуту с каждого из 200 коннектов"
5 сен 14, 12:17    [16539345]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить несколько запросов параллельно  [new]
DM64
Guest
Glory
Вот откуда вы знаете эту приближенную к реальности нагрузку ?
И в чем вы ее меряете ?

профайлер же
5 сен 14, 12:24    [16539416]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить несколько запросов параллельно  [new]
invm
Member

Откуда: Москва
Сообщений: 9845
DM64,

Вот еще такое есть - Description of the Replay Markup Language (RML) Utilities for SQL Server
5 сен 14, 12:43    [16539571]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить несколько запросов параллельно  [new]
aleks2
Guest
Glory
alexeyvg
К примеру, может, после очередного изменения кода попрут дедлоки или массовые блокировки в приложении?

А как вы протестируете будущие изменения кода ??

alexeyvg
Так если у них реально выполняется по "N запросов в минуту с каждого из 200 коннектов"? Тогда так и надо эмулировать, почему нет.

Расставленные лично мною в разном порядке запросы - это вовсе не "N запросов в минуту с каждого из 200 коннектов"


Дык я ж говорил: в потугах тредстартера нема никакого смыслу.

aleks2
И ведь никто не сказал страдальцу, что его потуги практически бесполезны.

1. Сравнить быстродействие старого и нового сервера можно запустив запросы ОДИН раз.
2. Все остальное на новом будет "как на старом". Ибо причин для изменения ноль.
5 сен 14, 12:53    [16539668]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить несколько запросов параллельно  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Плин :)
Берете трассу с продакшена, пишете апликуху которая ее читает и исполняет
Запускаете 200 штук етой апликухи и смотрите на результат.
5 сен 14, 13:22    [16539941]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить несколько запросов параллельно  [new]
aleks2
Guest
Maxx
Плин :)
Берете трассу с продакшена, пишете апликуху которая ее читает и исполняет
Запускаете 200 штук етой апликухи и смотрите на результат.


Не могли бы вы пояснить: в чем будет заключаться "результат"?
И каков полезный смысл этого "результата"?
5 сен 14, 13:39    [16540074]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить несколько запросов параллельно  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4902
Для тех, кто может и хочет сделать по уму. Запуск потока на C# сейчас крайне простая операция. Пишите простую прогу за 5 минут, которая запускает запросы ваши сколько угодно параллельно. Трасса это с боевого сервера или тестовые запросы -- вопрос второй.

void StartThread()
{
    System.Threading.Thread t1 = new System.Threading.Thread
      (delegate()
            {

-- запуск SQL 

            });
    t1.Start();
}


Можно сделать в SSIS
5 сен 14, 13:40    [16540080]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить несколько запросов параллельно  [new]
Wlr-l
Member

Откуда:
Сообщений: 606
DM64,

Вообще-то, что Вы хотите сделать - это система массового обслуживания, грубо говоря два этапа:

1-й. Обеспечить нагрузку на старый и новый сервер (уже предложили как это сделать).

2-й. Рассчитать статистические характеристики (см. теорию массового обслуживания).

На основании этого можно получить то, что aleks2 называет "результатом".
5 сен 14, 14:37    [16540509]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить несколько запросов параллельно  [new]
aleks2
Guest
Wlr-l
2-й. Рассчитать статистические характеристики (см. теорию массового обслуживания).

На основании этого можно получить то, что aleks2 называет "результатом".


Родимый, с этого места подробнее! Чего ты там "рассчитать" собрался?
5 сен 14, 14:48    [16540581]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить несколько запросов параллельно  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
DM64,

Бессмысленно тестировать одинаковые запросы на разных серверах, слишком много нюансов возникает, хотите сравнить сервера используйте SQLIOSim
5 сен 14, 14:51    [16540611]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить несколько запросов параллельно  [new]
Wlr-l
Member

Откуда:
Сообщений: 606
Так чтобы убрать нюансы и существуют различные теории. Вопрос лишь в том, сумеем ли мы ими воспользоваться?
5 сен 14, 14:56    [16540643]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить несколько запросов параллельно  [new]
DM64
Guest
Отвечу сразу многим.
Все гораздо проще.
Есть у меня сервер 2008 года, есть в тест-драйве гораздо более свежий (и производительный) сервер.
И есть древнее ПО, с которым старый сервер иногда не справляется.
Вариантов решения как обычно несколько: от смены ПО через оптимизацию кода до тупого наращивания мощностей.
Очевидно, бывают случаи, когда именно тупое наращивание в целом для бизнеса выходит выгоднее. В данной конкретной ситуации.

Так вот, прежде чем оплатить новый сервер нужно сделать минимальную оценку: на сколько попугаев он будет быстрее(или не будет) в том же ПО, чем старый. И сколько эти попугаи будут стоить в итоге.

И для оценки попугаев я решил взять топ XX самых длинных запросов и топ XX самых частых запросов. Затем смешать их в произвольную равномерную кучу и назвать это "типичным рабочим днем пользователя". Смешать раз 200, чтобы получить разных пользователей.
Затем взять скрипты таких "пользователей" и запустить их в старый сервер и одновременно на новый. С отметкой момента запуска всех и момента последнего завершения работы. Это и будет количество попугаев.
Естественно тест будет проходить в равных начальных условиях. И несколько раз после разного аптайма.

Считаю, что разница средневзвешенных попугаев - вполне себе оценка. Что-то сложнее придумывать не считаю нужным. И вопрос задавал именно в разрезе "как технически осуществить".

Если считаете, что методика измерений не подходит под задачу - готов выслушать варианты.
5 сен 14, 15:28    [16540896]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить несколько запросов параллельно  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
Wlr-l
Так чтобы убрать нюансы и существуют различные теории. Вопрос лишь в том, сумеем ли мы ими воспользоваться?


В этом случае нужно начинать с самой главной цели сверки двух серверов,
Что она должна показать?,
что деньги потрачены не зря?,
что он спасет чей то мир? и тд.
Когда появятся ответы на такие вопросы, будет понятно что и как сравнивать.
А пока это как говорится сравнить одного коня с другим, причем оба барахтаются в вакууме.
5 сен 14, 15:31    [16540918]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить несколько запросов параллельно  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4902
DM64
Так вот, прежде чем оплатить новый сервер нужно сделать минимальную оценку: на сколько попугаев он будет быстрее(или не будет) в том же ПО, чем старый. И сколько эти попугаи будут стоить в итоге.





Я такую оценку как-то делал проигрывая частые запросы. Дал ответ, что старый сервер делает 2000 запросов в секунду, новый 4000 в секунду. Заказчика это вполне устроило. А супер-методики тестирования никто в такой ситуации и не требует. Просто тем, что выдает деньги надо убедиться, что они их тратят не в пустую.
5 сен 14, 15:51    [16541079]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить несколько запросов параллельно  [new]
Glory
Member

Откуда:
Сообщений: 104751
a_voronin
Я такую оценку как-то делал проигрывая частые запросы. Дал ответ, что старый сервер делает 2000 запросов в секунду, новый 4000 в секунду.

А что типа синтетический тест такого не покажет ?
Только конкретные запросы конкретной системы ?
5 сен 14, 15:54    [16541097]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить несколько запросов параллельно  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
aleks2
Не могли бы вы пояснить: в чем будет заключаться "результат"?
И каков полезный смысл этого "результата"?

Results :
1. Будет понятно что сервер работает как минимум
2. Снятие все трасс и счетчиков покажет ,что-то (как минимум нагрузку на диски,память,проц етц)
3. Ессно для полной чистоты екперемента одинаковый тест надо прогнать на 2х машинах ,при одинаковых условиях
4. Ессно перед всем етим надо посносить кеши,статистики,планы... сконфигурить железки,сиквел под одинаковые условия

Вроде сие ТС и надо было.. смысл от результата - ну тут ТС виднее,ведь конфигурацию старого и нового железа он не приводил по факту, да и бездумное наращивание железа,как правила особого прироста к производительност и на даст. Но моя думать на вапрос ТС ,я ответил.
5 сен 14, 16:01    [16541149]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить несколько запросов параллельно  [new]
Wlr-l
Member

Откуда:
Сообщений: 606
WarAnt,

Согласен с Вами, но владея различными математическими аппаратами мы сможем

1. Точнее требовать наличие тех или иных исходных данных.
2. Убедить оппонентов, ведь многие руководители свято верят формулам.
5 сен 14, 16:45    [16541424]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить несколько запросов параллельно  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4902
Glory
a_voronin
Я такую оценку как-то делал проигрывая частые запросы. Дал ответ, что старый сервер делает 2000 запросов в секунду, новый 4000 в секунду.

А что типа синтетический тест такого не покажет ?
Только конкретные запросы конкретной системы ?


Типа заказчик так поставил задачу, погонять "наши запросы".
5 сен 14, 16:52    [16541467]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить несколько запросов параллельно  [new]
Glory
Member

Откуда:
Сообщений: 104751
a_voronin
Glory
пропущено...

А что типа синтетический тест такого не покажет ?
Только конкретные запросы конкретной системы ?


Типа заказчик так поставил задачу, погонять "наши запросы".

Какая разница для "попугаев", чьи запросы выполняются ?
5 сен 14, 17:00    [16541526]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить несколько запросов параллельно  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4902
Glory
a_voronin
пропущено...


Типа заказчик так поставил задачу, погонять "наши запросы".

Какая разница для "попугаев", чьи запросы выполняются ?


Вопрос в том, что синтетический тест не всегда показывает, как улучшить производительности системы. У нас админы буквально недавно поставили новый сервер по принципу -- вот самый крутой купили, провели синтетический тест, сказали, что у вас сверхбыстрые диски, чего вы еще хотите? Ан нет, производительность не только не возросла, а даже упала. Сказали, что сервер бракованный, поменяли его. Потом они долго чего-то перенастраивали и добились небольшого улучшения.

Здесь вообще речь идёт о замере на боевой системе.
5 сен 14, 17:27    [16541712]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить несколько запросов параллельно  [new]
Glory
Member

Откуда:
Сообщений: 104751
a_voronin
Вопрос в том, что синтетический тест не всегда показывает, как улучшить производительности системы.

Погодите.
Разве вы своими запросами искали узкие места ?
Если да, то причем тут "число запросов в секунду" ?
Если нет, то какая разница какие именно запросы выполняются ?
5 сен 14, 17:29    [16541728]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить