Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 Форматирование дисков  [new]
Alexander Us
Member

Откуда:
Сообщений: 1079
MS рекомендует форматировать диски под рабочие базы, лог и темпдб в размер кластера 64к.

- А кто нибудь делал это или об этом только говорят?
- Как вы обошлись с "bytes per sector", "Bytes per physical sector"?
- Форматировали через контроллер или оставили как есть?
- Кроме того, форматировать диск лога в в размер кластера 64к это не перебор?

ЗЫ: спрашиваю, т.к. сейчас переношу базы на новое железо (с ssd дисками), SQL2008R2
30 авг 19, 16:42    [21960710]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
Alexander Us
Member

Откуда:
Сообщений: 1079
Alexander Us,

Отформатировал новый сервер в 64к кластеры, настроил зеркалирование со старого, чтобы перенести базу, теперь лезет ошибка (некритично, но неприятная)
"9012 Server There have been 25958400 misaligned log IOs which required falling back to synchronous IO. The current IO is on file L:\XXX.ldf."

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

У меня же сектора на старой и новой машине одинаковы - 512E, только размер кластера разный.

Хоть кто то
- работает на машите с 64k кластерами?
- какой режим сектора вы используете: 512, 512E, "native 4k"?
- получал эту ошибку?
2 сен 19, 16:37    [21962030]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36501
https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2008/dd758814(v=sql.100)
2 сен 19, 16:51    [21962040]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
Alexander Us
Member

Откуда:
Сообщений: 1079
Гавриленко Сергей Алексеевич
https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2008/dd758814(v=sql.100)


Спасибо, но я это уже читал. Там речь идет о выравнивании партиций, чтобы не происходило ненужного увеличения числа IO.
В windows server 2012 это делается автоматически.
2 сен 19, 17:01    [21962052]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 6957
Alexander Us,

64к работаем. Для копирования баз используем бэкапы. Я подозреваю, что у вас синхронное зеркало и сеть/сервер его не тянет.
2 сен 19, 17:56    [21962087]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
Alexander Us
Member

Откуда:
Сообщений: 1079
Владислав Колосов
Alexander Us,
64к работаем. Для копирования баз используем бэкапы. Я подозреваю, что у вас синхронное зеркало и сеть/сервер его не тянет.


Владислав,
с "тягой" всё ок, но похоже на эту проблему: "FIX: Slow synchronization when disks have different sector sizes for primary and secondary replica log files in SQL Server AG and Logshipping environments"

Видимо, на всякий случай, придётся отказаться от 64к кластров.

Удивительно, что только Вы используете 64к кластры, хотя это явная рекомендация от MS.
Я думал, отзовутся многие.

Правда и "4K native" режим для размера секторв вроде тоже рекомендован
,но совершенно не ясно, как его включить (в UI контроллера не нашел, в железе я не спец)
,и надо ли его использовать для SSD
3 сен 19, 12:59    [21962416]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5043
Alexander Us
Видимо, на всякий случай, придётся отказаться от 64к кластров.

Удивительно, что только Вы используете 64к кластры, хотя это явная рекомендация от MS.
Я думал, отзовутся многие.


я бы на вашем месте привел все диски к 64к

если "многие" не отзываются, это не значит, что 64к не используется
на последних двух работах парки сиквелов (200 & 800 штук) были на дисках с 64к кластером - это было стандартной подготовкой дисков для сиквела
3 сен 19, 13:19    [21962436]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 29606
Alexander Us
Я думал, отзовутся многие.
Пропорцию лучше считать не по отношению "кто отозвался/общее количество жителей земли"
Иначе цифры получатся недостоверными.
Лучше использовать соотношение из данных, предоставленных откликнувшимися. То есть пока что 1 использующий / 1 всего = 1, то есть "все"
Alexander Us
Удивительно, что только Вы используете 64к кластры, хотя это явная рекомендация от MS.
Я думаю, почти все используют либо 64, либо 256, я не встречал в разных компаниях другого подхода, с конца 90-х
3 сен 19, 22:17    [21962900]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5043
alexeyvg
Я думаю, почти все используют либо 64, либо 256, я не встречал в разных компаниях другого подхода, с конца 90-х

