Как стать автором
Обновить

Тестирование скорости работы 1C в режиме файловой версии, MS SQL и POSTGRES на HDD, SSD и RAMDisk

Время на прочтение5 мин
Количество просмотров19K

Мне всегда было интересно (и не только мне) есть ли смысл запуска 1С в диске из оперативной памяти, потому что если посмотреть на графики скорости чтения различных типов накопителей, то преимущества  очевидны:

Замеры скорости чтения CrystaMark дисков, участвовавших в тестировании
Замеры скорости чтения CrystaMark дисков, участвовавших в тестировании

Виртуальный диск из ОЗУ демонстрирует огромное преимущество над любым типом дисков, даже если бы мы использовали SSD с поддержкой NVMe PCI-express v4 (предлагаю дальше для упрощения просто указывать NVMe x3 для SSD на шине версии 3 и NVMe x4 с PCI-express версии 4) мы бы не смогли получить особого преимущества перед диском из оперативной памяти, так как это позволило бы только увеличить скорость записи больших файлов с 3521 Мб/сек до 5000, что все равно далеко от скоростей RAMDisk, но никак не повлияло бы на скорости мелких файлов и секторов, а в нашем случае это имеет важное значение. Кажется, что тестирование проводить смысла нет – исходя из графика сразу понятно кто аутсайдер, и кто победитель: заранее скажу что в целом – да, но не везде и не всегда, а жесткие диски списывать со счетов рано.

В связи с этим я решил сравнить скорость быстродействия 1C:Предприятие в различных способах управления информационной базой 1С: файловый вариант, MS SQL и POSTGRES. Тестирование проводилось поочередно на каждом из четырех накопителей. В качестве замера производительности применял два теста – перепроведение документов за одинаковый отрезок времени и формирование оборотной ведомости за 6 лет, различные синтетические тесты и «замеры производительности» не проводились ввиду того что они не всегда точно отображают реальную производительность.

В качестве тестового стенда применялся компьютер следующей конфигурации:

CPU

AMD Ryzen R9 3900X (12 ядер, 24 потока, 3800МГц)

RAM

32 Гб DDR4 Kingston FURY 2666МГц (4*8ГБ)

HDD

1ТБ Seagate 1000DM003

SSD SATA

500 Гб Samsung 870EVO

SSD NVMe x3

500 Гб Samsung 970EVO

OS

MS Windows Server 2019 Standard

1С:Предприятие

Бухгалтерия для гос. Учреждений ПРОФ

СУБД MS SQL

2019 STANDARD

СУБД POSTGRES SQL

14.4-1.1C

Тестирование начнём с самого простого способа управления информационной базой 1С:Предприятия – файловый (меньше – лучше, время в мин:сек):

То что жесткий диск оказался самым медленным способом обработки информации это ожидаемо, отставание SATA SSD от NVMe x3 составляет существенные 20%, а виртуальный диск из оперативной памяти хоть и самый быстрый, но разгромного преимущества перед  NVMe x3 нет: выигрыш в скорости примерно 10%, несмотря на огромную разницу в скорости чтения и записи, что касается скорости в перепроведении документов ситуация уже не такая однозначная (меньше – лучше, время в мин:сек):

А вот и первый сюрприз: если с физическими накопителями всё закономерно, то в этот раз RAMDisk оказался самым медленным – я повторил тестирование три раза, но ничего не поменялось, возможно, проблема имеет общие корни с программными RAID массивами. Но при этом стоит обратить внимание, что здесь жесткий диск уже не кажется безнадежно устаревшим вариантом.

Теперь перейдём к тестированию варианта взаимодействия с информационной базой 1C:Предприятия через СУБД MS SQL 2019:

СУБД SQL от Microsoft показывает отличную оптимизацию обработки информации по сравнению с файловым вариантом, в целом можно сказать что все время формирования отчёта для SSD обоих типов и RAMDisk одинаково и лежит в пределах погрешности, но если жесткий диск справился почти в 5 раз быстрее (+500%), то для SSD прирост скорости составил 100% для NVMe x3 и 250% для SATA SSD. Прирост скорости для RAMDisk составил «скромные» 75%.

Здесь сохраняется логичное преимущество твердотельных накопителей над жестким диском, но диск из ОЗУ начинает демонстрировать недостатки программной эмуляции накопителя.

Чтобы получить результаты наиболее объективным, я решил проверить теорию влияния скорости на работу СУБД когда журналы пользователей и база данных хранятся на разных дисках, но это никак не повлияло на скорость формирования отчетов.

