Влияние HDD на быстродействие 1С:Предприятие 8.1 (изобретаем велосипед)

05.12.08

База данных - HighLoad оптимизация

http://gilev.ru/1c/hardware/RAID.html
Существуют рекомендации, которых 1С-специалисты не читают, а зря. Вот например эта...

 

О чем пойдет речь

Только вариант клиент-серверной версии 1C:Предприятие 8 под MS SQL Server.

Только кластеры NTFS и блоки RAID-массива (пусть даже это RAID0 из одного диска) в операционных системах Windows Server 2003 (и Windows XP).

Внимание! Действие статьи не распространяется на RAW-партиции и простые диски HDD, не входящие ни в какой RAID-массив с собственным контроллером.

Также маловероятна проблема в в Windows Server 2008 и Windows Vista.

Предмет оптимизации

"Размер блока и размер кластера желательно устанавливать одинаковыми, например, для баз данных SQL Server очень часто слышны рекомендации выбирать и там и там 64Кб. Однако, операционная система создает самый первый кластер (блок начальной загрузки MBR) размером в 63Кб. Эта особенность NTFS означает, что каждый последующий кластер будет сдвинут на 1Кб на предыдущий блок. Т.е. кластеры окажутся смещёнными относительно границ блоков массива. Такая ситуация приводит к тому, что одна операция чтения или записи кластера будет затрагивать два сектора и будет приводить к удвоению числа запросов ввода-вывода."(цитата Александра Гладченко).

Источник Disk Partition Alignment for SQL Server (eng)

Официальное подтверждение проблемы Microsoft и тут.

Средняя степень влияния

Практически все основные типы нагрузки ввода-вывода SQL Server получат выигрыш от этой оптимизации от 9 до 23%.

Способы определить наличие проблемы

1. С помощью DiskPart (Описание программы http://technet.microsoft.com/ru-ru/library/cc773140.aspx и http://support.microsoft.com/kb/300415/ru).

diskpart -i

Наличие цифры 32256 (потому что смещение offset 32256 / 512 байт на сектор = 63).

2. С помощью утилиты DiskExt.

3. С помощью обработки для 1С:Предприятие 8.1 NTFS.epf

Необходимо исправить геометрию RAID массива

1. Скопировать ВСЮ информацию с диска (предположим, что имя диска D:) на другой локальный диск (например диск E:) используя команду xcopy с параметрами копирования файлов и каталогов включая ownership и ACL.

xcopy D:*.* E:DiskD /E /K /O /X

Запустить Disk Management и посмотреть какой физический диск соответствует логическому диску D; допустим это диск 1.

Запустить Disk Management и удалить логический раздел D на физическом диске 1. (Т.е. чтобы выровнять раздел, нужно удалить смещённый раздел).

2) Внимание! Утилита DISKPART уничтожит данные на диске.

В командной строке запустить утилиту DISKPART и выполнить следующие команды:

DISKPART> select disk 1

Disk 1 is now the selected disk.

DISKPART> create partition primary align=64

DiskPart succeeded in creating the specified partition.

DISKPART> exit

Примечание. Команда "create partition primary align=64" создает новый раздел со смещением первого кластера на 64Кб, что позволяет выровнять границы кластеров и блоков и тем самым оптимизировать работу дисковой подсистемы.

3) В Disk Management создать диск (отформатировать)

4) Скопировать файлы обратно (если есть такая необходимость)

xcopy E:DiskD*.* D: /E /K /O /X

Примечание. Описание xcopy.

См. также

Оптимизация нагрузки на ЦП сервера СУБД используя типовые индексы

HighLoad оптимизация Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Анализ простого плана запроса. Оптимизация нагрузки на ЦП сервера СУБД используя типовые индексы.

13.03.2024    2980    spyke    26    

42

Быстродействие типовой 1С

HighLoad оптимизация Платформа 1С v8.3 Бесплатно (free)

Оказывается, в типовых конфигурациях 1С есть, что улучшить!

13.03.2024    5111    vasilev2015    19    

37

Анализируем SQL сервер глазами 1С-ника

HighLoad оптимизация Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка для простого и удобного анализа настроек, нагрузки и проблем с SQL сервером с упором на использование оного для 1С. Анализ текущих зааросов на sql, ожиданий, конвертация запроса в 1с и рекомендации где может тормозить

1 стартмани

15.02.2024    7641    158    ZAOSTG    68    

96

Удаление строк из таблицы значений различными способами с замером производительности

HighLoad оптимизация Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Встал вопрос: как быстро удалить строки из ТЗ? Рассмотрел пять вариантов реализации этой задачи. Сравнил их друг с другом на разных объёмах данных с разным процентом удаляемых строк. Также сравнил с выгрузкой с отбором по структуре.

09.01.2024    5978    doom2good    48    

63

Опыт оптимизации 1С на PostgreSQL

HighLoad оптимизация Бесплатно (free)

При переводе типовой конфигурации 1C ERP/УТ/КА на PostgreSQL придется вложить ресурсы в доработку и оптимизацию запросов. Расскажем, на что обратить внимание при потерях производительности и какие инструменты/подходы помогут расследовать проблемы после перехода.

20.11.2023    8872    ivanov660    6    

76

ТОП проблем/задач у владельцев КОРП лицензий 1С на основе опыта РКЛ

HighLoad оптимизация Бесплатно (free)

Казалось бы, КОРП-системы должны быть устойчивы, быстры и надёжны. Но, работая в рамках РКЛ, мы видим немного другую картину. Об основных болевых точках КОРП-систем и подходах к их решению пойдет речь в статье.

15.11.2023    5105    a.doroshkevich    20    

72

Начните уже использовать хранилище запросов

HighLoad оптимизация Запросы

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

11.10.2023    16186    skovpin_sa    14    

98
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. kitt 323 05.12.08 10:53 Сейчас в теме
Не совсем понятно почему речь идет только о клиент-сервере MSSQL?
Мне кажется вся система должна после этого работать быстрее на 9 до 23%. Или кто нибудь может объяснить первую версию? жду комментариев.
3. Gilev.Vyacheslav 1910 05.12.08 14:13 Сейчас в теме
(1) Наибольший процент прироста ожидается в варианте с MS SQL Server. Тем не менее есть смысл делать для любого варианта использования 1С:Предприятие, просто эффект будет меньшим. У меня нет данных, как это скажется в Postgre под Винду. Понятно, что под линуксом этой проблемы не стоит.
2. vde69 925 05.12.08 11:31 Сейчас в теме
для выявления узких мест SQL сервера (под рабочей нагрузкой) рекомендую http://infostart.ru/projects/2831/

Собствено далеко не всегда, тормозит диск (даже обычно не он), но статья хорошая, плюсую.

4. Gilev.Vyacheslav 1910 05.12.08 14:13 Сейчас в теме
(2) дружок, этот вариант куда актуальней http://www.gilev.ru/1c/81/lock/index.htm
5. vde69 925 05.12.08 14:22 Сейчас в теме
(4) я это конечно смотрел, вещь безусловно нужная, но это РАЗНЫЕ вещи. И они для разного предназначены.

та вещь для оптимизации кода конкретной базы, а (2) для оптимизации клиент серверной системы в целом (железо)
6. Gilev.Vyacheslav 1910 05.12.08 14:25 Сейчас в теме
(5) для оптимизации кода 8.1 пока лучше 1С:ЦУП ничего не придумано http://v8.1c.ru/expert/pmc/pmc_overview.htm .
Тут даже опсуждать нечего.
8. vde69 925 05.12.08 14:45 Сейчас в теме
(6) не смотрел, спс за ссылку, но еще раз говорю, что решение (2) оно показывает проблеммы клиент серверной системы (не обязательно 1с и с любым количеством баз), это РАЗНЫЕ вещи, и они не заменят друг друга.

Для примера у нас: на основании результата (2) удалось уменьшить обшее ожидание блокировок в ТРИ раза путем замены одного хаба на свич...
9. Gilev.Vyacheslav 1910 05.12.08 14:49 Сейчас в теме
(8) если есть такая вера в эффективность, я "сдаюсь" :)
10. vde69 925 05.12.08 15:03 Сейчас в теме
(9) ну я тоже тогда "сдаюсь" :)

а с дисками я нашим админам ссылку дал, думаю будет польза
7. Gilev.Vyacheslav 1910 05.12.08 14:26 Сейчас в теме
11. hogik 443 06.12.08 04:04 Сейчас в теме
(0)Не понимаю:
1) "RAID0 из одного диска" - это шутка?
2) "будет затрагивать два сектора" - может быть не сектора, а "блока"?
3) "Размер блока и размер кластера... устанавливать одинаковыми" - блока или полосы?
4) "...система создает самый первый кластер (блок начальной загрузки MBR) размером в 63Кб" - какая связь между кластером и MBR? В одной из приведенных Вами ссылок написано: "На дисках с основной загрузочной записью (MBR) смещение и размер раздела округляются для сохранения требуемой конфигурации цилиндров до ближайшего действительного значения (размер — с повышением)".
5) И т.д.
А в целом - вопрос выбора "размера" единицы ввод/вывода информации на "физическом" и "логическом" уровне для минимизации операций ввода/вывода весьма актуальна. Но читать надо немного побольше чем написал Александр Гладченко. ;-)))
12. Gilev.Vyacheslav 1910 06.12.08 17:54 Сейчас в теме
(11) вот что меня всегда поражает в людях - это желание пофлудить, не важно о чем даже флудить
поэтому попробую ответить так, чтобы остальных ваш пост не ввел в заблуждение:
1) существует проблема
2) описан алгоритм поиска симптомов
3) описан алгоритм устанения проблемы
4) проблема гораздо сложней, здесь показана только информация для пунктов (2-3)
5) любой, кто прочитал эту статью и решит разобраться подробней, может по указанным в этой статье ссылка прочитать всю исчерпывающаю информацию

теперь ответ Вам - см. пункт 5
13. hogik 443 06.12.08 18:29 Сейчас в теме
(12)(gilv)
Перечисление явных ошибок в изложенном материале (не Вами, а Александром Гладченко) - это "флуд"?
14. Gilev.Vyacheslav 1910 06.12.08 18:37 Сейчас в теме
Вам понятен смысл проблемы? Если да, то суть проблемы Александром сформулирована. Я умышленно не стал акцентироваться на мелочах.
15. hogik 443 06.12.08 18:57 Сейчас в теме
(14)(gilv)
Да. Суть проблемы мне понятна. :-))) Но, то что "сформулировал" Александр (в части ей формулирования) это, извините, и есть - полнейший "флуд". И если для Вас является мелочью то, что перечислено в сообщении (11), то, действительно, дальше нам с Вами "флудить" не имеет смысла.
16. Gilev.Vyacheslav 1910 06.12.08 19:48 Сейчас в теме
да, я хочу научить коллег решать проблемы, заставить прочитать даже http://blogs.msdn.com/jimmymay/attachment/8999719.ashx врядли смогу :), там есть ответы на неточности :)
17. hogik 443 08.12.08 06:04 Сейчас в теме
(16)Придётся "флуднуть" еще раз. :-)
Вы называете неточностью утверждение, что "операционная система создает самый первый кластер (блок начальной загрузки MBR) размером в 63Кб"? Это не неточность, это - неправда. Система не создаёт кластер для MBR. И то, что Вы называете способом определения наличия проблемы "offset 32256 / 512 байт на сектор = 63" лишь подтверждает цитату из пункта #5 сообщения (11), а не наличие проблемы из-за первого кластера размером в 63Кб. Хотя число "63" присутствует. ;-) Утверждение, что это является особенностью NTFS - тоже неправда, т.к. при создании раздела и MBR еще не существует никакой файловой системы.
Т.е. меня удивило в Вашей статье несоответствие раздела "Предмет оптимизации" и содержание ссылки "Официальное подтверждение проблемы". Допускаю, что это педагогический прием для того чтобы "научить коллег решать проблемы" через "заставить прочитать". Если это так, то сто плюсов Вам...
19. Gilev.Vyacheslav 1910 08.12.08 12:59 Сейчас в теме
(17) вы посмотрите на (18) - человеку без разницы (сектор, кластер или что-то там еще), он не вникает, он спрашивает, куда конкретно нажать :)
Предложите Вашу формулировку объяснения, если она покажеться понятней и правильней, мы с Вами ее заменить вместо цитаты Гладченко, идет?
20. Gilev.Vyacheslav 1910 08.12.08 13:05 Сейчас в теме
(19) в Windows Server 2008 и Windows Vista - там сдвиг изначально кратен 1024
однако это верно, если вы не мигрируете или ставите рядом 2008, а делаете все начистую
т.е. дело не в операционной системе, а в ее действиях с жестким диском
21. Gilev.Vyacheslav 1910 08.12.08 13:11 Сейчас в теме
(19) вот тут объяснение, почему в новых версиях изменили разбивку http://support.microsoft.com/kb/923332 :
новые HDD имеют другую геометрию диска
22. vasilykushnir 63 08.12.08 14:03 Сейчас в теме
(21)Эх... Если б я еще английский знал... За статью и разяснение - спасибо. Мне действительно горько фиолетово что и как там системы чудит - главное метода для исправления глюка (все ведь невозможно знать). А рейдушка мне крови попил изрядно, пока все не устаканилось...
23. hogik 443 08.12.08 18:08 Сейчас в теме
(19)(gilv)
Если Вы считаете, что "человеку без разницы (сектор, кластер или что-то там еще)"(с), то для него не цитату Гладченко надо заменять, а менять подзаголовок Вашей статьи. Типа, написать не "...1С-специалисты не читают, а зря", а "...1С-специалисты не читают, и правильно делают". И если "он спрашивает, куда конкретно нажать :)"(с), то указать на кнопку "Плюс" рейтинга.
24. Gilev.Vyacheslav 1910 08.12.08 18:55 Сейчас в теме
(23) как то странно читаем, часть сообщения цитируем, а вторую не замечаем,
ну я не гордый, могу и повторить:
Предложите Вашу формулировку объяснения, давайте ее поместим.
25. hogik 443 08.12.08 19:55 Сейчас в теме
(24)(gilv)
На мой взгляд я ответил на Ваше предложение заменить цитату от Гладченко на мою "формулировку объяснения"©. И давайте прекратим этот разговор...
aleks_cons; +1 Ответить
18. vasilykushnir 63 08.12.08 12:22 Сейчас в теме
А почему для сервера 2008 это не актуально? Это на предмет того - стоит ли в таком случае переходить на 2008-й.
26. Gilev.Vyacheslav 1910 15.12.08 22:58 Сейчас в теме
продолжение "железячной" темы здесь http://infostart.ru/blogs/895
27. leshik 34 17.12.08 16:29 Сейчас в теме
Мне честно говоря не совсем понятно почему Вячеслав не указывает ссылку на первоисточник данной информации:
http://msmvps.com/blogs/gladchenko/archive/2008/10/18/1651317.aspx
28. Gilev.Vyacheslav 1910 17.12.08 19:43 Сейчас в теме
(27) вот упертные - вот первоисточник Disk Partition Alignment for SQL Server (eng), и он в тексте указан,
если нужна запись в блогах, тогда уж раньше Гладченко написала http://sqlblog.com/blogs/linchi_shea/archive/2007/02/01/performance-impact-of-disk-misalignment.aspx
а Гладченко ее пересказал, но и авторство Гладченко сохранил, что я сделал не так?!
29. Gilev.Vyacheslav 1910 17.12.08 19:46 Сейчас в теме
(27) надеюсь авторство моей обработки для 1С:Предприятие не будете оспаривать?
30. leshik 34 17.12.08 22:29 Сейчас в теме
(29) Нет конечно, Вячеслав! Я Вам очень благодарен, да думаю и не только я, за Ваши разработки и материалы Вашего сайта.
(28) Может упертость двух людей говорит о том что они подумали одинаково по какой-то причине?
Так вот - признаюсь честно просмотрев перед написанием (27) данный материал я для себя не отметил фразы
"(цитата Александра Гладченко)"
Я считаю что намного логичнее было бы привести в данном материале ссылку как на статью Гладченко (27), так и на ту что привели Вы в (28). Тогда бы ни у меня ни у (13) такой мысли не возникло.
И хотелось бы сказать большое спасибо за то что помогаете сообществу 1С-ников получать такую информацию. Ведь мало кто просматривает блоги SQL DBA.
Извините если я Вас обидел в (27).
aleks_cons; +1 Ответить
32. Gilev.Vyacheslav 1910 17.12.08 23:56 Сейчас в теме
(30) "для себя не отметил фразы" тем не менее она была в исходном сообщении сразу
31. Gilev.Vyacheslav 1910 17.12.08 23:52 Сейчас в теме
33. anderson 230 24.02.09 14:33 Сейчас в теме
Подскажите есть ли возможность исправить ошибку средствами другого ПО (acronis disk director или подобное загружаемое до ОС). DISKPART выдает сообщение о невозможности создания раздела
aleks_cons; +1 Ответить
34. Gilev.Vyacheslav 1910 24.02.09 16:35 Сейчас в теме
(33) если вы все правильно проделали, и видите, что нужна оптимизация
то можете разбить диск с помощью любой утилиты, которая обладает такой функцией.
акронисом не разбивал, но после попытки разбить просто проверьте, получился ли желаемый результат
обратите также внимание, что некоторые новые диски впринципе не могут содержать эту проблему, так как из-за больших объемом там сразу разбивка идет по 1024
35. Gilev.Vyacheslav 1910 06.04.09 16:20 Сейчас в теме
Подробней поговорить о данном приеме хочу предложить на моем авторском курсе http://www.gilev.ru/1c/mssql/kurs.htm
Можно заранее задать вопросы по вашему предприятию, которые мы разберем на курсе.
36. echo77 1868 11.09.11 12:14 Сейчас в теме
(0) За публикацию конечно плюс, но вот обработка ntfs.epf определяет нужна ли или нет оптимизация диску методом:
Элемент.StartingOffset/512 = 63
что не совсем правильно. Я например, встречал 0 раздел смещенный на 16384 байта

p.s. хотя с переходом всех на Win7/2008 большинству эта проблема не актуальна
37. пользователь 10.03.12 21:43
Сообщение было скрыто модератором.
...
38. wildskiff 11.11.14 21:29 Сейчас в теме
Огромное спасибо за материал. Даже не подозревал о возможности существовании проблемы. У нас как раз server2003 c ms server. На выходных займемся исправлением.
Gilev.Vyacheslav; +1 Ответить
Оставьте свое сообщение