не видел 256к на современных версиях винды для NTFS
64k max
3 сен 19, 23:36    [21962914]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 29606
komrad
alexeyvg
Я думаю, почти все используют либо 64, либо 256, я не встречал в разных компаниях другого подхода, с конца 90-х

не видел 256к на современных версиях винды для NTFS
64k max
Ой, перепутал со страйпом в массиве :-(
4 сен 19, 00:42    [21962932]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6324
Alexander Us,

А зачем менять дефолты, есть выгода на тестах?

NTFS умеет в экстенты, а блоки на SSD вообще 1-2Мб например
4 сен 19, 00:53    [21962933]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6324
Более того, для SSD NTFS не самая удачная ФС - высокая нагрузка обязательных перезаписей служебных областей, куча индексов и ACL.

Но для MSSQL выбора считай, что нет.

У меня нет данных по ReFS, да и вообще оптимизаций для SSD не особо заметно пока нигде (

Были бы интересны новости прогресса в этой области.
4 сен 19, 01:12    [21962934]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4006
Alexander Us
MS рекомендует форматировать диски под рабочие базы, лог и темпдб в размер кластера 64к.
- А кто нибудь делал это или об этом только говорят?
- Кроме того, форматировать диск лога в в размер кластера 64к это не перебор?

Делал раньше. Диск логов форматировать с размером кластера 64к не стоит, так как там иная структура хранения данных.
Не экстенты по 8 8к страниц как у БД.
4 сен 19, 08:56    [21962981]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
Kirillich
Member

Откуда:
Сообщений: 581
Alexander Us
- работает на машите с 64k кластерами?
- какой режим сектора вы используете: 512, 512E, "native 4k"?
- получал эту ошибку?


Ошибку получал при переносе на поданные диски через Storage Spaces.
Там они становятся 4к

Либо переносить не всех серверах (mirroring, AG) на диски с одинаковыми размерами физического сектора либо запускать на всем нодах с флагом трассировки.

Форматировать по 64к кластер
4 сен 19, 09:07    [21962990]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
Kirillich
Member

Откуда:
Сообщений: 581
Kirillich
Либо переносить не всех серверах

читать как:
Либо переносить НА всех серверах
4 сен 19, 09:08    [21962991]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5043
SQL2008
Диск логов форматировать с размером кластера 64к не стоит, так как там иная структура хранения данных.
Не экстенты по 8 8к страниц как у БД.

у лога важнее скорость записи (I/O pattern), чем эффективности хранения, если это имелось ввиду
поэтому "структура хранения" - дело десятое
4 сен 19, 11:39    [21963155]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
Alexander Us
Member

Откуда:
Сообщений: 1079
komrad
у лога важнее скорость записи (I/O pattern), чем эффективности хранения, если это имелось ввиду
поэтому "структура хранения" - дело десятое


Так при каком размере кластера диска лога можно ожидать наибольшей скорости записи?
4к или 64к ?
4 сен 19, 12:17    [21963244]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5043
Alexander Us
komrad
у лога важнее скорость записи (I/O pattern), чем эффективности хранения, если это имелось ввиду
поэтому "структура хранения" - дело десятое


Так при каком размере кластера диска лога можно ожидать наибольшей скорости записи?
4к или 64к ?

скорее интересней другое - сколько надо записать блоков диску при одной "записи" сиквела
если лог пишется сиквелом блоками по 512кб-60к, то в случае 64к - это один блок на диске, а в случае 4к - 16 блоков
следственно, операций записи на уровне диска гораздо больше (аппаратное кэширование не берем в расчет)
4 сен 19, 12:33    [21963284]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5043
komrad
блоками по 512кб-60к

опечатка, должно быть 512байт-60кб
4 сен 19, 14:02    [21963428]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
Alexander Us
Member

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

так раки какие покупать, маленькие по 3 или большие по 5?
(диск лога форматировать по 4k или 64k ?)
4 сен 19, 14:54    [21963510]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5043
Alexander Us
(диск лога форматировать по 4k или 64k ?)

в общем случае, я бы следовал рекомендации МС и использовал 64к
4 сен 19, 14:58    [21963519]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 6957
Alexander Us,

на производительность журналов больше влияет количество VLF, нежели размер кластера.
4 сен 19, 15:19    [21963549]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
Alexander Us
Member

Откуда:
Сообщений: 1079
Что касается ошибки 9012:
"9012 Server There have been 25958400 misaligned log IOs which required falling back to synchronous IO. The current IO is on file L:\XXX.ldf."

Оказалось, что в моём случае она возникает при зеркалировании между разными версиями SQL (2008 -> 2008R2)

Воспроизведение:

1) Вклчаю зеркалирование базы XXX с сервера S1 (sql2008) на S2 (sql2008 R2) - ошибка появляется в логах S2

2) Переключаю зеркалирование, удаляю зеркалирование