Теперь проверим быстродействие 1С:Предприятие  с POSTGRES:

POSTGRES SQL показывает отличную масштабируемость в зависимости от типа диска и, что необычно, формирование отчёта с СУБД POSTGRES при разворачивании базы на жёстком диске оказывается быстрее в 1,5 раза по сравнению с СУБД от Microsoft. Но если смотреть на график относительно твердотельных накопителей (SSD), то, конечно, Microsoft SQL предпочтительнее. В случае с RAMDisk разницы нет. 

Последний тест отлично показывает отсутствие целесообразности использования RAMDisk для размещения СУБД. Так как этот диск виртуальный и он создаётся посредством программного обеспечения, то наблюдается аналогия с программными и аппаратными RAID массивами: программные массивы обслуживаются вычислительными мощностями ЦП, стабильность и скорость работы целиком зависит от грамотности и правильности кода соответствующего программного обеспечения для создания диска из ОЗУ, аналогичная ситуация справедлива и для физических дисков: когда для создания RAID массивов применяется аппаратные средства, снимается с ЦП задачи по обслуживанию RAID, что положительно сказывается на общей производительности массива и отпадает зависимость  от качества работы программного обеспечения сторонних разработчиков. В случае создания виртуального диска из оперативной памяти используется программное обеспечение, что накладывает определенные ограничения на работу данного диска, что и подтверждает тестирование – чёткой стабильности в производительности нет в отличие от физических накопителей. Но, как бы то ни было, последний тест в очередной раз подтверждает преимущество NVMe SSD накопителя перед другими типами дисков.

Проведенное тестирование показало преимущество СУБД MS SQL над POSTGRES и общее преимущество обоих типов СУБД над классическим способом работы 1С:Предприятие – файловым. Смысла использования RAMDisk нет от слова совсем – да, прирост в скорости в файловом варианте составляет примерно 12% от самого быстрого диска, но экономической целесообразности нет  - в среднем 32 Гб ОЗУ DDR4 стоит 180$, а 500 Гб SSD NVMe x3 (в тестировании применялся SSD Samsung 500 Гб 970EVO) стоит 120$, разница в стоимости при пересчете Гб/$ составляет 5,6$ за гигабайт для ОЗУ и 0,24$ за гигабайт для SSD. Переплата в 23 раза (2300%) ради 12% производительности лишь в нескольких случаях смысла не имеет.

Отдельного внимания заслуживает СУБД POSTGRES SQL – в отличие от СУБД Microsoft она бесплатная, но в среднем увеличивает скорость работы с 1С в два раза, на мой взгляд неплохое предложение для недорогого (не забываем что необходимо для любого варианта использования SQL требуется приобретение лицензии на сервер 1С) но эффективного ускорения работы 1С:Предприятие. Что касается СУБД Microsoft SQL Server – это самый быстрый и эффективный способ обработки информации в 1С:Предприятие, да, он не бесплатный, но даёт прирост до 50% по сравнению с POSTGRES.

Что касается дисков, то, разумеется, SSD новейших форматов NVMe x3 (и x4) является наиболее предпочтительным вариантом - этот тип диска в связке с СУБД MS SQL даст наибольший прирост производительности, но если у вас стоит задача добиться значительного увеличения скорости работы 1С с минимальными затратами – можете  смело использовать связку POSTGRES и старый добрый HDD.

В заключение, предлагаю ознакомиться с краткой таблицей сравнительного тестирования:

Тип работы

Формирование оборотной ведомости

Перепроведение документов

Рейтинг производительности

MS SQL + NVMe SSD

0:18

2:40

1

MS SQL + SATA SSD

0:19

3:02

2

MS SQL + RAMDisk

0:20

3:29

3

POSTGRES + NVMe SSD

0:27

4:53

4

POSTGRES + SATA SSD

0:35

5:03

5

POSTGRES + RAMDisk

0:19

5:50

6

MS SQL + HDD

1:18

4:21

7

POSTGRES + HDD

0:52

5:20

8

NVMe SSD

0:39

10:52

9

RAMDisk

0:35

12:55

10

SATA SSD

0:48

11:50

11

HDD

6:21

12:53

12

Автор: Щепаняк Виктор Иванович

Теги:
Хабы:
+12
Комментарии113

Публикации

Истории

Работа

Консультант 1С
109 вакансий
Аналитик 1С
5 вакансий
Программист 1С
72 вакансии

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн