Storage: как такое может быть?

User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Storage: как такое может быть?

Post by Dmitry67 »

Прошу помощи зала

На картинке длительность двух операций (Ins - заполнение таблицы, CreIdx - создание индекса) в секундах (ось Y) для RAID 6 и RAID 10. Тип рейда на самом деле не важен. По оси X отложено число параллельных threads. Так вот, что меня поражает, что начальная часть графика Ins. До есть при увеличении числа threads от 1 до 9 скорость каждого процесса... увеличивается

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

если что, что устройство netApp

Storage setup.

2 controllers (A and B)
Controller A has the DB volume
Controller B has the Log volume
Cache disabled on both volumes

DB volume config: Raid 10 using 10 x 800GB SSD
LOG volume config: Raid 10 using 4 x 800GB SSD

Connection is 10Gb iscsi to the server.
You do not have the required permissions to view the files attached to this post.
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
geek7
Уже с Приветом
Posts: 20297
Joined: 01 Dec 2003 23:16
Location: Russia->USA

Re: Storage: как такое может быть?

Post by geek7 »

threads постепенно увеличиваются в одном тесте или это разные тесты в одной табличке?
Говори что думаешь, думай что говоришь!
Маразм крепчал и скрепы гнулись
User avatar
Stoic
Уже с Приветом
Posts: 11844
Joined: 02 Mar 2007 02:14

Re: Storage: как такое может быть?

Post by Stoic »

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

Берете например <iozone> и тестируете запись, чтение (последовательные и рандомизированные).
Последовательно увеличиваете количество паралельных потоков, а также меняете длину записи.
Не забывайте размонтировать сторадже, чтобы нивелировать влияние кэша (при чтении).
http://www.iozone.org
Сначала я был хорошим мальчиком, а потом исправился.
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Re: Storage: как такое может быть?

Post by Dmitry67 »

geek7 wrote:threads постепенно увеличиваются в одном тесте или это разные тесты в одной табличке?
Постепенно увеличивалось. Раз в пять минут добавлялся еще thread. Сервер прогрет, базы preallocated (нет growth), эффект устойчивый и воспроизводимый.
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Re: Storage: как такое может быть?

Post by Dmitry67 »

Stoic wrote:Для тестировки стораджей существуют другие инструменты. Совершенно непонятно что тестировалось.
Никто не тестирует стораджи, с помочью самопальных аликейшенов, которые непонятно как работают.

Берете например <iozone> и тестируете запись, чтение (последовательные и рандомизированные).
Последовательно увеличиваете количество паралельных потоков, а также меняете длину записи.
Не забывайте размонтировать сторадже, чтобы нивелировать влияние кэша (при чтении).
http://www.iozone.org
Чтобы получить еще одну маркетинговую простыню, восхваляющую сервер?
Я провожу именно сиквельные тесты потому что storage именно под SQL, под конкретную нагрузку
И тестирование сферического коня в вакууме не нужно.
Интересно, как именно SQL взаимодействует с такими storage.

Я знаю что например для локальных SSD получали скорость более 100K IOPS на специальных тестах, только это опять сферический конь в вакууме :)
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
iDesperado
Уже с Приветом
Posts: 1349
Joined: 28 Nov 2008 17:50

Re: Storage: как такое может быть?

Post by iDesperado »

так и должно быть. два процесса будут быстрее писать в буферный кеш, чем один процесс. пока сброс в датафайлы поспевает, вы получаете прирост, когда ио становится ботлнеком, конкуренция за ио дает пенальти.
User avatar
geek7
Уже с Приветом
Posts: 20297
Joined: 01 Dec 2003 23:16
Location: Russia->USA

Re: Storage: как такое может быть?

Post by geek7 »

Dmitry67 wrote:
geek7 wrote:threads постепенно увеличиваются в одном тесте или это разные тесты в одной табличке?
Постепенно увеличивалось. Раз в пять минут добавлялся еще thread. Сервер прогрет, базы preallocated (нет growth), эффект устойчивый и воспроизводимый.
Как "прогрет" Сервер.. Вы уверены, что с добавлением 2-й, 3-й threads он не делает какой-нибудь оптимизации типа preallocate что-нибудь чтобы новый кеннекшен сразу инсертами занялся, а не ждал инициализации чего-нибудь?
Врядли (5 минут это не секунды) но попробуйте сразу забабахать 20 threads или поменять интервал добавления на 1 сек. и на 20 мин. - может натолкнуть на разгадку.
Говори что думаешь, думай что говоришь!
Маразм крепчал и скрепы гнулись
User avatar
Stoic
Уже с Приветом
Posts: 11844
Joined: 02 Mar 2007 02:14

Re: Storage: как такое может быть?

Post by Stoic »

Dmitry67 wrote:
Stoic wrote:Для тестировки стораджей существуют другие инструменты. Совершенно непонятно что тестировалось.
Никто не тестирует стораджи, с помочью самопальных аликейшенов, которые непонятно как работают.

Берете например <iozone> и тестируете запись, чтение (последовательные и рандомизированные).
Последовательно увеличиваете количество паралельных потоков, а также меняете длину записи.
Не забывайте размонтировать сторадже, чтобы нивелировать влияние кэша (при чтении).
хттп://шшш.иозоне.орг
Чтобы получить еще одну маркетинговую простыню, восхваляющую сервер?
Я провожу именно сиквельные тесты потому что стораге именно под СЪЛ, под конкретную нагрузку
И тестирование сферического коня в вакууме не нужно.
Интересно, как именно СЪЛ взаимодействует с такими стораге.

Я знаю что например для локальных ССД получали скорость более 100К ИОПС на специальных тестах, только это опять сферический конь в вакууме :)
Понял. Другими словами тестируется не сторадж, а конкретная апликука на SQL, а также возможно настройки базы.
Несколько ввело в заблуждение название топика.
Сначала я был хорошим мальчиком, а потом исправился.
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Re: Storage: как такое может быть?

Post by Dmitry67 »

iDesperado wrote:так и должно быть. два процесса будут быстрее писать в буферный кеш, чем один процесс. пока сброс в датафайлы поспевает, вы получаете прирост, когда ио становится ботлнеком, конкуренция за ио дает пенальти.
Ничего не понятно
Один землекоп за час вырывает один метр канавы. Как три землекопа могут за час вырыть ЧЕТЫРЕ метра? Они что, помогают друг другу?
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
iDesperado
Уже с Приветом
Posts: 1349
Joined: 28 Nov 2008 17:50

Re: Storage: как такое может быть?

Post by iDesperado »

Dmitry67 wrote: Ничего не понятно
Один землекоп за час вырывает один метр канавы. Как три землекопа могут за час вырыть ЧЕТЫРЕ метра? Они что, помогают друг другу?
ну конечно. три землекопа заполнят больше блоков буферного кеша, а процесс который пишет в датафайл положит одним махом работу сразу трех землекопов (scattered write). за один io, работа трех землекопов.
User avatar
АццкоМото
Уже с Приветом
Posts: 15276
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Storage: как такое может быть?

Post by АццкоМото »

Dmitry67 wrote:
iDesperado wrote:так и должно быть. два процесса будут быстрее писать в буферный кеш, чем один процесс. пока сброс в датафайлы поспевает, вы получаете прирост, когда ио становится ботлнеком, конкуренция за ио дает пенальти.
Ничего не понятно
Один землекоп за час вырывает один метр канавы. Как три землекопа могут за час вырыть ЧЕТЫРЕ метра? Они что, помогают друг другу?
втроем они всяко одолеют экскаваторщика, а вот в одиночку - сыкотно :umnik1:
Мат на форуме запрещен, блдж!
User avatar
AndreyT
Уже с Приветом
Posts: 3000
Joined: 14 Apr 2004 01:11
Location: SFBA (было: Минск, Беларусь)

Re: Storage: как такое может быть?

Post by AndreyT »

Dmitry67 wrote:Один землекоп за час вырывает один метр канавы. Как три землекопа могут за час вырыть ЧЕТЫРЕ метра? Они что, помогают друг другу?
Это где это на исходном графике такое видно? График показывет, что при увеличении количества потоков с 1 до 4 время заполнения таблицы падает с 13 до 10 секунд. Где тут четыре метра у трех землекопов???
Best regards,
Андрей
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Re: Storage: как такое может быть?

Post by Dmitry67 »

iDesperado wrote:
Dmitry67 wrote: Ничего не понятно
Один землекоп за час вырывает один метр канавы. Как три землекопа могут за час вырыть ЧЕТЫРЕ метра? Они что, помогают друг другу?
ну конечно. три землекопа заполнят больше блоков буферного кеша, а процесс который пишет в датафайл положит одним махом работу сразу трех землекопов (scattered write). за один io, работа трех землекопов.
Невозможно
Каждый процесс работает со своей базой
И нет такой операции как "merge" IO запросов.
Split есть, а merge нет
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Re: Storage: как такое может быть?

Post by Dmitry67 »

AndreyT wrote:
Dmitry67 wrote:Один землекоп за час вырывает один метр канавы. Как три землекопа могут за час вырыть ЧЕТЫРЕ метра? Они что, помогают друг другу?
Это где это на исходном графике такое видно? График показывет, что при увеличении количества потоков с 1 до 4 время заполнения таблицы падает с 13 до 10 секунд. Где тут четыре метра у трех землекопов???
Ну?
Процессов то 4!!! И КАЖДЫЙ заполняет свою таблицу за 10 секунд
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
iDesperado
Уже с Приветом
Posts: 1349
Joined: 28 Nov 2008 17:50

Re: Storage: как такое может быть?

Post by iDesperado »

Dmitry67 wrote: Невозможно
Каждый процесс работает со своей базой
И нет такой операции как "merge" IO запросов.
Split есть, а merge нет
есть такая. я уже говорил про WriteFileGather, плюс любой приличный сторидж умеет оптимизировать очередь SCSI команд.
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Re: Storage: как такое может быть?

Post by Dmitry67 »

Это все равно не объясняет, почему ОДИН процесс работает медленнее всего
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
geek7
Уже с Приветом
Posts: 20297
Joined: 01 Dec 2003 23:16
Location: Russia->USA

Re: Storage: как такое может быть?

Post by geek7 »

Dmitry67 wrote:
iDesperado wrote:так и должно быть. два процесса будут быстрее писать в буферный кеш, чем один процесс. пока сброс в датафайлы поспевает, вы получаете прирост, когда ио становится ботлнеком, конкуренция за ио дает пенальти.
Ничего не понятно
Один землекоп за час вырывает один метр канавы. Как три землекопа могут за час вырыть ЧЕТЫРЕ метра? Они что, помогают друг другу?
Типа самосвалу облом каждую лопату отдельно везти, вот и ждет пока кузов накидают или на обед пора будет... соответственно накидав полный кузов еще до обеда - получам сокращение перекура => прирост производительности

но чем теоретизировать на скудных данных я бы таки поигрался с параметрами теста
Говори что думаешь, думай что говоришь!
Маразм крепчал и скрепы гнулись
StrangerR
Уже с Приветом
Posts: 38016
Joined: 14 Dec 2006 20:13
Location: USA

Re: Storage: как такое может быть?

Post by StrangerR »

Dmitry67 wrote:
iDesperado wrote:так и должно быть. два процесса будут быстрее писать в буферный кеш, чем один процесс. пока сброс в датафайлы поспевает, вы получаете прирост, когда ио становится ботлнеком, конкуренция за ио дает пенальти.
Ничего не понятно
Один землекоп за час вырывает один метр канавы. Как три землекопа могут за час вырыть ЧЕТЫРЕ метра? Они что, помогают друг другу?
Да запросто. Они будут рыть по слоям, например.

В данном случае вы нарвались на какую то то ли задержку отсылки операции ввода вывода то ли на то что при нарастании загрузки срабатывает read ahead то ли просто на такой момент, что при низкой загрузке в том же рейд-6 система будет ЧИТАТЬ стрип для записи а при высокой - ваши треды заполнят стрип сами и читать старый не понадобится.

Короче, меряли вы сферического коня неизвестной породы в вакууме.

(Кстати, и с iozone толку так себе, но там хоть ясно чего меряется)

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

Return to “Вопросы и новости IT”