Размер страйпа под базу данных.

Конфигурирование, планирование RAID систем, возможности, технологии, теория. Qlogic, LSI Logic, Adaptec ...

Модераторы: Trinity admin`s, Free-lance moderator`s

Аватара пользователя
gs
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 16650
Зарегистрирован: 23 авг 2002, 17:34
Откуда: Москва
Контактная информация:

Сообщение gs » 04 дек 2007, 14:38

Вспомнилась недавняя фраза товарисча Akina (довольно известен в узких кругах): "А в сухом остатке: не мешай ОС работать."

Аватара пользователя
exLH
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 5061
Зарегистрирован: 11 фев 2004, 15:49
Откуда: Москва
Контактная информация:

Сообщение exLH » 04 дек 2007, 15:17

Odavid
А умолчательный размер - из практики установки кластера "по умолчанию" в Windows 2003
А вот у меня почему-то все в соответствии с таблицей. Может в консерватории что-то подправить?

Аватара пользователя
Odavid
Advanced member
Сообщения: 110
Зарегистрирован: 21 мар 2007, 17:23
Откуда: Нижний Новгород

Сообщение Odavid » 05 дек 2007, 14:37

Вы когда с диска ставите Windows Server 2003, кластер выбираете? Это когда "Выберите раздел для установки Windows".
Я вот не знаю, где тут размер кластера задать. Соответственно, после установки выдается размер: 512 Б. Проверено на 6 серверах - специально смотрел.
Да, было 4 Кб, помню. Но это воспоминания от 2002-2003 года.
А сейчас - везде у меня стоит 512 Байт. Ну никак при установке не изменишь умолчательное значение - его там просто нет. А после установки системный диск Windows вряд ли вам даст отформатировать с другим размером кластера.....

Аватара пользователя
Odavid
Advanced member
Сообщения: 110
Зарегистрирован: 21 мар 2007, 17:23
Откуда: Нижний Новгород

Сообщение Odavid » 05 дек 2007, 14:38

