Еще один тест 1C: Postgres SQL 11 Pro Enterpise против MSSQL 14 под Windows 2012 Server R2

03.10.23

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

Проработав 15 лет с MSSQL в 2017 начал активно СУБД Postgres SQL. За два года успел поработать в 9 версии Postgres и в 10-ой. И пришел к выводу, что существуют реальное замедление работы баз после перехода на Postgres. Недавно вышла 11 версия Postgres Pro Enterpise, которая обещает почти 2-х кратное ускорение над 11 Pro Standart и 10-ой версией. Закупив лицензию Postgres 11 Pro Enterpise Это я и решил проверить на 1С.

Скачать исходный код

Наименование Файл Версия Размер
Файл настроек 11 при котором все тормозит (Стандартные по умолчанию) postgresql.conf
.conf 24,29Kb
14
.conf 24,29Kb 14 Скачать
Файл настроек Postgres SQL 10-11 при котором все работает быстро (под сервер 16-32 RAM)postgresql.conf
.conf 23,18Kb
65
.conf 23,18Kb 65 Скачать

В качестве теста решил использовать:

  1. Тест 1 - знаменитый всем тест Гилева
  2. Тест 2 - загрузка базы данных из dt файла. база - 1C Бухгалтерия предприятия 3.0 (3.0.72.70).  Критерий оценки время на удаление
  3. Тест 3  - Обработка по поиску и удалению данных по одной организации в 1C Бухгалтерия предприятия 3.0 (3.0.72.70) (база данных плюс минус на 15 гигабайт). Критерий оценки время на удаление
  4. тест 4. Перепроведение всех Документов базы с начала. 1C Бухгалтерия предприятия 3.0 (3.0.72.70). Критерий оценки Время на проведение
  5. тест 5 - тест fragster.ru 

По моим наблюдениям, несомненным плюсом Postgres является тот факт, что Postgres более оптимально использует ресурсы (Память, CPU, накопитель)

Поэтому я умышленно установил лишь 8Gb памяти для того чтобы дать фору Postgres

В Качестве подопытного ПК Будем использовать машину, о которой я писал в статье //infostart.ru/public/992238

Характеристики подопытного ПК: 

  1.  Intel Xeon E3 1270 3,4 ГГц LGA1155 8 MB 4 ядра Процессор процессор E3-1270 SR00N (полный серверный аналог i7 2600K без встройки gpu) В разгоне 3,8Ghz 
  2.  8G RAM 1333Mhz,
  3.  SSD samsung 860 pro 250gb, 
  4.  Видеокарта -  6970 2 gb GPU с выходом mini DP
  5. Добротный блок питания 850Ватт Corsair HX850i
  6. 1C Сервер предприятия x64 v8.3.12.1790
  7. 1C клиент x64 v8.3.12.1790
  8. ОСь Windows 2012 Server R2

Итак, начнем тесты:

 

1. Первый тест - тест Гилева:

Результаты по Postgres 11

 

Результаты по MSSQL 14

Результаты теста Гилева:

  1. в пользу MSSQL 14 в одно-поточном режиме 29 попугаев MSSQL  против 23 Postgres. 
  2. 188Mb/сек в пользу Postgres против 140Mb/сек MSSQL в много-поточном режиме без опции SNAPSHOT_ISOLATION ON

Важное замечание. Если MSSQL перевести в режим SNAPSHOT_ISOLATION ON (Изоляция снимков, версионирование) - то MSSQL начинает хранить снимки баз до транзакции в памяти и дико выедает всю доступную оперативную память, отказываясь использовать файл подкачки.

Для этого снимаем конфигурацию Гилева с поддержки и снимаем режим совместимости, так как изоляция снимков работает только начиная с 11-12 платформы. После чего выполняем скрипт на базе.

 

 

В результате тест Гилева в много-поточном режиме вываливается с ошибкой из за нехватки памяти ОЗУ(RAM) 

   

 

  

Если увеличить память машины до 16-32GB в режиме SNAPSHOT_ISOLATION ON Postgres  так же обходит MSSQL .

Так что первый тест за Postgres

 

Тест 2: загрузка базы данных из dt файла.

Время на загрузку базы из *.dt файла

  • MSSQL  1 минута 49 секунд  
  • Postgres - 2 минуты 20 секунд

Второй тест в копилку MSSQL  Server 

 

Тест 3: Обработка по поиску и удалению данных по одной организации в 1С Бухгалтерия 3.0 (база данных плюс минус на 15 гигабайт).

Обработка находится тут //infostart.ru/public/1013709

Результаты отладки по MSSQL:

Результат MSSQL - 6422 секунды или почти 2 часа.

Результат Postgres - 61756 секунды или 17 с лишним часов 

                            

Итого MSSQL отрабатывает результат почти в 10 раз быстрее. Почему? Возможно в том, что Функция НайтиСсылкиНаСервере отправляет кучу мелких запросов, а MSSQL работает в режим Shared Memory, а Postgres в протоколе TCP/IP, из за чего возникает задержка между сервером предприятия 1С и СУБД. В связи с чем получаем дикую просадку по скорости. 

Для Posgres Shared Memory так же настраивал, но увы скорости не прибавилось, так как этот параметр отвечает за совсем другую функциональность и не влияет на протокол обмена. Возможно руки кривые или лыжи не едут, так что критика тут уместна.

# PostgreSQL configuration file

shared_buffers = 3GB 

Вывод - если вы используете Сервер предприятия на одной машине с MSSQL сервер - используйте протокол  Shared Memory и еще один попугай в пользу Майкрософт.

 

 

Тест 4. Перепроведение всех Документов базы. Ссылка на обработку //infostart.ru/public/1117962/

Результаты MSSQL - 58 минут 47 секунд

 

Результаты Postgres- 8 часов 39 минут 47 секунд

Почему так долго не знаю. Параметры двигал туда сюда, не помогает, все равно долго.

Любопытные могут скачать настройки Postgres за 1 инфо-шейкель в описании.

Еще один жирный попугай в пользу Майкрософт

Update  Важное дополнение: В режиме TCP MSSQL проводил документы 1 час 17 минут. Почему так тормозит Postgres SQL 11 PRO - не знаю.

Тест 5 - тест fragster.ru 

Результаты тестов:

Временные таблицы Справочники Регистры сведений Регистры накопления Регистры бухгалтерии
Тест Postgres MSSQL Разница Postgres MSSQL Разница Postgres MSSQL Разница Postgres MSSQL Разница Postgres MSSQL Разница
  13 935,27 72 885,73 58 950,46 12 561,00 12 271,91 -289,09 9 123,00 9 489,09 366,09 8 941,00 9 363,00 422,00 8 567,82 9 112,45 544,63
1 5 096,00 12 938,00 7 842,00 3 035,00 2 879,00 -156,00 2 055,00 2 221,00 166,00 2 004,00 2 247,00 243,00 1 929,00 2 137,00 208,00
2 8 282,00 28 725,00 20 443,00 6 177,00 5 920,00 -257,00 4 453,00 4 533,00 80,00 4 304,00 4 423,00 119,00 4 082,00 4 302,00 220,00
4 11 927,00 54 045,00 42 118,00 10 968,00 10 112,00 -856,00 7 923,00 7 764,00 -159,00 7 716,00 7 727,00 11,00 7 320,00 7 321,00 1,00
8 13 680,00 78 023,00 64 343,00 15 356,00 14 564,00 -792,00 11 179,00 11 356,00 177,00 10 839,00 11 135,00 296,00 10 196,00 10 804,00 608,00
16 16 691,00 78 931,00 62 240,00 14 634,00 14 418,00 -216,00 10 941,00 11 249,00 308,00 10 767,00 11 340,00 573,00 10 439,00 11 077,00 638,00
32 16 676,00 79 000,00 62 324,00 14 843,00 14 681,00 -162,00 10 842,00 11 151,00 309,00 10 637,00 11 176,00 539,00 10 186,00 10 861,00 675,00
48 16 056,00 78 930,00 62 874,00 14 782,00 14 612,00 -170,00 10 757,00 11 273,00 516,00 10 342,00 10 895,00 553,00 9 808,00 10 816,00 1 008,00
64 15 866,00 78 677,00 62 811,00 14 361,00 14 522,00 161,00 10 451,00 11 250,00 799,00 10 513,00 11 073,00 560,00 9 896,00 10 760,00 864,00
80 16 084,00 78 670,00 62 586,00 14 561,00 14 426,00 -135,00 10 103,00 11 229,00 1 126,00 10 206,00 11 034,00 828,00 10 150,00 10 727,00 577,00
96 16 520,00 78 493,00 61 973,00 14 814,00 14 426,00 -388,00 10 808,00 11 215,00 407,00 10 456,00 10 956,00 500,00 10 111,00 10 712,00 601,00
112 16 410,00 155 311,00 138 901,00 14 640,00 14 431,00 -209,00 10 841,00 11 139,00 298,00 10 567,00 10 987,00 420,00 10 129,00 10 720,00 591,00

 

По таблице видно что Postgres незначительно выигрывает в работе со справочниками, но примерно в 10 раз медленнее работает с временными таблицами. Так как в MSSQL поздних версий временные таблицы кешуруются в ОЗУ(RAM). Результаты по регистрам примерно одинаковы в обеих СУБД, с небольшим преимуществом MSSQL. Этот тест так же в копилку Мйкрософт

 

Счет 1-5 в пользу Майкрософт.

Так что 11-ый слон по прежнему медленный, но в случае возникновения блокировок - слон как всегда более проходимый чем Лошадь от Microsoft.

        

От себя: Исходя из личного опыта сделал вывод:

  1. Если железо мощное нет узких мест в ресурсах = то Лучше MSSQL
  2. Так же с переходом на  Postgres, gjxnb забыл о злощасных  мертвых блокировках от которых в MSSQL невозможно Избавиться(SNAPSHOT_ISOLATION ON отчасти решают проблему но не всегда, особенно в типовых релизах). 
  3. Так же при переходе на Postgres необходимо переписывать запросы суммирования ISNULL(значение1)+ISNULL(значение2), не то получим отчет с NULL. Соответствующей настройки "объединение со значением  NULL дает NULL off" -  в Postgres не нашел.
  4. Если ваш сервер трещит по швам, не хватает памяти или прочих ресурсов, денег на новый сервер нет - держитесь за Postgres SQL на Linux 

Update 08.09.2019 

Установил версию Postgres SQL 10.8-18.1C с сайта 1c.ru. Настройки postgres выставил те что во вложении.

Итого получил результат по тесту перепроведения документов: 

  • Время начала: 08.09.2019 20:24:04
  • Время окончания: 08.09.2019 21:49:28
  • Итого время 1 час 25 минут, что всего на пол часа больше чем MSSQL и на 7 часаов быстрее чем Postgres 11 версии (со стандартными настройками с сайта www.postgresql.org)

Чуть позже применил эти же на стройки на Postgres Pro 11 и получил результат  по тесту перепроведения документов: 

  • Время начала:      08.09.2019 22:16:55
  • Время окончания: 08.09.2019 23:38:29

1 час 22 минуты при настройках во вложении. 

PostgreSQL VS MSSQL Сервер HighLoad 1C

См. также.

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

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

13.03.2024    4053    spyke    28    

47

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

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

13.03.2024    6214    vasilev2015    19    

39

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

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

1 стартмани

15.02.2024    9540    193    ZAOSTG    74    

105

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

Принимать, хранить и анализировать показания счетчиков (метрики) в базе 1С? Почему бы нет? Но это решение быстро привело к проблемам с производительностью при попытках построить какую-то более-менее сложную аналитику. Переход на PostgresSQL только временно решил проблему, т.к. количество записей уже исчислялось десятками миллионов и что-то сложное вычислить на таких объемах за разумное время становилось все сложнее. Кое-что уже практически невозможно. А что будет с производительностью через пару лет - представить страшно. Надо что-то предпринимать! В этой статье поделюсь своим первым опытом применения СУБД Clickhouse от Яндекс. Как работает, что может, как на нее планирую (если планирую) переходить, сравнение скорости работы, оценка производительности через пару лет, пример работы из 1С. Все это приправлено текстами запросов, кодом, алгоритмами выполненных действий и преподнесено вам для ознакомления в этой статье.

1 стартмани

24.01.2024    4116    glassman    17    

39

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

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

09.01.2024    8271    doom2good    49    

67

HighLoad оптимизация Системный администратор Программист Бесплатно (free)

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

20.11.2023    10655    ivanov660    6    

78

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

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

15.11.2023    5842    a.doroshkevich    20    

73
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. user-z99999 70 05.09.19 15:12 Сейчас в теме
Похоже настройки, например: MSSQL работает в режим Shared Memory, а Postgres в протоколе TCP/IP
делаются специально.
Чтобы удобно было сравнивать мягкое с квадратным.

Желательно акцент делать на характеристиках и настройках баз данных + ОС.
Потому что сейчас вы продемонстрировали результат, который непонятно откуда произошел.
user684640_varikov1; Indgo; nomad_irk; vv2; +4 Ответить
2. Indgo 410 05.09.19 15:16 Сейчас в теме
(1) 1C Бухгалтерия предприятия 3.0 (3.0.72.70)
Добавил в описание.
Похоже настройки, например: MSSQL работает в режим Shared Memory, а Postgres в протоколе TCP/IP
делаются специально.

То что Postgres не умеет работать на Shared Memory я не виноват - выжимал из настроек по максимуму и там и там.
Лично сам болел за слона - но увы эксперимент есть эксперимент.
3. vv2 05.09.19 15:27 Сейчас в теме
(2) А Shared Memory возможен когда 1с и СУБД на разных серверах ?
4. Indgo 410 05.09.19 15:28 Сейчас в теме
5. vv2 05.09.19 15:34 Сейчас в теме
(4) А разве тогда не нужно отдельно тестировать вариант с раздельным расположением сервера 1С и СУБД ?
Fox-trot; Indgo; +2 Ответить
6. Indgo 410 05.09.19 15:44 Сейчас в теме
(5)
А разве тогда не нужно отдельно тестировать вариант с раздельным расположением сервера 1С и СУБД ?

Позже сделаю тест без Shared Memory, чтобы не дискредитировать слонов, но все равно не думаю что будет 17 часов проводиться. Мой прогноз не более 3 часов.
Так же скоро будет подобный тест, но уже на новом 32-ух ядерном сервере. Но это уже будет другой тест
7. Reaper_1C 122 05.09.19 16:09 Сейчас в теме
(2)
я не виноват - выжимал из настроек по максимуму


Ну не правда. Посмотрите на формат строки подключения к PostgeSQL:
https://postgrespro.ru/docs/postgresql/11/libpq-connect#LIBPQ-CONNSTRING

Там ясно указано:
Имя компьютера для подключения. Если это имя начинается с косой черты, оно выбирает подключение через Unix-сокет, а не через TCP/IP, и задаёт имя каталога, содержащего файл сокета.


Таким образом, если сервер приложений системы "1С: Предприятие 8" и PostgresSQL будут размещены на одном компьютере под управлением Linux, то в настройках подключения к БД можно будет указать путь к файлу сокета и системы будут передавать данные друг другу без использования сетевого стека.
cleaner_it; Мах; neverok; VVi3ard; nvv1970; neyasytyf; A_Max; letarch; 2tvad; Indgo; vv2; +11 Ответить
8. Indgo 410 05.09.19 16:17 Сейчас в теме
(7)
Таким образом, если сервер приложений системы "1С: Предприятие 8" и PostgresSQL будут размещены на одном компьютере под управлением Linux, то в настройках подключения к БД можно будет указать путь к файлу сокета и системы будут передавать данные друг другу без использования сетевого стека.

Тут согласен - если Слона поместить в Linux, особенно в последнюю версию Ubuntu и настроить подключение под Unix-сокет Слоник начинает быстрее бегать.
Тем не менее более 90% всех серверов 1С работают на виндовозе. Не понимаю почему в Posgres нет норм настроек по Мастдайные сервера?
77. nvv1970 15.09.19 22:44 Сейчас в теме
(7) так что ли /locachost ?? в linux что-то нужно настраивать для этого?
"для приёма подключений открыт Unix-сокет "/tmp/.s.PGSQL.5432""
local all all trust

Как-то не горит желания 1с запускаться ((
is the server running locally and accepting connections on unix domain socket /localhost/.s.PGSQL.5432 ?
Не понимаю как поженить tmp и localhost и нужно ли. На /tmp 1с подключаться не хочет (

UPD: допер! на /tmp была ошибка уже по авторизации. Не закоментил local all all peer

UUPD: любопытно, что тест гилева на локальной видовой машине показал в КС 19 попугаев, а в тормознутом VirtualBox на linux (1c+pg) 23 что на сокете, что на IP (localhost). И все на дефолтных настройках.
84. Indgo 410 16.09.19 08:53 Сейчас в теме
(77)
UUPD: любопытно, что тест гилева на локальной видовой машине показал в КС 19 попугаев, а в тормознутом VirtualBox на linux (1c+pg) 23 что на сокете, что на IP (localhost). И все на дефолтных настройках.

Тест Гилева он только попугаев и считает.
85. mspsiall 07.01.20 02:16 Сейчас в теме
(77)Так в итоге как можно настроить Unix сокет? Подскажите пожалуйста.
86. nvv1970 07.01.20 09:11 Сейчас в теме
(85) зачем его настраивать? Пг на нем работает по дефолту.
87. sklskl 8 07.01.20 13:27 Сейчас в теме
(86)т.е. даже конфиг не нужно настраивать ? И в кластере так же пишем подключение localhost?
88. nvv1970 07.01.20 13:54 Сейчас в теме
(87) выше было:
"для приёма подключений открыт Unix-сокет "/tmp/.s.PGSQL.5432""
local all all trust

localhost - это tcp, а не сокет. Забыл уже как вбивал... то ли /tmp, то ли полностью как выше.
hba: так как выше - точно работает
107. avasl 74 08.08.20 20:26 Сейчас в теме
(85) в свойствах базы 1С в сервере СУБД указывать /tmp
82. nvv1970 16.09.19 08:48 Сейчас в теме
(7) на сколько это будет более производительным?
Вероятно разница возможна только при нагрузке на сеть?
83. Indgo 410 16.09.19 08:52 Сейчас в теме
97. cleaner_it 221 04.04.20 10:21 Сейчас в теме
(7)
подключения


Спасибо, схоронил)
9. Indgo 410 05.09.19 23:34 Сейчас в теме
Важное дополнение: В режиме TCP MSSQL проводил документы 1 час 17 минут против 8 с половиной часов Postgres SQL. Так что причины тормозов слонов под Виндой открыты
10. nomad_irk 76 06.09.19 06:06 Сейчас в теме
(9)Причины тормозов слонов под виндой - специфика работы Винды с большим количеством файлов одновременно.
Поэтому слонов нужно заводить под *NIX.
Reaper_1C; Indgo; vv2; +3 Ответить
11. Indgo 410 06.09.19 10:38 Сейчас в теме
(10)Надо накатить Ubuntu и попробовать протестить на этой же машине с такими же настройками.
13. ansh15 06.09.19 15:29 Сейчас в теме
При интенсивной работе с данными PostgreSQL в Windows могут возникать ошибки(много) "не удалось переименовать временный файл статистики из "pg_stat_tmp/global.tmp" в "pg_stat_tmp/global.stat": Permission denied ", так как Windows не может переименовывать или удалять открытые файлы и приходится ждать пока файл закроется. Из-за этого и наблюдается существенный спад производительности. В Linux такой проблемы нет.
Доступное и понятное изложение проблемы
Painted; Indgo; +2 Ответить
15. Indgo 410 06.09.19 16:44 Сейчас в теме
(13)
интенсивной работе с данными PostgreSQL в Windows могут возникать ошибки(много) "не удалось переименовать временный файл статистики из "pg_stat_tmp/global.tmp" в "pg_stat_tmp/global.stat": Permission denied ", так как Windows не может переименовывать или удалять открытые файлы и приходится ждать пока файл закроется. Из-за этого и наблюдается существенный спад производительности. В Linux такой проблемы нет.
Доступное и понятное изложение проблемы

Это в лог файлах смотреть? Есть ли опыт по устранению?
17. Indgo 410 06.09.19 17:28 Сейчас в теме
(15) В логах "C:\PostgresSQL\data\pg_log" ничего критичного не нашел. А за ролик спасибо ;-)
только типа этого
LOG:  Can't find mchar/mvarvarchar types: mchar=0 mvarchar=0
20. ansh15 07.09.19 17:54 Сейчас в теме
(15)Здесь обсуждалось, сообщения 45 и 48.
Так что, можно приобрести Postgres Prо, одну из редакций, или использовать Linux.
Собственный "опыт по устранению"(вернее, его отсутствие) - применение среды Linux и для PostgreSQL и для 1С. Если бы не жалобы на форумах и это видео, я бы и не знал о такой проблеме.
78. nvv1970 15.09.19 22:56 Сейчас в теме
(13) конечно... линукс же не умеет блокировать файлы )
переименование/удаление спокойно выполняет запущенные или изменяемые в текущий момент файлы
например удаление техжурнала сервера в момент работы ведет к очень интересному поведению)
79. Indgo 410 15.09.19 23:06 Сейчас в теме
(78)
конечно... линукс же не умеет блокировать файлы

Пингвины по умолчанию не блокируют файлы, но они умеют это делать если очень хотят.
fcntl(F_SETLK)
80. ansh15 16.09.19 01:24 Сейчас в теме
(78)
удаление техжурнала сервера в момент работы ведет к очень интересному поведению

Не знаю, не пробовал. Не было такой необходимости.
В "поведенческой модели" Linux(Unix) предполагается, что специалист, использующий ее(операционную систему), обычно ответственен за свои действия и обладает достаточным пониманием того, что делает, а не "тычет мышкой куда попало".
81. nvv1970 16.09.19 08:41 Сейчас в теме
(80) понятно, что никто специально не удаляет, тем более "мышкой не сервере" (расскажите как, если права на тж у usr1cv8). Божественный одмин божественным скриптом все всосасыл куда-то и все удалял регулярно. Обнаружили глюк с тж.
89. Painted 49 12.02.20 09:29 Сейчас в теме
(13) А можно ссылочки и на остальные материалы конференции?
90. ansh15 12.02.20 10:11 Сейчас в теме
(89) Посмотрите на YouTube канал PGConf.Russia.
91. Painted 49 12.02.20 10:23 Сейчас в теме
(90)
PGConf.Russia

Че-то не нашел там за 2017 год
92. ansh15 12.02.20 11:02 Сейчас в теме
(91) Та ссылка была найдена в обсуждении конкретно этой ошибки на Мисте, сам более детально не интересовался.
12. Indgo 410 06.09.19 11:27 Сейчас в теме
Update
Сделал настройки исключительно под этот тест в результата увеличилась скорость проведения больше чем в 2 раза
max_connections = 20
shared_buffers = 512MB
effective_cache_size = 12GB
maintenance_work_mem = 2GB
checkpoint_completion_target = 0.9
wal_buffers = 16MB
default_statistics_target = 500
random_page_cost = 1.1
work_mem = 67720kB
min_wal_size = 4GB
max_wal_size = 8GB
Показать

Проведение документов уменьшилось до 6 часов 31 минут
Данные настройки рассчитаны на работу 20 соединений исходя из параметров моего старого серверочка 16GB RAM
14. ansh15 06.09.19 15:39 Сейчас в теме
А у теста(Гилева) есть одна особенность - когда свойство "Режим управления блокировкой данных" конфигурации устанавливается в значение "Управляемый", тест в среде Linux начинает показывать более лучший результат, процентов на 15 или больше. В Windows не пробовал, нет технической возможности :)
16. Indgo 410 06.09.19 16:48 Сейчас в теме
(14)
А у теста(Гилева) есть одна особенность - когда свойство "Режим управления блокировкой данных" конфигурации устанавливается в значение "Управляемый", тест в среде Linux начинает показывать более лучший результат, процентов на 15 или больше. В Windows не пробовал, нет технической возможности :)

В Бухе 3-ей по умолчанию стоят управляемый режим блокировок данных
18. capitan 2512 07.09.19 10:37 Сейчас в теме
(14)Тест Гилева в один поток пишет справочник и регистр сведений.
Поэтому ничего удивительного.
В автоматическом режиме платформа ставит блокировки сама, хотя ставить их и не имеет смысла.
А в управляемом вы это отключаете.
С монопольным режимом еще можно поиграться
19. capitan 2512 07.09.19 10:42 Сейчас в теме
Офигенно странные результаты и офигенно странные выводы.
Никогда не поверю что настолько постгри тормознутее скуля.
С другой стороны ставить постгри на винду на больших базах - то еще извращение, постгри родная стихия это линукс.
И рекомендация конечно тоже супер.
Расскажите ее 1С-ам у них же фреш на постгри крутится.
vladimirmatancev; Дмитрий74Чел; Indgo; +3 Ответить
21. Indgo 410 08.09.19 19:19 Сейчас в теме
(19)
Расскажите ее 1С-ам у них же фреш на постгри крутится.

Может от того все висит у них ;-)
22. Indgo 410 08.09.19 22:02 Сейчас в теме
Установил версию Postgres SQL 10.8-18.1C с сайта 1c.ru. Настройки postgres выставил те что во вложении.

Итого получил результат по тесту перепроведения документов:

Время начала: 08.09.2019 20:24:04
Время окончания: 08.09.2019 21:49:28
Итого время 1 час 25 минут, что всего на пол часа больше чем MSSQL и на 7 часаов быстрее чем Postgres 11 версии
VVi3ard; vv2; +2 Ответить
23. Indgo 410 08.09.19 23:52 Сейчас в теме
Чуть позже применил эти же на стройки на Postgres Pro 11 и получил результат по тесту перепроведения документов:

Время начала: 08.09.2019 22:16:55
Время окончания: 08.09.2019 23:38:29
1 час 22 минуты при настройках во вложении (всего 3 минуты в режиме TCP ).
В итоге почти догнали MSSQL 14 ( режиме TCP MSSQL проводил документы 1 час 17 минут.)
24. capitan 2512 09.09.19 09:54 Сейчас в теме
(23)Ну вот вы сами и ответили на все вопросы.
Отсюда мораль - надо думать перед тем как шашкой махать.
На самом деле можно ничего не измерять, а просто порассуждать логически.
Пишется один и тот же объем данных +- 5%
Обе базы реляционные с одинаковой структурой таблиц.
Если обоим хватает ресурсов, то с чего бы получилась разница.
За счет того что постгри версионник, а скуль блокировочник дольше идет работа с временными таблицами.
В вашем варианте тестов они практически не используются и опять же - это происходит потому что постгри упирается в файловую систему винды.
На линуксе и быстрых дисках все будет ровнее.
vladimirmatancev; Indgo; vv2; +3 Ответить
25. Indgo 410 09.09.19 10:53 Сейчас в теме
(24)
На линуксе и быстрых дисках все будет ровнее.

На Ubuntu PGSQL все работает ровно. Заметил лишь то что соединения с временными таблицами работают ну дико медленно -
1 . если нет индекса временной таблы.
2 Если этот индекс делать то тоже медленно.
MSSQL - тоже стал версионником, только 1С с этим не всегда правильно работает.
происходит потому что постгри упирается в файловую систему винды.

Думаю слоны упираются в то что слоны разрабатывались для Linux, а пользуются спросом в РФ 1С Windows
PGSQL мотивируют это тем что:
1. 1C с его большим количеством таблиц для него агрессивная среда.
2. Виндовоз для него тоже Агрессивная среда.
Тогда возникает вопрос для кого слоны создавались?
Отсюда мораль - надо думать перед тем как шашкой махать.

Так ведь шашкой никто не машет, а вот на стандартной конфигурации PG пол России тупит. За 2 месяца перенастроил много баз PG 10 и все стало работать быстрее.
Что касается 9-ой версии PG - на ней не надо было менять настройки - скачал с сайт 1С и все работает нормально.
26. alex_sh2008 4 09.09.19 10:59 Сейчас в теме
(25)
Тогда возникает вопрос для кого слоны создавались?

Для web приложений
27. Indgo 410 09.09.19 11:14 Сейчас в теме
(26) Для Web приложений есть MySQl - которому нет равных по скорости.
До 3.22 версии были у Дельфина ограничения по объему баз.
до 5-ой версии были торможения при базах свыше 10 Гиг и тормоза с большими запросами(Union All с группировками итп).
На сегодняшний у дельфина вообще проблем нет.
Во Веб приложениям дельфин - это как Ferrari и слонам там места не оставили.
28. vv2 09.09.19 11:34 Сейчас в теме
(27) Когда он создавался, всё вами перечисленное ещё отсутствовало.
29. Indgo 410 09.09.19 11:39 Сейчас в теме
(28)
Когда он создавался, всё вами перечисленное ещё отсутствовало.

Да я еще под столом ползал и по "Диалапу" пытался выйти в сеть.
31. alex_sh2008 4 09.09.19 11:51 Сейчас в теме
(27)есть разные приложения и архитектуры приложений, где то хорошо подходит mysql а где то pqsql. К примеру многие системы документооборота используют именно pgsql.
33. Indgo 410 09.09.19 12:06 Сейчас в теме
(31)
есть разные приложения и архитектуры приложений, где то хорошо подходит mysql а где то pqsql. К примеру многие системы документооборота используют именно pgsql

Да в системах документооборота с использованием версионирования слоны, при правильной ахитектуре таблиц в несколько раз превосходят MSSQL.
35. alex_sh2008 4 09.09.19 13:04 Сейчас в теме
(33)
в несколько раз превосходят MSSQL

опять же зависит от многих факторов, в базах в несколько 10тб уже условия другие будут
Fox-trot; +1 Ответить
36. Indgo 410 09.09.19 13:15 Сейчас в теме
(35)
опять же зависит от многих факторов, в базах в несколько 10тб уже условия другие будут

Вопрос есть ли такие рабочие базы 1С? Максимум я работал с 1 ТБ базой ERP на MSSQL 14.
Перевести ее на Postgree для теста не могу, так как при выгрузке базы в *.dt файл вываливается с ошибкой.
Так что будет до конца дней жить в майрософте.
38. alex_sh2008 4 09.09.19 13:30 Сейчас в теме
(36)А ни нет смысла переводить, для ERP pg не подойдет, из за своей специфики pg очень хорошо обслуживает множество коротких транзакций, а вот большие и с большими объемами данных транзакции для него тяжеловаты.
39. Indgo 410 09.09.19 13:33 Сейчас в теме
(38)
А ни нет смысла переводить, для ERP pg не подойдет, из за своей специфики pg очень хорошо обслуживает множество коротких транзакций, а вот большие и с большими объемами данных транзакции для него тяжеловаты.

Читал на форуме "Слоноводов" - то что в 11 Ent данную проблему решили и мол даже получили выигрыш над Оракулом и Мелкомягкими.
Проверить пока что не могу. Пишу конвертацию по полной выгрузке базы 1ТБ базы. Пока что не получилось получить 100% аналог.
40. alex_sh2008 4 09.09.19 13:39 Сейчас в теме
(39)Сильно я сомневаюсь в этом. Получается они за такой короткий срок переписали все ядро сервера.
41. Indgo 410 09.09.19 13:41 Сейчас в теме
(40)
Сильно я сомневаюсь в этом. Получается они за такой короткий срок переписали все ядро сервера.

вот одна из картинок.
В одиннадцатой версии системы ускорили формирование индексов, а также внедрили покрывающие индексы и улучшили индексный поиск по JSON. Также оптимизировали механизмы одновременного исполнения запросов и секционирования таблиц. Повысилось удобство создания SQL-запросов, оконные функции теперь полностью покрывают стандарт языка SQL:2011. Транзакциями в процедурных языках, которые поддерживает решение, можно управлять вручную.

Postgres Pro Enterprise 11 получил расширенную поддержку управления доступом пользователей, в частности, на уровне отдельных записей. Интегрировали в решение и ключевые криптографические функции семейства SHA2, призванные вывести на новый уровень надежность хранения хешей паролей. В новой версии поддерживаются автономные транзакции и есть нативный планировщик заданий.
42. alex_sh2008 4 09.09.19 13:43 Сейчас в теме
(41)Ну картинки, это реклама, и может ничего общего не иметь с реальностью
43. Indgo 410 09.09.19 13:44 Сейчас в теме
(42)
Ну картинки, это реклама, и может ничего общего не иметь с реальностью

А у вас имеются опыт по работе с большими данными в PG 11 Pro Ent?

Вот еще немного цитат из рекламных буклетов:
В пределе СУБД Postgres Pro Enterprise 11 способна выдержать нагрузку до 10 000 одновременно работающих пользователей и 1 млн транзакций в секунду при размере базы данных до 150 ТБ, при этом максимальная задержка при восстановлении работоспособности кластера составит менее 1 секунды (данные в зависимости от используемого серверного оборудования).
44. alex_sh2008 4 09.09.19 13:50 Сейчас в теме
(43)Я не использую пг, только тестирую и много что меня не устраивает. В особенности поддержка нескольких баз данных в одном кластере, сильная зависимость настроек сервера от структуры базы.
94. buganov 203 13.02.20 16:29 Сейчас в теме
(36) Есть. Магнит, Деловые линии, билайн
30. vv2 09.09.19 11:40 Сейчас в теме
(25) Вроде как Postgresql создавался как постреляционная СУБД, с наследованием таблиц и прочим модным и нужным кому-то функционалом.
32. Indgo 410 09.09.19 12:04 Сейчас в теме
(30)
Вроде как Postgresql создавался как постреляционная СУБД, с наследованием таблиц и прочим модным и нужным кому-то функционалом.

Да данный функционал, очень хорошо приживается к 1С. К Вебу больше нужна скорость отдачи данных, никто не будет ждать пока сайт открывается 20 и более секунд.
34. capitan 2512 09.09.19 12:44 Сейчас в теме
(32)реляционная СУБД она и в африке реляционная СУБД
Единственно что она может быть критична к конфигурации сервера потому что все тащит в память как скуль или не критична как мускуль
В принципе все это регулируется настройками, потому что каждый создатель СУБД хочет и старается чтобы ее везде использовали
например для постгри есть сайт леонард ин уа и там как раз можно взять нормальные настройки под любой вариант использования.
Поэтому рассказывать что какая то СУБД из первой пятерки в разы превосходит какую то из первой же пятерки - это просто кривые настройки 99%
Есть профессиональное тестирование TPC и у него есть сайт на котором все СУБД гордятся собой там можно все это увидеть
37. Indgo 410 09.09.19 13:24 Сейчас в теме
(34)
Есть профессиональное тестирование TPC и у него есть сайт на котором все СУБД гордятся собой там можно все это увидеть

Как правило все проф тесты - есть маркетинг. Никаких реальных данных там нет.
Сам по себе данный топик был после того как на сайте Postgres(на Инфостарте есть перевод статьи) увидел рекламу в которой обещали двукратный прирост скорости по сравнению с 10-ой версии. После 2 недель различных изнурительных тестов с разными настройками 10 и 11 версии - никакого роста не увидел, сплошь маркетинг для недалеких домохозяек.
Видать надо было как то обосновать траты на покупку Postgres SQL 11 Ent. При чем я скажу стоимость там не детская и даже выше чем у MSSQL, даже с учетом цен на операционку Windows Server 20**
Из чего складываются цены на Postgres SQL 11 Ent не понятно.
При чем я так понимаю в связи с использованием Postgres SQL - возникают риски что на какой нибудь 19 платформе 1С КОРП, надо будет купить лицензии Postgres Enterprise - не то там какие нибудь ядра перестанут функционировать.
А пока то продолжаю пользовать 10-у версию слона с сайта users.v8 доп настройками под 1С.
45. capitan 2512 09.09.19 13:55 Сейчас в теме
(37)Не все в этом мире маркетинг друг мой.
Иногда есть и нормальные исследования, но нигилистам этого не понять

И маленько уже подзадолбали эти рассказы про купить лицензии Postgres Enterprise
Уже стерся отвечать - для 1С постгри бесплатный
Точка
Если интересно - здесь же уже раз 100 отвечал можно погуглить
46. Indgo 410 09.09.19 14:05 Сейчас в теме
(45)
Не все в этом мире маркетинг друг мой.

Полностью согласен - еще бывает пропаганда и агитация.
Если есть ссылки на норм проф исследования pg на 1С то пожалуйста выложите.
Уже стерся отвечать - для 1С постгри бесплатный

Все же чутка подприкупили лицензий pg 11 pro ent для одного Муниципалитета(централиз бухгалтерия), чтобы разбавить Заморские продукты с "Аля Российскими". Есть требование к гос. закупкам - процентное соотношение Российское-Заморское ПО - для гос компаний.
Массовую закупку слонов - не планируем.

В обосновании на покупку так и написали:
В пределе СУБД Postgres Pro Enterprise 11 способна выдержать нагрузку до 10 000 одновременно работающих пользователей и 1 млн транзакций в секунду при размере базы данных до 150 ТБ, при этом максимальная задержка при восстановлении работоспособности кластера составит менее 1 секунды (данные в зависимости от используемого серверного оборудования).
Спасибо маркетологам за счастливое детство.
48. Indgo 410 09.09.19 14:40 Сейчас в теме
(34)
Поэтому рассказывать что какая то СУБД из первой пятерки в разы превосходит какую то из первой же пятерки - это просто кривые настройки 99%

Да согласен. Под типовые решения от 1С БУХ 3.0, УТ 11, ЗУП 3.1
небходимы особые настройки
Как мимнимум
autovacuum = on
online_analyze.threshold = 50
online_analyze.scale_factor = 0.1
online_analyze.enable = on
online_analyze.verbose = off
online_analyze.local_tracking = on
online_analyze.min_interval = 10000 

online_analyze.table_type = 'temporary' - спорный иногда необходим online_analyze.table_type = 'all' (Если база маленькая)

Эта настройка под Linux как турбина для Лады калины при выполнении больших запросов, особенно заметно на динамических списках.
shared_preload_libraries = 'online_analyze, plantuner'

По моим скромным наблюдениям - под Виндовозом данный параметр - эффекта не дает

random_page_cost = 1.1
для SSD дает прирост скорости. Для сверхбыстрых накопителей типа NVME - можно вставить 0.1-0.5. Но я выбрал 0.8-1.1
seq_page_cost = 0.1
Так же настройка под SSD

fsync = off
Дает прирост на запись 1-10%. Можно ставить под VMware либо с RAID массивами с батарейкой. Если не уверены то лучше оставить on, чтобы не потерять данные

row_security = off
Дает очевидный прирост по скорости. На больших базах 1 ТБ и выше - чуть ли не в 10 раз
life-wayfarer; +1 Ответить
52. ansh15 10.09.19 11:44 Сейчас в теме
(48)
либо с RAID массивами с батарейкой.

На хорошем аппаратном RAID контроллере с кэшем в 1-4 ГБ и модулем защиты кэша
fsync = on и full_page_writes=on почти не приводят уменьшению производительности. Оно наблюдается, в основном, на обычных SATA HDD. Хотя, и не так сильно как на более ранних версиях PostgreSQL лет 7-8 назад. То есть, выключить можно, но смысла нет.
53. Indgo 410 10.09.19 13:58 Сейчас в теме
(52)
На хорошем аппаратном RAID контроллере с кэшем в 1-4 ГБ и модулем защиты кэша
fsync = on и full_page_writes=on почти не приводят уменьшению производительности. Оно наблюдается, в основном, на обычных SATA HDD. Хотя, и не так сильно как на более ранних версиях PostgreSQL лет 7-8 назад. То есть, выключить можно, но смысла нет.

На одной большой базе:
1 ERP база почти 2 TB
2. Контроллер HPE P440/4G Smart Array (чтение/запись с суперконденсатором)
3. SSD 480 Gb Intel DC S4600 - 8 шт
4. Vmware ESXi
5 Wind Server 2018
Кеш не справляется. Видно это по счетчикам: %WAIT и %VMWAIT утилиты esxtop.
Если вешаю базу на отдельный 4 Tb SSD диск без Хранилки на sata порт без Raid контроллера (SSD 3.84 Tb SATA D3-S4610 ) - то скорость выпростает почти в 1.5 раза.
Правда база на MSSQL.
Похоже пора хранилку покупать с кешем 10gb и выше
54. ansh15 10.09.19 15:53 Сейчас в теме
(53)
SSD 480 Gb Intel DC S4600

SSD 400 - 1200 Gb SAS 12Gb/s вполне подойдут для такой высоконагруженной системы, они уже и не очень дорого стоят.

Скорость чтения До 2150 Мб/сек
Скорость записи До 2120 Мб/сек
IOmeter, скорость записи 4Кб файлов, глубина очереди=32 320000 IOPS
Это заявляется для Western Digital Ultrastar DC SS530 800 Гб
на sata порт без Raid контроллера

При интенсивном чтении/записи/перезаписи какова нагрузка на CPU? Процентов 90 или меньше?
56. Indgo 410 10.09.19 18:50 Сейчас в теме
55. alex_sh2008 4 10.09.19 16:12 Сейчас в теме
(53)
Кеш не справляется. Видно это по счетчикам: %WAIT и %VMWAIT утилиты esxtop.

причем тут дисковый массив и эти счетчики, эти счетчики показывают сколько вообще ждет машина ресурсов. У вас может балансировка кривая или банально не хватка памяти на хосте, загонят в свопинг машины.
57. Indgo 410 10.09.19 18:53 Сейчас в теме
(55)
причем тут дисковый массив и эти счетчики, эти счетчики показывают сколько вообще ждет машина ресурсов. У вас может балансировка кривая или банально не хватка памяти на хосте, загонят в свопинг машины.

Сначало делали 2 виртуалки + Сервер 1С и Скуль.
Сейчас одна виртуалка. Балансировать нечего. Смысл в том что на одном ssd все быстре фурышчит.
Вывод сделал что рейд контролер слабый. Счетчиков-статистики использования памяти Raid контроллера не нашел
Памяти 512gb. Я так краем уха слышал что SSD плохо работают с RAID контроллерами.
Говорят под них надо покупать специализированные SSD полки
58. nomad_irk 76 10.09.19 19:09 Сейчас в теме
(57)ну как бэ.....латентность массива будет ВСЕГДА выше латентности одного диска. Т.к. у вас нагрузка маленькая, то на одном диске получается шустрее. Массив повышает параллелизм работы, а не общую скорость.
59. Indgo 410 10.09.19 19:17 Сейчас в теме
(58)тут согласен, тем не менее большинство рейдов создавались под слабые сата и сам диски. Время на месте не стоит, а нормальные полки стоят как луноход Nasa
63. nomad_irk 76 10.09.19 20:04 Сейчас в теме
(59)Так с помощью этих "полок" вы деньги зарабатываете как бэ :)
60. alex_sh2008 4 10.09.19 19:19 Сейчас в теме
(57) нормально они работают если поддерживают, для vmware нужны драйвера на этот контроллер, как правило производители делают такие драйвера, если вообще vmware поддерживает этот контроллер. 1 диск будет конечно лучше, но судя по параметрам железки у вас криво настроен sql сервер.
61. Indgo 410 10.09.19 19:35 Сейчас в теме
(60)поддерживает ESXi почти серверное все оборудование Hp. А судя по каким параметрам вы делаете выводы?
62. alex_sh2008 4 10.09.19 20:00 Сейчас в теме
(61)8 дисковый массив, 512Гб памяти, и при этом винда или vmware свопит на диск. Значит есть проблемы с конфигурацией одна из которых это win 2018, поставьте убунту или цент ос, их pg и vmware точно поддерживает.
65. Indgo 410 10.09.19 20:26 Сейчас в теме
(62)думал об этом, только базу не могу выгрузить в dt—шник. Два часа что то грузит и вылетает. Свопа как такового нету особо. Частого Page fault—а нету. Проблема в очередях на диск. Как там буду скрины скину
67. alex_sh2008 4 10.09.19 20:33 Сейчас в теме
(65)а зачем выгружать в дт, просто за архивируйте кластер и восстановите его на никсе с исправлением прав, главное что бы версии движка совпадали
68.