3) Вклчаю зеркалирование этой же базы с сервера S2 (sql2008 R2) на S3 (sql2008 R2) - ошибка уже не появляется

ЗЫ: Спасибо всем откликнувшимся.

ЗЗЫ: Хоть мой основной вопрос (надеюсь) решен, некоторые другие отвечены,
осталась не раскрытой тема низкоуровнего форматирования: режим сектора: 512, 512E или "native 4k" и их применение с SSD.
Буду рад, если кто выскажется и по этой теме.
4 сен 19, 16:10    [21963636]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
Kirillich
Member

Откуда:
Сообщений: 581
Alexander Us
Что касается ошибки 9012:
"9012 Server There have been 25958400 misaligned log IOs which required falling back to synchronous IO. The current IO is on file L:\XXX.ldf."

Оказалось, что в моём случае она возникает при зеркалировании между разными версиями SQL (2008 -> 2008R2)

Воспроизведение:

1) Вклчаю зеркалирование базы XXX с сервера S1 (sql2008) на S2 (sql2008 R2) - ошибка появляется в логах S2

2) Переключаю зеркалирование, удаляю зеркалирование

3) Вклчаю зеркалирование этой же базы с сервера S2 (sql2008 R2) на S3 (sql2008 R2) - ошибка уже не появляется

ЗЫ: Спасибо всем откликнувшимся.

ЗЗЫ: Хоть мой основной вопрос (надеюсь) решен, некоторые другие отвечены,
осталась не раскрытой тема низкоуровнего форматирования: режим сектора: 512, 512E или "native 4k" и их применение с SSD.
Буду рад, если кто выскажется и по этой теме.


не правильный вывод сделал.

запусти под администратором на всех серверах
fsutil fsinfo ntfsinfo %имя_тома%

и увидешь в чем разница.
4 сен 19, 16:31    [21963650]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
Alexander Us
Member

Откуда:
Сообщений: 1079
Kirillich
запусти под администратором на всех серверах
fsutil fsinfo ntfsinfo %имя_тома%
и увидешь в чем разница.


Запускал.
Прежде чем писать в форум переформатировал диски нового сервера назад, в 4k кластеры, на обоих серверах было:
Bytes per Sector : 512
Bytes per Physical Sector : 4096
Bytes per Cluster : 4096
Bytes pet FileRecord Segment : 1024

а ошибка осталась.
4 сен 19, 16:54    [21963688]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 6957
Alexander Us,

вообще любопsтный вопрос, ч думал, что вопросы низкоуровнего форматирования ушли вместе с MFM/IDE винтами и MS-DOS. Сейчас ведь винтовые контроллеры не пускают к "блинам" и делают то что им предписывают инженеры производителя. Т.е. они выставляют на интерфейс какую-то абстракцию вместо физический структуры.
4 сен 19, 17:28    [21963738]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
Alexander Us
Member

Откуда:
Сообщений: 1079
Владислав Колосов,

к сожалению не разбираюсь в железе.
просто полистал эту статейку от 2014 года
там пишут о преемуществах "4K native" форматирования
так и появились вопросы
4 сен 19, 17:43    [21963757]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 6957
Alexander Us,

что-то такое припоминаю, мелькало в описании SSD накопителей или комбинированных на сайте IBM, кажется. Якобы 4К супер технология бла бла бла. Я думаю, что наилучшим решением на производстве будет использовать настройки по умолчанию, дабы не пришлось зависеть от типов оборудования, создавать регламент форматирования и еще много всякой пляски и заклинаний. Но это мое мнение.
4 сен 19, 19:33    [21963853]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
shalomb
Member

Откуда: Израиль
Сообщений: 77
Для дисков SSD это уже не актуально ,это на шпинделе было актуально .
4 сен 19, 21:10    [21963951]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6324
shalomb
Для дисков SSD это уже не актуально ,это на шпинделе было актуально .
На соло шпинделе 4к, на рейде 64к.
А что с SSD пока темный лес
4 сен 19, 23:37    [21964065]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
Kirillich
Member

Откуда:
Сообщений: 581
[quot Alexander Us]
Kirillich
Bytes per Physical Sector : 4096

на всех серверах?
уверен что на сервере S1 (sql2008) Bytes per Physical Sector : 512
5 сен 19, 08:05    [21964165]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
Alexander Us
Member

Откуда:
Сообщений: 1079
Kirillich
уверен что на сервере S1 (sql2008) Bytes per Physical Sector : 512


нет нет, именно как я написал.

Вот ещё раз, S1 (sql2008), в оригинале:

NTFS-Version : 3.1
LFS-Version : 2.0
......
Bytes pro Sektor : 512
Bytes pro physischem Sektor : 4096
Bytes pro Cluster : 4096
Bytes pro Dateidatensatzsegment : 1024
5 сен 19, 09:31    [21964226]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
Alexander Us
Member

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

посмотрите эту статью

Такое форматирование называется "512E Advanced Format".
5 сен 19, 09:35    [21964236]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 6957
2008 и 2008r2, емнип имеют массу технических отличий.
5 сен 19, 11:16    [21964336]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
Alexander Us
Member

Откуда:
Сообщений: 1079
Вот ещё разъяснения от MS по размеру кластеров: Cluster size recommendations for ReFS and NTFS
5 сен 19, 15:07    [21964651]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
Alexander Us
Member

Откуда:
Сообщений: 1079
После изучения "лучших практик" и обсуждения решил попробовать:

Создал
- базу TEST_DB на диске с 4k кластерами.
- две таблицы - "узкую" и "широкую", слелал в них по 4 вставки с последующим CHECKPOINT
- сделал в "широкую" таблицу перелив данных тулм на основе SqlBulkCopy

наблюдал файловую активность через Process Monitor.

Должен сказать, что после этого я совсем не уверен, что
- диск лога надо форматировать иначе чем в 4kb
- даже для диска данных 64kb выглядят перебопрм

4 вставки в "узкую" таблицу (первые 4 строки лога) с последующим CHECKPOINT (остальные строки)
+
"Time of Day""Process Name""PID""Operation""Path""Result""Detail"
"09:56:164204300""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB_log.ldf""SUCCESS""Offset: 46.149.632 Length: 4.096 I/O Flags: Non-cached Write Through Priority: Normal"
"09:56:164233505""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB_log.ldf""SUCCESS""Offset: 46.153.728 Length: 4.096 I/O Flags: Non-cached Write Through Priority: Normal"
"09:56:173333239""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB_log.ldf""SUCCESS""Offset: 46.157.824 Length: 4.096 I/O Flags: Non-cached Write Through Priority: Normal"
"09:56:173354556""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB_log.ldf""SUCCESS""Offset: 46.161.920 Length: 4.096 I/O Flags: Non-cached Write Through Priority: Normal"
"09:56:305772764""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB_log.ldf""SUCCESS""Offset: 46.166.016 Length: 4.096 I/O Flags: Non-cached Write Through Priority: Normal"
"09:56:305979700""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 901.005.312 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:56:306013292""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 1.064.960 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:56:306013639""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 147.456 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:56:306015230""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 1.966.080 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:56:306027367""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 344.064 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:56:306112802""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB_log.ldf""SUCCESS""Offset: 46.170.112 Length: 4.096 I/O Flags: Non-cached Write Through Priority: Normal"
"09:56:306114165""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB_log.ldf""SUCCESS""Offset: 0 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:56:306114961""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 73.728 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"


4 вставки в "широкую" таблицу (первые 4 строки лога) с последующим CHECKPOINT (остальные строки)
+
"Time of Day""Process Name""PID""Operation""Path""Result""Detail"
"09:57:566394558""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB_log.ldf""SUCCESS""Offset: 46.174.208 Length: 16.384 I/O Flags: Non-cached Write Through Priority: Normal"
"09:57:573256498""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB_log.ldf""SUCCESS""Offset: 46.190.592 Length: 12.288 I/O Flags: Non-cached Write Through Priority: Normal"
"09:57:581273273""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB_log.ldf""SUCCESS""Offset: 46.202.880 Length: 36.864 I/O Flags: Non-cached Write Through Priority: Normal"
"09:57:588301600""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB_log.ldf""SUCCESS""Offset: 46.239.744 Length: 20.480 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014219367""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB_log.ldf""SUCCESS""Offset: 46.260.224 Length: 16.384 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014224486""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 122.200.064 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014250310""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 901.054.464 Length: 40.960 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014251757""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 163.684.352 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014253149""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 163.545.088 Length: 32.768 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014254002""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 898.293.760 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014254101""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 159.170.560 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014266909""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 619.528.192 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014268744""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 648.257.536 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014288601""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 147.456 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014288938""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 417.792 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014289676""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 1.064.960 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014290378""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 1.966.080 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014312677""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 738.058.240 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014347180""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 619.634.688 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014356819""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 318.914.560 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014360289""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 722.771.968 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014370406""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 824.696.832 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014397063""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 838.860.800 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014408912""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 331.284.480 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014419269""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 391.954.432 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014428786""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 380.141.568 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014436564""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 853.909.504 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014437327""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 853.884.928 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014440839""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 437.198.848 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014447030""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 824.893.440 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014449634""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 868.696.064 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014451062""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 838.942.720 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014457435""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 389.996.544 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014460617""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 839.180.288 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014468931""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 132.513.792 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014475522""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 854.310.912 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014478781""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 71.262.208 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014480112""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 71.524.352 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014484061""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 854.106.112 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014484744""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 854.384.640 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014485401""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 883.097.600 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014513024""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 861.339.648 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014525960""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 29.892.608 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014529213""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 561.119.232 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014537408""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 561.012.736 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014537722""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 893.337.600 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014539124""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 544.694.272 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014561378""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 122.175.488 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014563347""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB_log.ldf""SUCCESS""Offset: 46.276.608 Length: 4.096 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014565092""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB_log.ldf""SUCCESS""Offset: 0 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"
"09:58:014566410""sqlservr.exe""1772""WriteFile""C:\Data\TEST_DB.mdf""SUCCESS""Offset: 73.728 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"


Вставки в "широкую" таблицу через SqlBulkCopy, gj 1000 строк. Т.к. весь лог длинный, привожу вырезку
+
"Time of Day""Process Name""""PID""""Operation""""Path""""Result""""Detail"""
"09:59:058461503""sqlservr.exe""""1772""""WriteFile""""C:\Data\TEST_DB_log.ldf""""SUCCESS""""Offset: 46.280.704 Length: 61.440 I/O Flags: Non-cached Write Through Priority: Normal"""
"09:59:058462853""sqlservr.exe""""1772""""WriteFile""""C:\Data\TEST_DB.mdf""""SUCCESS""""Offset: 901.120.000 Length: 57.344 I/O Flags: Non-cached Write Through Priority: Normal"""
"09:59:058497013""sqlservr.exe""""1772""""WriteFile""""C:\Data\TEST_DB_log.ldf""""SUCCESS""""Offset: 46.342.144 Length: 57.344 I/O Flags: Non-cached Write Through Priority: Normal"""
"09:59:058509510""sqlservr.exe""""1772""""WriteFile""""C:\Data\TEST_DB.mdf""""SUCCESS""""Offset: 901.177.344 Length: 57.344 I/O Flags: Non-cached Write Through Priority: Normal"""
"09:59:058543006""sqlservr.exe""""1772""""WriteFile""""C:\Data\TEST_DB_log.ldf""""SUCCESS""""Offset: 46.399.488 Length: 61.440 I/O Flags: Non-cached Write Through Priority: Normal"""
"09:59:058557545""sqlservr.exe""""1772""""WriteFile""""C:\Data\TEST_DB.mdf""""SUCCESS""""Offset: 901.234.688 Length: 65.536 I/O Flags: Non-cached Write Through Priority: Normal"""
"09:59:058623983""sqlservr.exe""""1772""""WriteFile""""C:\Data\TEST_DB_log.ldf""""SUCCESS""""Offset: 46.460.928 Length: 57.344 I/O Flags: Non-cached Write Through Priority: Normal"""
"09:59:058656067""sqlservr.exe""""1772""""WriteFile""""C:\Data\TEST_DB.mdf""""SUCCESS""""Offset: 901.300.224 Length: 32.768 I/O Flags: Non-cached Write Through Priority: Normal"""
"09:59:058657260""sqlservr.exe""""1772""""WriteFile""""C:\Data\TEST_DB_log.ldf""""SUCCESS""""Offset: 46.518.272 Length: 24.576 I/O Flags: Non-cached Write Through Priority: Normal"""
"09:59:058658675""sqlservr.exe""""1772""""WriteFile""""C:\Data\TEST_DB.mdf""""SUCCESS""""Offset: 901.332.992 Length: 49.152 I/O Flags: Non-cached Write Through Priority: Normal"""
"09:59:058695157""sqlservr.exe""""1772""""WriteFile""""C:\Data\TEST_DB_log.ldf""""SUCCESS""""Offset: 46.542.848 Length: 57.344 I/O Flags: Non-cached Write Through Priority: Normal"""
"09:59:058705421""sqlservr.exe""""1772""""WriteFile""""C:\Data\TEST_DB.mdf""""SUCCESS""""Offset: 901.382.144 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"""
"09:59:058706172""sqlservr.exe""""1772""""WriteFile""""C:\Data\TEST_DB.mdf""""SUCCESS""""Offset: 901.398.528 Length: 40.960 I/O Flags: Non-cached Write Through Priority: Normal"""
"09:59:058756905""sqlservr.exe""""1772""""WriteFile""""C:\Data\TEST_DB_log.ldf""""SUCCESS""""Offset: 46.600.192 Length: 61.440 I/O Flags: Non-cached Write Through Priority: Normal"""
"09:59:058783460""sqlservr.exe""""1772""""WriteFile""""C:\Data\TEST_DB.mdf""""SUCCESS""""Offset: 901.439.488 Length: 57.344 I/O Flags: Non-cached Write Through Priority: Normal"""
"09:59:058833048""sqlservr.exe""""1772""""WriteFile""""C:\Data\TEST_DB_log.ldf""""SUCCESS""""Offset: 46.661.632 Length: 57.344 I/O Flags: Non-cached Write Through Priority: Normal"""
"09:59:058839457""sqlservr.exe""""1772""""WriteFile""""C:\Data\TEST_DB.mdf""""SUCCESS""""Offset: 901.496.832 Length: 65.536 I/O Flags: Non-cached Write Through Priority: Normal"""
"09:59:058869309""sqlservr.exe""""1772""""WriteFile""""C:\Data\TEST_DB_log.ldf""""SUCCESS""""Offset: 46.718.976 Length: 57.344 I/O Flags: Non-cached Write Through Priority: Normal"""
"09:59:059117317""sqlservr.exe""""1772""""WriteFile""""C:\Data\TEST_DB.mdf""""SUCCESS""""Offset: 901.562.368 Length: 40.960 I/O Flags: Non-cached Write Through Priority: Normal"""
"09:59:059118106""sqlservr.exe""""1772""""WriteFile""""C:\Data\TEST_DB_log.ldf""""SUCCESS""""Offset: 46.776.320 Length: 28.672 I/O Flags: Non-cached Write Through Priority: Normal"""
"09:59:059119437""sqlservr.exe""""1772""""WriteFile""""C:\Data\TEST_DB.mdf""""SUCCESS""""Offset: 901.603.328 Length: 40.960 I/O Flags: Non-cached Write Through Priority: Normal"""
"09:59:059163018""sqlservr.exe""""1772""""WriteFile""""C:\Data\TEST_DB_log.ldf""""SUCCESS""""Offset: 46.804.992 Length: 57.344 I/O Flags: Non-cached Write Through Priority: Normal"""
"09:59:059171890""sqlservr.exe""""1772""""WriteFile""""C:\Data\TEST_DB.mdf""""SUCCESS""""Offset: 901.644.288 Length: 8.192 I/O Flags: Non-cached Write Through Priority: Normal"""
"09:59:059172685""sqlservr.exe""""1772""""WriteFile""""C:\Data\TEST_DB.mdf""""SUCCESS""""Offset: 901.660.672 Length: 40.960 I/O Flags: Non-cached Write Through Priority: Normal"""
"09:59:059215791""sqlservr.exe""""1772""""WriteFile""""C:\Data\TEST_DB_log.ldf""""SUCCESS""""Offset: 46.862.336 Length: 57.344 I/O Flags: Non-cached Write Through Priority: Normal"""
6 сен 19, 11:19    [21965184]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
Alexander Us
Member

Откуда:
Сообщений: 1079
Дополнение:
база TEST_DB в модели "full"
вставки SqlBulkInsert шли блоками по 1000 строк
6 сен 19, 11:30    [21965196]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
Alexander Us
Member

Откуда:
Сообщений: 1079
Выводы из эксперимента (применительно к SSD дискам)

Лог:
- запись в лог присходит в блоками, кратно 4k
- размер блока зависит от количества данных в инсерте
- что может сильно изменяться в зависимости от конкретной базы/типа данных
- для моих баз, видимо, 4k блоки будут преобладать

- поэтому представляется целесообразным форматировать диск лога по 4k

Данные:
- запись присходит в блоками, кратно 8k
- для моих баз, при записи, видимо, 8k блоки будут преобладать
- чтение присходит в блоками, кратно 64k (в основном)
- форматирование данных по 64k дало бы прирост производительности по чтению но было бы расточительно для записи из за TBW
- SSD диски и так быстры, данные кэшируются, так что вряд ли стоит ожидать существенного выигрыша для всего сервера при форматировании в 64k
- форматирование по 8k или 32k возможно, было бы золотой серединой но это привнесёт неразбериху, видимо, без существенного выигрыша

- поэтому представляется целесообразным форматировать диск данных по 4k

PS:
- много зависит от конкретной базы/характера данных
- форматирование по 4k ограничивает размер тома/файла в 16ТБ


Жду ваших мнений, критики
6 сен 19, 13:32    [21965328]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 29606
Alexander Us
Выводы из эксперимента (применительно к SSD дискам)
Мне кажется, результат замеров "вставки SqlBulkInsert шли блоками по 1000 строк" недостаточно, что бы выбрать размер кластера для данных сиквела, попутно обратившись в Микрософт "эй, вы там чушь понаписали, переделывайте документацию, я тут замерил!"

Нужно либо потратить "от" нескольких лет на эксперименты и изучение теории, что бы создать универсальную достоверную методику, либо произвести замеры на своей реальной системе, что бы выбрать оптимальные настройки для неё.
А вот так вот, "вставки SqlBulkInsert шли блоками по 1000 строк" - это профанация.

Вам рассказали про практику, дали ссылки, вы сами нашли и привели тут волне авторитетную статью, что вам ещё надо? Просто следуйте рекомендациям.
6 сен 19, 17:46    [21965551]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 6957
Alexander Us,

дык 64к форматируют для оптимизации чтения, если у вас много записи и это вызывает проблемы, о чем и пишут лучшие практики, то размер надо делать меньше. При типовой рабочей нагрузке наилучшим будет 32к, к примеру.
6 сен 19, 18:24    [21965592]     Ответить | Цитировать Сообщить модератору
 Re: Форматирование дисков  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 29606
Владислав Колосов
дык 64к форматируют для оптимизации чтения, если у вас много записи и это вызывает проблемы, о чем и пишут лучшие практики, то размер надо делать меньше. При типовой рабочей нагрузке наилучшим будет 32к, к примеру.
А нет каких то ссылок по этой теме?
По моему, размер кластера не связан с размером минимальной единицы записи.
Собственно, ошибка в начале обсуждаемой темы, и ссылки вначале показывают, что минимальной единицей является сектор.

Ещё, "если у вас много записи", это не означает, что запись будет производиться маленькими блоками.
В большинстве реальных систем она будет как раз по 64 кб
8 кб запись будет только если вы обновляете отдельные записи (на разных страницах, причём не соседних)
Запись в лог тем более всегда последовательная.
6 сен 19, 19:54    [21965687]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Microsoft SQL Server Ответить