Storage: как такое может быть?
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
Storage: как такое может быть?
Прошу помощи зала
На картинке длительность двух операций (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.
На картинке длительность двух операций (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
-
- Уже с Приветом
- Posts: 20297
- Joined: 01 Dec 2003 23:16
- Location: Russia->USA
Re: Storage: как такое может быть?
threads постепенно увеличиваются в одном тесте или это разные тесты в одной табличке?
Говори что думаешь, думай что говоришь!
Маразм крепчал и скрепы гнулись
Маразм крепчал и скрепы гнулись
-
- Уже с Приветом
- Posts: 11844
- Joined: 02 Mar 2007 02:14
Re: Storage: как такое может быть?
Для тестировки стораджей существуют другие инструменты. Совершенно непонятно что тестировалось.
Никто не тестирует стораджи, с помочью самопальных аликейшенов, которые непонятно как работают.
Берете например <iozone> и тестируете запись, чтение (последовательные и рандомизированные).
Последовательно увеличиваете количество паралельных потоков, а также меняете длину записи.
Не забывайте размонтировать сторадже, чтобы нивелировать влияние кэша (при чтении).
http://www.iozone.org
Никто не тестирует стораджи, с помочью самопальных аликейшенов, которые непонятно как работают.
Берете например <iozone> и тестируете запись, чтение (последовательные и рандомизированные).
Последовательно увеличиваете количество паралельных потоков, а также меняете длину записи.
Не забывайте размонтировать сторадже, чтобы нивелировать влияние кэша (при чтении).
http://www.iozone.org
Сначала я был хорошим мальчиком, а потом исправился.
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
Re: Storage: как такое может быть?
Постепенно увеличивалось. Раз в пять минут добавлялся еще thread. Сервер прогрет, базы preallocated (нет growth), эффект устойчивый и воспроизводимый.geek7 wrote:threads постепенно увеличиваются в одном тесте или это разные тесты в одной табличке?
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
Re: Storage: как такое может быть?
Чтобы получить еще одну маркетинговую простыню, восхваляющую сервер?Stoic wrote:Для тестировки стораджей существуют другие инструменты. Совершенно непонятно что тестировалось.
Никто не тестирует стораджи, с помочью самопальных аликейшенов, которые непонятно как работают.
Берете например <iozone> и тестируете запись, чтение (последовательные и рандомизированные).
Последовательно увеличиваете количество паралельных потоков, а также меняете длину записи.
Не забывайте размонтировать сторадже, чтобы нивелировать влияние кэша (при чтении).
http://www.iozone.org
Я провожу именно сиквельные тесты потому что storage именно под SQL, под конкретную нагрузку
И тестирование сферического коня в вакууме не нужно.
Интересно, как именно SQL взаимодействует с такими storage.
Я знаю что например для локальных SSD получали скорость более 100K IOPS на специальных тестах, только это опять сферический конь в вакууме
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
-
- Уже с Приветом
- Posts: 1349
- Joined: 28 Nov 2008 17:50
Re: Storage: как такое может быть?
так и должно быть. два процесса будут быстрее писать в буферный кеш, чем один процесс. пока сброс в датафайлы поспевает, вы получаете прирост, когда ио становится ботлнеком, конкуренция за ио дает пенальти.
-
- Уже с Приветом
- Posts: 20297
- Joined: 01 Dec 2003 23:16
- Location: Russia->USA
Re: Storage: как такое может быть?
Как "прогрет" Сервер.. Вы уверены, что с добавлением 2-й, 3-й threads он не делает какой-нибудь оптимизации типа preallocate что-нибудь чтобы новый кеннекшен сразу инсертами занялся, а не ждал инициализации чего-нибудь?Dmitry67 wrote:Постепенно увеличивалось. Раз в пять минут добавлялся еще thread. Сервер прогрет, базы preallocated (нет growth), эффект устойчивый и воспроизводимый.geek7 wrote:threads постепенно увеличиваются в одном тесте или это разные тесты в одной табличке?
Врядли (5 минут это не секунды) но попробуйте сразу забабахать 20 threads или поменять интервал добавления на 1 сек. и на 20 мин. - может натолкнуть на разгадку.
Говори что думаешь, думай что говоришь!
Маразм крепчал и скрепы гнулись
Маразм крепчал и скрепы гнулись
-
- Уже с Приветом
- Posts: 11844
- Joined: 02 Mar 2007 02:14
Re: Storage: как такое может быть?
Понял. Другими словами тестируется не сторадж, а конкретная апликука на SQL, а также возможно настройки базы.Dmitry67 wrote:Чтобы получить еще одну маркетинговую простыню, восхваляющую сервер?Stoic wrote:Для тестировки стораджей существуют другие инструменты. Совершенно непонятно что тестировалось.
Никто не тестирует стораджи, с помочью самопальных аликейшенов, которые непонятно как работают.
Берете например <iozone> и тестируете запись, чтение (последовательные и рандомизированные).
Последовательно увеличиваете количество паралельных потоков, а также меняете длину записи.
Не забывайте размонтировать сторадже, чтобы нивелировать влияние кэша (при чтении).
хттп://шшш.иозоне.орг
Я провожу именно сиквельные тесты потому что стораге именно под СЪЛ, под конкретную нагрузку
И тестирование сферического коня в вакууме не нужно.
Интересно, как именно СЪЛ взаимодействует с такими стораге.
Я знаю что например для локальных ССД получали скорость более 100К ИОПС на специальных тестах, только это опять сферический конь в вакууме
Несколько ввело в заблуждение название топика.
Сначала я был хорошим мальчиком, а потом исправился.
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
Re: Storage: как такое может быть?
Ничего не понятноiDesperado wrote:так и должно быть. два процесса будут быстрее писать в буферный кеш, чем один процесс. пока сброс в датафайлы поспевает, вы получаете прирост, когда ио становится ботлнеком, конкуренция за ио дает пенальти.
Один землекоп за час вырывает один метр канавы. Как три землекопа могут за час вырыть ЧЕТЫРЕ метра? Они что, помогают друг другу?
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
-
- Уже с Приветом
- Posts: 1349
- Joined: 28 Nov 2008 17:50
Re: Storage: как такое может быть?
ну конечно. три землекопа заполнят больше блоков буферного кеша, а процесс который пишет в датафайл положит одним махом работу сразу трех землекопов (scattered write). за один io, работа трех землекопов.Dmitry67 wrote: Ничего не понятно
Один землекоп за час вырывает один метр канавы. Как три землекопа могут за час вырыть ЧЕТЫРЕ метра? Они что, помогают друг другу?
-
- Уже с Приветом
- Posts: 15276
- Joined: 01 Mar 2007 05:18
- Location: VVO->ORD->DFW->SFO->DFW->PDX
Re: Storage: как такое может быть?
втроем они всяко одолеют экскаваторщика, а вот в одиночку - сыкотноDmitry67 wrote:Ничего не понятноiDesperado wrote:так и должно быть. два процесса будут быстрее писать в буферный кеш, чем один процесс. пока сброс в датафайлы поспевает, вы получаете прирост, когда ио становится ботлнеком, конкуренция за ио дает пенальти.
Один землекоп за час вырывает один метр канавы. Как три землекопа могут за час вырыть ЧЕТЫРЕ метра? Они что, помогают друг другу?
Мат на форуме запрещен, блдж!
-
- Уже с Приветом
- Posts: 3000
- Joined: 14 Apr 2004 01:11
- Location: SFBA (было: Минск, Беларусь)
Re: Storage: как такое может быть?
Это где это на исходном графике такое видно? График показывет, что при увеличении количества потоков с 1 до 4 время заполнения таблицы падает с 13 до 10 секунд. Где тут четыре метра у трех землекопов???Dmitry67 wrote:Один землекоп за час вырывает один метр канавы. Как три землекопа могут за час вырыть ЧЕТЫРЕ метра? Они что, помогают друг другу?
Best regards,
Андрей
Андрей
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
Re: Storage: как такое может быть?
НевозможноiDesperado wrote:ну конечно. три землекопа заполнят больше блоков буферного кеша, а процесс который пишет в датафайл положит одним махом работу сразу трех землекопов (scattered write). за один io, работа трех землекопов.Dmitry67 wrote: Ничего не понятно
Один землекоп за час вырывает один метр канавы. Как три землекопа могут за час вырыть ЧЕТЫРЕ метра? Они что, помогают друг другу?
Каждый процесс работает со своей базой
И нет такой операции как "merge" IO запросов.
Split есть, а merge нет
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
Re: Storage: как такое может быть?
Ну?AndreyT wrote:Это где это на исходном графике такое видно? График показывет, что при увеличении количества потоков с 1 до 4 время заполнения таблицы падает с 13 до 10 секунд. Где тут четыре метра у трех землекопов???Dmitry67 wrote:Один землекоп за час вырывает один метр канавы. Как три землекопа могут за час вырыть ЧЕТЫРЕ метра? Они что, помогают друг другу?
Процессов то 4!!! И КАЖДЫЙ заполняет свою таблицу за 10 секунд
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
-
- Уже с Приветом
- Posts: 1349
- Joined: 28 Nov 2008 17:50
Re: Storage: как такое может быть?
есть такая. я уже говорил про WriteFileGather, плюс любой приличный сторидж умеет оптимизировать очередь SCSI команд.Dmitry67 wrote: Невозможно
Каждый процесс работает со своей базой
И нет такой операции как "merge" IO запросов.
Split есть, а merge нет
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
Re: Storage: как такое может быть?
Это все равно не объясняет, почему ОДИН процесс работает медленнее всего
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
-
- Уже с Приветом
- Posts: 20297
- Joined: 01 Dec 2003 23:16
- Location: Russia->USA
Re: Storage: как такое может быть?
Типа самосвалу облом каждую лопату отдельно везти, вот и ждет пока кузов накидают или на обед пора будет... соответственно накидав полный кузов еще до обеда - получам сокращение перекура => прирост производительностиDmitry67 wrote:Ничего не понятноiDesperado wrote:так и должно быть. два процесса будут быстрее писать в буферный кеш, чем один процесс. пока сброс в датафайлы поспевает, вы получаете прирост, когда ио становится ботлнеком, конкуренция за ио дает пенальти.
Один землекоп за час вырывает один метр канавы. Как три землекопа могут за час вырыть ЧЕТЫРЕ метра? Они что, помогают друг другу?
но чем теоретизировать на скудных данных я бы таки поигрался с параметрами теста
Говори что думаешь, думай что говоришь!
Маразм крепчал и скрепы гнулись
Маразм крепчал и скрепы гнулись
-
- Уже с Приветом
- Posts: 38016
- Joined: 14 Dec 2006 20:13
- Location: USA
Re: Storage: как такое может быть?
Да запросто. Они будут рыть по слоям, например.Dmitry67 wrote:Ничего не понятноiDesperado wrote:так и должно быть. два процесса будут быстрее писать в буферный кеш, чем один процесс. пока сброс в датафайлы поспевает, вы получаете прирост, когда ио становится ботлнеком, конкуренция за ио дает пенальти.
Один землекоп за час вырывает один метр канавы. Как три землекопа могут за час вырыть ЧЕТЫРЕ метра? Они что, помогают друг другу?
В данном случае вы нарвались на какую то то ли задержку отсылки операции ввода вывода то ли на то что при нарастании загрузки срабатывает read ahead то ли просто на такой момент, что при низкой загрузке в том же рейд-6 система будет ЧИТАТЬ стрип для записи а при высокой - ваши треды заполнят стрип сами и читать старый не понадобится.
Короче, меряли вы сферического коня неизвестной породы в вакууме.
(Кстати, и с iozone толку так себе, но там хоть ясно чего меряется)
// А у автора еще и база. То есть пишется лог, потом пишутся сами блоки, потом правится лог. Короче, при увеличении загрузки да в многоуровневой среде каких только чудес нелинейных не увидишь.