В общем, рискуя вызвать оживленное обсуждение, я немножко покопался и в меру сил понял, какая карусель получилась "Про кластеры и страйпы".
Есть статья Сергея Антончука от 2004 года на CitForum. Статья интересная в плане тестирования работы RAID при разных страйпах, нагрузка - обработка запросов MSSQL при работе 1Сv8 (и только её!).
Одновременно ставится условие размера страницы MS SQL сервера, которая составляет 8 Кб и не меняется, судя по статье, на протяжении всего тестирования (ну хотя б, например, почему не тестировался MSSQL 7 или другая похожая СУБД, но с другим размером страницы).
Хотя сдается мне, что у автора смешались понятия Sripped Mode (RAID0) и Stripe Size, судя по фразе "производительность RAID-0 вообще и Matrix RAID-0 в частности серьезно зависит от параметра strip size". И вообще красота получается: Sripped Mode - рулит параметр Stripe Size; Mirror Mode (RAID1) - mirror size...  А производительность RAID1 не зависит от strip size? И почему не сравниваются разные Stripe Size отдельно в RAID0 и отдельно в RAID1 - они потому и разные, что один более быстрый, а второй - более надежный в ущерб скорости.
Из статьи не ясно, где и кто проводил тестирование, откуда автор его накопал, но в общем-то реальность и достоверность тестирования не вызывает сомнений - RAID0 сам по себе быстрее RAID1, а то, что уступил при 128 КБ рэйду1 - так это еще не известно, кто где тормозит (3 уровня (клиент-1С сервер-SQL сервер) - это не хухры-мухры, и на каждом этапе передаются данные, и на каждом идет работа с диском). И вопрос - а что понимается под "настройкой page size"? Вообще (хоть я, возможно, и не такой знаток архитектуры баз SQL, как Сергей Антончук), page size в SQL - это размер виртуальной страницы представления данных в базе, т.е. блоки, с которыми SQL работает внутри базы, и использует эту страницу как единый блок данных при считывании с винчестера. А сколько физических блоков это составляет на винчестере - это уже особого значения не имеет. Потому как обращение в базе к одной строке заставляет SQL считывать всю страницу 8К целиком, даже если там еще что кроме нужных данных. А эти нужные данные могут быть разбросаны по многим страницам - вот тут да, серьезный затык может возникнуть (и возникает при больших выборках разнородных данных из разных таблиц), но размер кластера FS тут может сыграть роль только если будет большая фрагментация диска - а это в любом случае нехорошо. И размер этих page size зависит от того, какая база (в MSSQL жестко: SQL7 - 2K, SQL2000/2005 - 8K; а в Oracle - задается при создании базы), содержимого этой базы, размера полей, а не сколько оно места занимает на диске.
Или это страница памяти? Хотя вроде бы есть намек, что это "кратность данных, с которой SQL сервер взаимодействует с дисковой подсистемой". Еще раз повторюсь, что SQL сам не взаимодействует с подсистемой, минуя ОС. А вот, кстати, Oracle, который упоминается ниже, может создавать собственные файловые системы и форматировать диски специально под свою базу. MS так не умеет, но и стоит на 2 порядка меньше.
Но автор почему-то делает вдруг вывод, что именно при совпадении: страйп=8 КБ, размер страницы SQL = 8 Кб получается огромный прирост скорости и тут же делается вывод о "правильности" выбранных параметров. Правильность - это в совпадении цифр 8, я так понимаю?
При этом "правильное" значение - это Sripe Size=8K, предпочтительный - 32K, а оптимальный по тесту - 16K. Может, все сразу выставить? И пусть MSSQL "чередует запись"... Вот только 8K не вписались в формулу (рассматриваемую далее), ну да это мелочи. Главное, значения 16/32 КБ получились.
Автор откуда-то (нашел в интернете) вытащил формулу зависимости stripe size от таинственного striping factor и Block size(Cylinder), рядом с которым ключевое слово Cylinder однозначно указывает, что под Block size имеется ввиду кластер файловой системы. Автор честно признался, что формула выведена "для Oracle". А следовательно, возможно, и не имеет никакого отношения к Windows как таковой и к её файловым системам в частности.
А заявление "Oracle и MSSQL — это, конечно, разные СУБД, но физика процесса одинакова везде" вообще не имеет никакого обоснования. Это справедливо только по отношению, например, к "MySQL и MSSQL", но никак не к "Oracle и MSSQL", у которых и файловые системы подчас разные.
Возвращаясь к ключевому striping factor в формуле, который по заверению автора, везде "типичный" и составляет 32 блока (заметьте, 32 блока, т.е. это некий пакет из 32-х блоков данных, который считывается неким устройством), то хотелось бы узнать, где я могу посмотреть эту "типичность" в своей Windows? А то скорость чтения-записи есть, ширина канала есть, а вот сколько блоков за раз у меня читается.... и за какой раз....
Тут же в формуле первый и последний раз появляется реальный размер кластера - 512/1024 Байт.
Дается вердикт "Именно эти размеры и оказались оптимальными", как выше - "о правильности" значений Stripe Size.
Только я так и не понял - что правильно:  Stripe Size RAID=8 КБ, равный размеру страницы базы SQL = 8 Кб; или Block size NTFS=512 Б д.б. сопоставлено  Stripe Size RAID=16/32 КБ; или все приложения должны читать данные по 32 блока (striping factor)?
Создатель FAQ  v_user понял это как "ставьте все одинаково" (о чем пишет в пункте 6). Причем размер страницы MS SQL почему-то превратился в размер кластера файловой системы.
По большому счету мне этот FAQ нравится (полезен тем, кто ничего не знает о RAID), но недоработки есть, конечно же. Ну так не ошибается тот, кто не ошибается :) А таких нет :)
И хотя автор данной темы не давал ссылку именно на этот FAQ, я усматриваю в обсуждении по его ссылке тот же самый испорченный телефон по поводу взаимосвязи кластеров NTFS и stripe size RAID-контроллера.
Что уж говорить, если даже на уважаемом мной CITForum напечатана статья, которая вызывает одни вопросы и воспринимается столь неодназначно, а по части многих выводов так и просто неверна.
Вот еще вызвало недоумение:
"stripe может быть размером с один дисковый блок, но может состоять и из тысяч"
Пока максимальный страйп, который я вычислил - это Stripe Size=512 КБ, тогда соответственно, размер кластера=512 Б (минимальный в Windows-системах). В этом случае один страйп=1024 блокам на диске. Но не тысяч.

"Устройства RAID разделяют содержащие их разделы дисков на страйпы; различные уровни RAID различаются в способе организации страйпов"
Разделяют разделы - это целыми разделами, преобразованными в страйп, осуществляют запись/чтение что ли?
Разные способы организации страйпов - это как? В каждому RAID - свой эксклюзивный по организации страйп?

"В RAID-0 компоненты разделов делятся на страйпы и затем чередуются" - это нормально выглядит так: "В RAID-0 данные жестких дисков делятся на страйпы и затем осуществляется чередующаяся запись в массив RAID"

А "Matrix RAID-1 — для системы" - здорово, своп, временные файлы автор предлагает разместить на RAID0, а систему - на RAID1. Осталось только еще разделить Windows по "часто исполняемым системным файлам" и "почти не используемому системному мусору".
И не в коем случае не делайте "Matrix RAID-0 — для рабочей SQL-базы" - или у вас бэкап делается каждую минуту?

Насторожили две фразы:
"Мы намеренно не делали сравнение внешнего и внутреннего RAID-контроллеров основной темой статьи. Дело в том, что эти контроллеры довольно сильно отличаются по функциональности — как ни странно это звучит на первый взгляд." Это по какой функциональности они отличаются? У одного RAIDo - это RAID0, а у другого -  RAID50, что ли?
"Не для всех strip size раздел может быть загрузочным. " - мне пожалуйста, примеры, при каких strip size Windows не будет грузиться однозначно.

В общем, по статье получилось, что MSSQL (наверное, при поддержке 1С-сервера) напрямую работает с RAID-контроллером; v_user (с forums.ferra.ru) понял отсюда, что MSSQL еще и файловой системой управляет, а я вот, совершенно не зная ничего о столь широких сверхвозможностях MSSQL взял все и раскритиковал :)
Эта статья распространилась по:
http://www.oszone.net/
http://www.citforum.ru
http://www.cybersecurity.ru
http://www.infocity.kiev.ua и многих других
Последний раз редактировалось Odavid 05 дек 2007, 14:43, всего редактировалось 2 раза.

Аватара пользователя
Odavid
Advanced member
Сообщения: 110
Зарегистрирован: 21 мар 2007, 17:23
Откуда: Нижний Новгород

Сообщение Odavid » 05 дек 2007, 14:40

Еще несколько штрихов по теме:

штатные и не штатные дефрагментаторы не поддерживают блоки большие, чем 4 Кб
:
Там же обсуждается зависимость Page Size MSSQL от размера кластера.

Влияние strip size на производительность в зависимости от марки привода:
"Для винчестера производства Seagate прирост производительности в приложении при использовании RAID-массива составил около 5%. Причем показатели всех RAID’ов почти не отличаются — вне зависимости от значения strip size.
Совсем другая картина наблюдается с представителем Western Digital. Отчетливо видна разница в производительности у RAID-массивов с разными значениями strip size. Худший результат у массива с размером блока 128 Кб. При переходе на 64 Кб производительность возрастает на 2%, а для блока размером 16 Кб прирост равен почти 5%."

Аватара пользователя
gs
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 16650
Зарегистрирован: 23 авг 2002, 17:34
Откуда: Москва
Контактная информация:

Сообщение gs » 05 дек 2007, 18:34

Мне кажется Вы слишком сильно мудрите. Особенно насчет колоссального прироста в 5%...

Аватара пользователя
Odavid
Advanced member
Сообщения: 110
Зарегистрирован: 21 мар 2007, 17:23
Откуда: Нижний Новгород

Сообщение Odavid » 06 дек 2007, 12:35

Да это не я :)
Вы про разные диски и зависимость от страйпа? Это там по ссылке тоже кто-то что-то тестил. У меня цитата.

Аватара пользователя
Odavid
Advanced member
Сообщения: 110
Зарегистрирован: 21 мар 2007, 17:23
Откуда: Нижний Новгород

Сообщение Odavid » 06 дек 2007, 16:44

А по поводу что мудрю - так люди хотят увязать SQL с системой ввода-вывода, сделать настроечки хитрые в RAID, пошмонать операционку, надрать задницу Биллу Гейтсу - и шоб в результате и прирост производительности был лицом, и средств не особо на это затрачено....
Ну я и высказался, что думаю. Я б, наверно, тоже не прочь, что б у меня SQL да 1С договорились напрямки, под себя все сами разрулили где им там что мешает, да выдали на гора скачок процентов в 200% ускорения..... :)
Эй, кто там кластеры со страницами да со страйпами увязывает? Запишите меня тоже в свои ряды мечтателей.... :)
Последний раз редактировалось Odavid 06 дек 2007, 16:56, всего редактировалось 2 раза.

Аватара пользователя
Odavid
Advanced member
Сообщения: 110
Зарегистрирован: 21 мар 2007, 17:23
Откуда: Нижний Новгород

Сообщение Odavid » 06 дек 2007, 16:50

И почему в соcедней ветке мне упорно никто не может подсказать, какой мне контроллер брать для нашего ни к селу ни к городу HP ML350. Ну хоть Вы-то сами какие в эти сервера контроллеры вставляете?

Аватара пользователя
gs
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 16650
Зарегистрирован: 23 авг 2002, 17:34
Откуда: Москва
Контактная информация:

Сообщение gs » 06 дек 2007, 16:54

На самом деле все очень просто. Тонкий тюнинг вполне имеет право на существование, очень даже имеет. Но его надо делать под КОНКРЕНТУЮ задачу и КОНКРЕТНОЕ железо. Причем это требует времени и квалификации (очень высокой квалификации, а не чтения форумов). Результат - непредсказуем.
Поэтому в масспродакшене используется более тупой метод - грубая сила. Это может быть дороже (если у Вас в штате есть высококвалифицированный спец, который может сделать тюнинг забесплатно), зато дает ГАРАНТИРОВАННЫЙ и ПРОГНОЗИРУЕМЫЙ РЕЗУЛЬТАТ.
Тюнингом мы тоже занимаемся, причем порой до посинения. Но это только тогда, когда лобовой путь слишком дорог или уже варианты исчерпаны. В общем, банальная экономическая эффективность.
А вот так, почитав пару постов на форуме, да потыкав мышом, очень наивно ждать чуда...

Аватара пользователя
gs
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 16650
Зарегистрирован: 23 авг 2002, 17:34
Откуда: Москва
Контактная информация:

Сообщение gs » 06 дек 2007, 16:56

Насчет НР - а почему бы не поставить тот, что есть в HCL? Столь крамольная мысль противна пытливому уму?

Аватара пользователя
Odavid
Advanced member
Сообщения: 110
Зарегистрирован: 21 мар 2007, 17:23
Откуда: Нижний Новгород

Сообщение Odavid » 06 дек 2007, 16:59

Smart Array 641/642 Controller?
Так я и про него спрашиваю - а что, на самом деле хорош?
Честно, я такой не видел никогда. Говорят, дорогой до ужаса.
И нет ему ни цены, ни замены?

Аватара пользователя
gs
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 16650
Зарегистрирован: 23 авг 2002, 17:34
Откуда: Москва
Контактная информация:

Сообщение gs » 06 дек 2007, 17:19

http://h18004.www1.hp.com/products/quic ... n%20Wizard
Судя по ссылке, он штатно устанавливался во все сказевые модели. А то, что Вы купили некомплект - чья это проблема?

Аватара пользователя
Odavid
Advanced member
Сообщения: 110
Зарегистрирован: 21 мар 2007, 17:23
Откуда: Нижний Новгород

Сообщение Odavid » 13 дек 2007, 16:50

Увы, наша проблема .... :(
В смысле, не кто пользует и мучается, а кто указания дает....

Аватара пользователя
Odavid
Advanced member
Сообщения: 110
Зарегистрирован: 21 мар 2007, 17:23
Откуда: Нижний Новгород

Сообщение Odavid » 25 дек 2007, 16:26

gs писал(а):http://h18004.www1.hp.com/products/quic ... n%20Wizard
Судя по ссылке, он штатно устанавливался во все сказевые модели. А то, что Вы купили некомплект - чья это проблема?
Точно, проверил: модель 393825-xx1 - это наш сервер, урезанный на RAID-контроллер :(.

Ответить

Вернуться в «Массивы - RAID технологии.»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 26 гостей