|
Выравнивание размеров и производительности ndf
|
|||
---|---|---|---|
#18+
Добрый день. Есть mssql 2017. База располагается на одном mdf и нескольких ndf все в группе Primary. Для ускорения работы все эти файлы расположены на разных дисках. Но заполняются они не прапорционально. Например основной mdf - 100Gb, дополнительные от 70 до 1Gb. Как я понимаю это происходит из-за неравномерного размещения таблиц и индексов в базе. Вручную переносить не совсем красивый вариант. Можно ли как-то это дело сделать в автоматическом режиме? Т.е. чтобы скул сам определил размер и загрузку и перераспределил всё между файлами ndf. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2021, 13:51 |
|
Выравнивание размеров и производительности ndf
|
|||
---|---|---|---|
#18+
Ice_one1, можно выставить одинаковые размеры файлов и постепенно сиквел выравняет их заполненность https://www.sqlshack.com/understanding-sql-server-proportional-fill-algorithm/ ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2021, 14:02 |
|
Выравнивание размеров и производительности ndf
|
|||
---|---|---|---|
#18+
Ice_one1Для ускорения работы все эти файлы расположены на разных дисках.И вы таки можете замерить это ускорение? У вас старый добрый железный сервер со старыми добрыми магнитными дисками? В моем случае (уверен что у большинства так) виртуальный сервер и виртуальные же диски сиречь разницы как именно расположены файлы не видно. Если у вас так же, то не парьтесь - следите только чтобы место не кончилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2021, 17:21 |
|
Выравнивание размеров и производительности ndf
|
|||
---|---|---|---|
#18+
SERG1257 В моем случае (уверен что у большинства так) виртуальный сервер и виртуальные же диски сиречь разницы как именно расположены файлы не видно. Если у вас так же, то не парьтесь - следите только чтобы место не кончилось. Ишо не все так низко пали. Есть и разумные DBA. ЗЫ. Хотя мне доводилось видать чудаков, на известную букву, "ускоряющих" ms sql добавлением виртуальных ядер. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2021, 19:24 |
|
Выравнивание размеров и производительности ndf
|
|||
---|---|---|---|
#18+
Сиквел выравнивает только по размеру, но не по нагруженности. К сожалению это ускорение можно измерить. Даже банальной нагрузкой на диски, не говоря про инструменты скула. Сервер новый но железный. Виртуальные не дают такой производительности, максимум что смогли выжать это потеря 10% производительности на виртаулке по сравнению с железным решением. Диски nvme pciex. За местом следим, пока достаточно, даже стараемся держать на 50% заполненности на диске. Размер базы 3,7Тб. Поэтому производительность в приоритете. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2021, 11:54 |
|
Выравнивание размеров и производительности ndf
|
|||
---|---|---|---|
#18+
Ice_one1, выравнивать по нагруженности должен человек, производительность - это субъективная и потребительская характеристика. Только Вы знаете, что для Вас означает "выравнивание по нагруженности". ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2021, 13:56 |
|
Выравнивание размеров и производительности ndf
|
|||
---|---|---|---|
#18+
Владислав Колосов выравнивать по нагруженности должен человек, производительность - это субъективная и потребительская характеристика. Только Вы знаете, что для Вас означает "выравнивание по нагруженности". Спасибо. Я приблизительно так и понял. Просто надеялся на то, что существуют какие-то инструменты которыми можно это делать в автоматическом режиме. В моем понимании "нагруженность" это анализ обращений к файлу базы, а также к каким именно таблицам идет запрос. И перемещение таблиц между файлами, для равномерного распределения нагрузки. А то получается, что некоторые диски загружены в два-три раза меньше чем другие. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2021, 19:11 |
|
Выравнивание размеров и производительности ndf
|
|||
---|---|---|---|
#18+
Ice_one1, да, если вы хотите как-то нормировать IO нагрузку, то потребуется проследить за обращениями к таблицам относительно времени. Затем переместить таблицы в файловые группы, расположенные на разных дисках согласно требованиям нагрузки. Одним из показателей того, что диски не успевают обрабатывать потоки данных являются системные счетчики дисковой очереди. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2021, 19:27 |
|
Выравнивание размеров и производительности ndf
|
|||
---|---|---|---|
#18+
Ice_one1, Вы пошли путем экстенсивным, просто увеличивая доступное пространство и практически не влияя на то как оно будет заполнено. Решение же лежит на поверхности - секционирование. представим самую простейшую ситуацию: имеем несколько справочников, чей рост практически никак не влияет на размер базы и пару связанных таблиц, например шапка (чего-то) и табличная часть связанные между собой монотонно увеличивающимся айдишником (бигинт). из физики (я про диски), к примеру, есть 6 лунов на первом луне размещаем саму базу, естественно там будет и останется файловая группа PRIMARY вместе со всеми справочниками добавляем еще 5 файловых групп, пишем функцию секционирования для айдишника с вычислением остатка от его деления на 5 и определяем схему секционирования, как каждому значению остатка своя файловая группа. указываем кластерным ключам наших шапок и табличных частей использовать эту схему секционирования посредством функции секционирования на основании значений айдишников. все! получаем не совсем равномерное, но более-менее нормальное распределение по 1/5 на каждый диск, причем для выборки конкретной шапки с табличной частью будет задействован только один лун. перекос возникать будет если у Вас количество записей в табличной части тоже зависит от остатка деления на 5, например каждая 3-я шапка имеет в 100 раз большую табличную часть.. - но это вряд-ли.. решение - не панацея, но работает. не знаю как показать, ну вот например 4 секции накопления, а в 5-ой складываются оперативные данные. перекос виден в количестве, в размере примерно столько же в % отношении. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2021, 22:00 |
|
|
start [/forum/topic.php?fid=46&fpage=6&tid=1683982]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
73ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 169ms |
0 / 0 |