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

Откуда: Kazan City
Сообщений: 351
Рекомендую вам забить на данный показатель, т.к. он не играет "большой роли" в подсистеме I/O - только в очень редких и специфических случаях можно получить "заметный" прирост быстродействия за счет манипуляций с данными параметрами именно в контесксте выстродействия SQL-сервера (синтетика\тесты-другое дело). Думаю вам лучше отпрофайлить тяжелые на IO запросы и заняться оптимизацией.
15 янв 08, 16:02    [5155685]     Ответить | Цитировать Сообщить модератору
 Re: Размер кластера на диске и сегмента на сторадже  [new]
Александр Волок (def1983)
Member

Откуда: Rotterdam
Сообщений: 4959
Dr. Blez
Еще...

Периодически, не очень часть в логе сервера появляется что-то такое:

SQL Server has encountered 4 occurrence(s) of I/O requests taking longer than 15 seconds to complete on file [Х:\ххх.mdf] in database [ххх] (7). The OS file handle is 0x00000DA0. The offset of the latest long I/O is: 0x0000045b654000

Вот, надыбал недавно документ в тему:
Poor Disk Performance, Time Outs, Database and the SQL Server Errorlog
15 янв 08, 19:35    [5156982]     Ответить | Цитировать Сообщить модератору
 Re: Размер кластера на диске и сегмента на сторадже  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10821
Блог
RMih
Dr. Blez
Должен ли размер сегмента на сторадже (в данный момент 128К) равняться размеру кластера на диске (64К)?
Размер сектора диска или сегмента на сторадже должен быть меньше либо равен размеру кластера операционной системы, и, если он меньше, то кластер должен быть кратен сегменту.
Т.е. нормальная ситуация сегмент 64К, кластер 128К, наоборот - ненормальная.

В вашем случае, SQL запрашивает у ОС страницу (правда может и несколько страниц подряд запросить, но это не факт) из файла 8К, ОС запрашивает у стораджа кластер 64К, а сторадж читает сегмент 128К, думаю видно, сколько лишних данных прочитано.

Идеальный вариант - размер кластера равен размеру сегмента, равен странице (8К) или экстенту (64К) SQL Server. 8 или 64 - определять по тому большими или маленькими блоками читает SQL, можно посмотреть утилитой FileMon


Не вводите народ в заблуждение! Сервер себя так никогда не ведёт.
15 янв 08, 22:45    [5157354]     Ответить | Цитировать Сообщить модератору
 Re: Размер кластера на диске и сегмента на сторадже  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10821
Блог
RMih
Dr. Blez
Обмен сервера с диском - экстентами? Я ничего не путаю?...
SQL посылает файловой системе Windows запросы на чтение и запись страницами (8К), экстентами (64К) или блоками по 8 экстентов (256К)

Файловая система Windows посылает драйверу жесткого диска запросы на чтение и запись кластерами.

Драйвер жесткого диска посылает запросы на чтение и запись контроллеру жесткого диска секторами (512 байт) или сегментами заданного размера, в случае RAID массива или стойки.

Очень хорошо, если все эти вещи совпадают. Если не совпадают - блоки лежащие ниже должны быть меньше, а блоки лежащие выше - иметь размер кратный блоками ниже.


Вы ещё забыли, что ОС оперирует страницами в 4Кб :)
15 янв 08, 22:47    [5157357]     Ответить | Цитировать Сообщить модератору
 Re: Размер кластера на диске и сегмента на сторадже  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10821
Блог
RMih
Одна ошибочка вкралась в расчеты, 8 экстентов - 512К

Только что проверил файл-моном свой сервак, иногда читает 8К, иногда 16 или 24 (2-3 страницы), при больших запросах стабильно читает 512К


Вы хоть поясните, что и в какой момент мерили :)
Не нужно путать размер запроса ввода вывода с размером рабочей нагрузки. В нормально оптимизированной системе размер запроса ввода-вывода должен стремиться к 64К, поскольку экстентами читает механизм упреждающего чтения. Это не исключает запросы одной станицы, поскольку подкачка страниц - обычное дело. Какие бывают размеры запросов обсуждалось тут https://www.sql.ru/forum/actualthread.aspx?bid=1&tid=231471&pg=3#3588468
Вендоры, в последнее время, начали жёстко фиксировать размер страйпа, например, на 128Кб. ИХМО, им конечно это удобней, но для Windows такой страйп не всегда оптимален. Если Вы работает с данными в файлах на RAW-разделах, от этого только выигрыш, поскольку сегодняшние объёмы данных побуждают читать не по одному экстенту подряд... Если же приходиться вставлять в цепочку ввода-вывода NTFS, как Вы выше говорили, выигрыш отнюдь не очевиден. Т.е. в число проигрышных попадает довольно много типовых размеров запроса. Наверное поэтому те же вендоры всё чаще не дают выключать кэширование контроллера Рассуждения их логичны, случайных запросов малого размера обычно не много, а массовые чтения зачастую склеиваются из близко хранящихся страниц. Посему, низкую производительность первых компенсирует огромный кэш, а вторые будут оптимальны по определению.
Т.ч. правильно тут говорили, не ищите спасения в страйпах и блоках, оптимизируйте индексы и запросы!
15 янв 08, 23:08    [5157394]     Ответить | Цитировать Сообщить модератору
 Re: Размер кластера на диске и сегмента на сторадже  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10821
Блог
Dr. Blez
Crazy_Driver
А дисков-то сколько? И на каком из массивов образуется очередь?


Очередь на массиве с данными, 4 диска, 10-й уровень


Тут логичнее было сделать два зеркала или вообще использовать 4 диска. RAID > 0 важен для журналов, копий и системных баз (требования ACID).
15 янв 08, 23:13    [5157399]     Ответить | Цитировать Сообщить модератору
 Re: Размер кластера на диске и сегмента на сторадже  [new]
Dr. Blez
Member

Откуда:
Сообщений: 135
Александр Гладченко
Dr. Blez


Очередь на массиве с данными, 4 диска, 10-й уровень


Тут логичнее было сделать два зеркала или вообще использовать 4 диска. RAID > 0 важен для журналов, копий и системных баз (требования ACID).


Ммм... Поясните, пожалуйста. Я, ничтоже сумняшеся, думал, что это приведет к увеличению производительности... Тем паче, что финансы позволяют.
16 янв 08, 09:18    [5158042]     Ответить | Цитировать Сообщить модератору
 Re: Размер кластера на диске и сегмента на сторадже  [new]
RMih
Member

Откуда: Москва
Сообщений: 161
Александр Гладченко
Вы хоть поясните, что и в какой момент мерили :)
Я мерял чтение файла *.mdf при выполнении запроса
SELECT * FROM Test
Сервер стоит на моей машине, других запросов к нему не было. Если вам интересно, можете посмотреть у себя на системе, какими блоками SQL реально запрашивает данные с диска, а не рассказывать
Александр Гладченко
Не вводите народ в заблуждение! Сервер себя так никогда не ведёт.

Правда проверить, какими блоками происходит обмен между файловой системой и физичесвким диском, так посмотреть не удастся. Мне кажется, это должно быть очевидно из общей теории.

Скорее всего в системе есть и другие, даже более серьезные проблемы, чем дисковая подсистема, например неоптимальная структура таблиц, индексов, неоптимальные запросы, но в любом случае, кроме этих проблем, есть и проблема в дисковой подсистеме: кластер 64К и сегмент 128К - так быть не должно. Я бы порекомендовал сделать сегмент 64К.

P.S.
Организация хорошей структуры таблиц, правильных индексов, и оптимизиция запросов может дать увеличение в РАЗЫ или даже ДЕСЯТКИ РАЗ. Изменение размера сегмента даст выигрыш в производительности максимум в 2 раза, реально - меньше.

Но есть один ньюанс, сегмент можно поменять относительно быстро и не особенно задумываясь, а оптимизация - сложный долгий и дорогой процесс.

P.P.S.
Я за оптимизацию, вопрос в том, есть ли у автора для этого ресурсы: грамотные специалисты и время.
16 янв 08, 10:13    [5158316]     Ответить | Цитировать Сообщить модератору
 Re: Размер кластера на диске и сегмента на сторадже  [new]
DeColo®es
Member

Откуда: Москва
Сообщений: 5503
Блог
RMih
Но есть один ньюанс, сегмент можно поменять относительно быстро и не особенно задумываясь, а оптимизация - сложный долгий и дорогой процесс.
Только оптимизацию можно сделать не останавливая сервер и не выгоняя пользователей, а вот для изменения страйпов и кластеров придется на несколько часов (в зависимости от объема данных) останавливать работу. Причем процесс этот невозможно прервать - пока массив полностью не перестроится сервер будет неработоспособен. Плюс "расходы" и риски при копировании базы "туда-обратно".
16 янв 08, 10:19    [5158351]     Ответить | Цитировать Сообщить модератору
 Re: Размер кластера на диске и сегмента на сторадже  [new]
DeColo®es
Member

Откуда: Москва
Сообщений: 5503
Блог
RMih
а оптимизация - сложный долгий и дорогой процесс.
Кстати, либо одно, либо другое. ;)
Если "своими силами" - то недорого (да и не очень сложно, были бы спецы и желание).
Если "задорого", то несложно - приглашай спецов и плати почасовую.

За пару-тройку часов можно легко поднять производительность в разы, если база в состоянии "все запущено".
16 янв 08, 10:23    [5158371]     Ответить | Цитировать Сообщить модератору
 Re: Размер кластера на диске и сегмента на сторадже  [new]
Dr. Blez
Member

Откуда:
Сообщений: 135
DeColo®es
RMih
Но есть один ньюанс, сегмент можно поменять относительно быстро и не особенно задумываясь, а оптимизация - сложный долгий и дорогой процесс.
Только оптимизацию можно сделать не останавливая сервер и не выгоняя пользователей, а вот для изменения страйпов и кластеров придется на несколько часов (в зависимости от объема данных) останавливать работу. Причем процесс этот невозможно прервать - пока массив полностью не перестроится сервер будет неработоспособен. Плюс "расходы" и риски при копировании базы "туда-обратно".


У меня на сторадже можно менять размер сегмента "на лету"...
16 янв 08, 10:31    [5158416]     Ответить | Цитировать Сообщить модератору
 Re: Размер кластера на диске и сегмента на сторадже  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10821
Блог
Dr. Blez
Александр Гладченко
Dr. Blez


Очередь на массиве с данными, 4 диска, 10-й уровень


Тут логичнее было сделать два зеркала или вообще использовать 4 диска. RAID > 0 важен для журналов, копий и системных баз (требования ACID).


Ммм... Поясните, пожалуйста. Я, ничтоже сумняшеся, думал, что это приведет к увеличению производительности... Тем паче, что финансы позволяют.


Если базу данных разбить на несколько файлов и разложить эти файлы по отдельным дискам, производительность будет в разы больше, если работать с одним файлом на массиве RAID10. SQL Server балансирует ввод-вывод не так тупо, как это делают дисковые контроллеры
16 янв 08, 10:33    [5158427]     Ответить | Цитировать Сообщить модератору
 Re: Размер кластера на диске и сегмента на сторадже  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10821
Блог
RMih

Я мерял чтение файла *.mdf при выполнении запроса
SELECT * FROM Test
Сервер стоит на моей машине, других запросов к нему не было. Если вам интересно, можете посмотреть у себя на системе, какими блоками SQL реально запрашивает данные с диска, а не рассказывать


Тогда понятно, почему Вы удивляетесь :) Вы меряли не то, не там, не тогда и не так

RMih

Правда проверить, какими блоками происходит обмен между файловой системой и физичесвким диском, так посмотреть не удастся. Мне кажется, это должно быть очевидно из общей теории.


О какой теории Вы говорите? можно ссылочку? В той теории, которую видел я, про такое не писали. Вы уж слишком упростили всё в своих рассуждениях, и, в результате, представили работу подсистемы ввода вывода таким образом, каким она реально никогда не работает... мы тут говорим о серверах, которым присущи ещё такие понятия, как очереди, многопоточность, многопользовательский режим нагрузки и т.п., всё это превносет такие отличия, что ваша "теория" рассыпается в пух и прах.

Сообщение было отредактировано: 16 янв 08, 10:57
16 янв 08, 10:42    [5158486]     Ответить | Цитировать Сообщить модератору
 Re: Размер кластера на диске и сегмента на сторадже  [new]
RMih
Member

Откуда: Москва
Сообщений: 161
DeColo®es
За пару-тройку часов можно легко поднять производительность в разы, если база в состоянии "все запущено".

Если вы за 2-3 часа сделаете это с базой 1С 8.1 хотя бы с торговлей, я уж молчу про зарплату, вам за следующие 2-3 часа поставят памятник в центре Москвы.
16 янв 08, 10:49    [5158536]     Ответить | Цитировать Сообщить модератору
 Re: Размер кластера на диске и сегмента на сторадже  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10821
Блог
RMih
DeColo®es
За пару-тройку часов можно легко поднять производительность в разы, если база в состоянии "все запущено".

Если вы за 2-3 часа сделаете это с базой 1С 8.1 хотя бы с торговлей, я уж молчу про зарплату, вам за следующие 2-3 часа поставят памятник в центре Москвы.


Спишитесь с Володей Сердюком, он может проконсультировать, как это сделать за указанное время.
16 янв 08, 10:55    [5158590]     Ответить | Цитировать Сообщить модератору
 Re: Размер кластера на диске и сегмента на сторадже  [new]
DeColo®es
Member

Откуда: Москва
Сообщений: 5503
Блог
RMih
DeColo®es
За пару-тройку часов можно легко поднять производительность в разы, если база в состоянии "все запущено".

Если вы за 2-3 часа сделаете это с базой 1С 8.1 хотя бы с торговлей, я уж молчу про зарплату, вам за следующие 2-3 часа поставят памятник в центре Москвы.
1C - это отдельная категория проблемы, она вообще в другой плоскости. ;)
Но если с базой в плане оптимизации никто никогда раньше серьезно не работал, то первый шаг - реиндексация, отключение параллелизма и поиск типовых запросов с построением под них подходящих индексов много времени не займут.
16 янв 08, 10:57    [5158603]     Ответить | Цитировать Сообщить модератору
 Re: Размер кластера на диске и сегмента на сторадже  [new]
RMih
Member

Откуда: Москва
Сообщений: 161
Александр Гладченко
Спишитесь с Володей Сердюком, он может проконсультировать, как это сделать за указанное время.
Я читал про компанию SoftPoint, они занимаются в основном опитимизацией 1С 7.7, а не 8.1, они внедряют свою внешнюю компоненту типа ToySQL. В нашей фирме переход на 1С++ (возможностей больше и бесплатная в отличии от ToySQL и компоненты SoftPoint) занял 2 года, что несколько больше, чем 2-3 часа, сомневась, в силах многоуважаемого Володи Сердюка сделать это в указанный срок.
16 янв 08, 11:08    [5158682]     Ответить | Цитировать Сообщить модератору
 Re: Размер кластера на диске и сегмента на сторадже  [new]
Dr. Blez
Member

Откуда:
Сообщений: 135
Что, многоуважаемые граждане, скажете о Missing Indexes Feature?
16 янв 08, 11:10    [5158700]     Ответить | Цитировать Сообщить модератору
 Re: Размер кластера на диске и сегмента на сторадже  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10821
Блог
Dr. Blez
Что, многоуважаемые граждане, скажете о Missing Indexes Feature?


http://msmvps.com/blogs/gladchenko/archive/2007/11/14/1311293.aspx
16 янв 08, 11:38    [5158908]     Ответить | Цитировать Сообщить модератору
 Re: Размер кластера на диске и сегмента на сторадже  [new]
Dr. Blez
Member

Откуда:
Сообщений: 135
И еще вопрос... Правда не в тему...

MSSQL2005 может использовать память больше 4Гб при ОС Windows Server 2003 Standard Edition или нужен WS2003 Enterprise?
16 янв 08, 11:50    [5159007]     Ответить | Цитировать Сообщить модератору
 Re: Размер кластера на диске и сегмента на сторадже  [new]
Crazy_Driver
Member

Откуда: α2000 = 14ч39м36с,5, δ2000 = -60°50'02"
Сообщений: 876
Dr. Blez
Crazy_Driver
Мдааа. Не густо. Размер базы, количество пользователей и модель стораджа в студию.


База миниатюрная - 30Гб
Коннектов к базе - 150-200
Сторадж - DS4000

Хм. Это что, в данном сторадже всего 6 дисков? Не густо. Самый простой способ - докупить еще 4-ре или больше дисков и расширить на них текущий RAID10. Либо можно собрать из них еще один RAID10 и упражняться с разносом базы.

Размер страйпа играет роль больше в массивах с четностью, поскольку означает размер блока, для которого будет рассчитываться контрольная сумма. В остальных случаях практически не роляет, потому как если запрос к дисковой системе в итоге потребует обращения контроллером только к одному диску, то будет обращение только к одному диску.
16 янв 08, 11:54    [5159031]     Ответить | Цитировать Сообщить модератору
 Re: Размер кластера на диске и сегмента на сторадже  [new]
Александр Волок (def1983)
Member

Откуда: Rotterdam
Сообщений: 4959
Dr. Blez
И еще вопрос... Правда не в тему...

MSSQL2005 может использовать память больше 4Гб при ОС Windows Server 2003 Standard Edition или нужен WS2003 Enterprise?

нужен Win 2003 Enterprise, стандарт не прокатит
16 янв 08, 11:59    [5159079]     Ответить | Цитировать Сообщить модератору
 Re: Размер кластера на диске и сегмента на сторадже  [new]
Dr. Blez
Member

Откуда:
Сообщений: 135
Crazy_Driver
Dr. Blez
Crazy_Driver
Мдааа. Не густо. Размер базы, количество пользователей и модель стораджа в студию.


База миниатюрная - 30Гб
Коннектов к базе - 150-200
Сторадж - DS4000

Хм. Это что, в данном сторадже всего 6 дисков? Не густо. Самый простой способ - докупить еще 4-ре или больше дисков и расширить на них текущий RAID10. Либо можно собрать из них еще один RAID10 и упражняться с разносом базы.

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


В данном сторадже 12 дисков, 4 на основную БД, 4 на зеркало, 2 на лог транзакций, 2 на горячую замену
16 янв 08, 12:18    [5159221]     Ответить | Цитировать Сообщить модератору
 Re: Размер кластера на диске и сегмента на сторадже  [new]
Crazy_Driver
Member

Откуда: α2000 = 14ч39м36с,5, δ2000 = -60°50'02"
Сообщений: 876
Dr. Blez

В данном сторадже 12 дисков, 4 на основную БД, 4 на зеркало, 2 на лог транзакций, 2 на горячую замену


Точная модель DS4200? Так докупите полку и набейте ее дисками.
16 янв 08, 12:29    [5159287]     Ответить | Цитировать Сообщить модератору
 Re: Размер кластера на диске и сегмента на сторадже  [new]
Crazy_Driver
Member

Откуда: α2000 = 14ч39м36с,5, δ2000 = -60°50'02"
Сообщений: 876
Тем более, если учесть
he IBM System Storage™ DS4200 Express Model 7V disk storage system is an SATA-only disk storage solution
16 янв 08, 12:30    [5159298]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить