Мне всегда было интересно (и не только мне) есть ли смысл запуска 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

Комментарии (105)


  1. Naf2000
    20.10.2022 16:34

    Лично по мне так огромнейшее время тратится на передачу контекстов форм с клиента на сервер и обратно


  1. sukharichev
    20.10.2022 16:36

    Самого давно интересует этот вопрос, спасибо за статью. Но я не вижу очень существенного параметра (проглядел?) - размер базы и количество документов. Судя по скоростям, база какая-то микроскопическая. Вы уверены, что ваши данные не целиком влезали в кэш дисков и вы не измерили именно его?


    1. schvii Автор
      20.10.2022 17:25
      +1

      Размер базы - 6,5 Гб в файловом варианте, объем кэша LPDDR4 970EVO 512 мб, так что точно нет. Что касается по количеству документов, то 76440 за тестируемый интервал (6 лет)


      1. edo1h
        21.10.2022 01:07
        +1

        объем кэша LPDDR4 970EVO 512 мб

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


        BTW, кстати, не может оказаться, что снижение производительности в случае рамдиска было связано с уменьшением объёма доступной памяти?


        76440 за тестируемый интервал (6 лет)

        явно не хватает тестирования с серверным накопителем.
        в синхронной записи (а СУБД на каждую транзакцию делает как минимум одну синхронную запись в wal) 970 evo показывает всего ≈500 iops
        https://docs.google.com/spreadsheets/d/1E9-eXjzsKboiCCX-0u0r5fAjjufLKayaut_FOPxYZjc/edit?hl=en#gid=0


        не понимаю тяги к использованию десктопных накопителей под серверные задачи.


        1. sukharichev
          21.10.2022 10:26

          А я понимаю, потому что бюджет. Для подавляющего числа средних компаний с базами размером до 20 Гб никакого смысла в серверных накопителях нет. Да, у них выше надежность и скорость, но если у вас месяц закрывается за 20 минут и на обычных, то скорость серверных вам не нужна, а в смысле надежности проще за стоимость серверного докупить два таких же бытовых HDD на 8 или уже даже 16 Тб, и бэкапить туда базу и журнал почаще, да и все.
          Мы себе такого позволить не можем у нас масштабы побольше, поэтому живем на серверных U.2 Oculink но в этом случае стоимость всей платформы (мат. плата, кабели, диски) возрастает настолько, что меньшему бизнесу такие затраты просто не потянуть, он может на десктопных ПК собрать на ту же цену кластер из 3 машин с SATA рейдами в каждой, и их скорости дадут возможность бэкапится каждые 5 минут.


          1. edo1h
            21.10.2022 11:05

            смысле надежности проще за стоимость серверного докупить два таких же бытовых HDD на 8 или уже даже 16 Тб, и бэкапить туда базу и журнал почаще, да и все

            вы как-то не так смотрите цены. открываю московский магазин, pm9a3 на 960 гигабайт стоит 17 тысяч рублей, это даже не в два раза дороже, чем обсуждаемый в этой статье 970 evo той же ёмкости.


            U.2 Oculink но в этом случае стоимость всей платформы (мат. плата, кабели, диски) возрастает настолько

            во-первых, серверные nvme бывают и в m.2 формате (именно о таком я и писал выше).
            во-вторых, адаптер для подключения u.2 в обычный слот pcie стоит на али меньше тысячи рублей, в розничных магазинах подроже, но всё равно не такие большие деньги.


            он может на десктопных ПК собрать на ту же цену кластер из 3 машин с SATA рейдами в каждой

            не смешно. я давно уже решил, что следующий домашний компьютер будет на eсс памяти, а вы предлагаете собирать «кластер» на десктопном железе и, очевидно, не-ecc памяти.
            самое неприятное в не-ecc-памяти в том, что о проблемах с памятью вы не узнаете пока не запустите тест, то этого будет «ой, что-то программа вылетела», «ой, что-то база побилась»


            1. sukharichev
              21.10.2022 15:37

              1. "вы как-то не так смотрите цены" - нет вы :)

              970 Evo можно установить и в ПК и в любой сервер, u.2 только в сервер с соответствующей платформой. Да, в серверной платформе может быть разъем m.2 и у меня она такая и есть, но он там один, массив сделать нельзя, бэкапится надо очень часто, а бэкап даже журнала плохо влияет на повседневную работу , если сервер уже и так загружен. Мат. плата с двумя и более m.2 или более чем двумя oculink стоит существенно дороже. Кабель oculink у нормального продавца это +3-5 т. р на каждый диск, а SATA-кабель или m.2 разъем условно-бесплатные, они в комплекте с мат. платой.

              2.  "на али меньше тысячи " - в сервер? Адаптер с Али? Спасибо, но я так делать не буду. В моем представлении любой приличный бытовой сата-диск надежнее адаптера с Али.

              3. Т. е. вот память обязательно с ЕЦЦ, а адаптеры для хранилища - с Али. Это точно разумный баланс по надежности? У нас есть несколько ПК для тестирования баз и быстрых перепроведений с 64 Гб памяти без ECC и за годы их жизни, прогнав через эту память сотни терабайт данных мы не столкнулись ни с какими "битыми базами".
              Вы как-то неправильно представляете себе работу памяти с ECC, она защищает только от флип-бита в случае внешнего воздействия, а от повреждения микросхем - никак нет. Может быть, можно настроить получение данных об ошибках памяти и температурах с сенсора, снимать их с ipmi, отдавать в мониторинг и тогда, действительно, узнать, но я нигде такого не видел и не слышал. А в обычно, ECC при повреждении ведет себя так же, как и non-ECC - ошибки и вылеты программ, проблемы с компиляцией. Линус Торвальдс не даст соврать:https://www.zdnet.com/article/even-linus-torvalds-sometimes-has-pc-problems/


              1. khajiit
                21.10.2022 16:11

                Мат. плата с двумя и более m.2

                … под Ryzen — явление давно уже рядовое


                Линус Торвальдс не даст соврать

                Это уже разбирали на хабре, и нет — память там была non-ECC


                1. DaemonGloom
                  21.10.2022 20:23

                  … под Ryzen — явление давно уже рядовое

                  Серверные материнки с парой М.2 или более — не особо рядовое. Хоть с Ryzen, хоть с Epic.


                  1. khajiit
                    22.10.2022 00:52
                    +1

                    К слову, а драйвера ставите на буковки или на железо? Вопрос риторический.


                    Скажем, в том же dns-shop материнок на AM4 всего 63, с двумя разъемами M.2 — 37, и еще с десяток на 3 или 4 M.2.
                    У AsrockRack или 2 M.2 или M.2 + Oculink (больше касается мелких типоразмеров).
                    Не говоря уже, что для серверных применений, если уж заострять на них внимание, более актуален U.2 или разные SFF, а PCI-E, как справедливо заметили, прекрасно в эти M.2/U.2 конвертится.


              1. edo1h
                21.10.2022 16:55
                +1

                970 Evo можно установить и в ПК и в любой сервер

                честно говоря, не понял к чему вы это написали.
                970 evo из статьи формата m.2, pm9a3, о котором я писал выше, тоже есть в том числе и в формате m.2


                Т. е. вот память обязательно с ЕЦЦ, а адаптеры для хранилища — с Али. Это точно разумный баланс по надежности?

                да. потому что адаптер в части pcie — тупой механический переходник.
                в серверах у меня таких нет, но дома используется.


                и если вам так претят китайские адаптеры, то есть вполне себе фирменные ретаймеры и свитчи, например в одном находящихся под моим присмотром серверов часть линий к бэкплейну подключена через свитч от intel. стоил не тысячу, но тоже каких-то не заоблачных денег.
                (ретаймеры и свитчи нужны из-за того, что между разъёмом на материнской плате и накопителем/бэкплейном есть ещё полуметровый кабель, который вносит искажения в сигнал)


                Вы как-то неправильно представляете себе работу памяти с ECC, она защищает только от флип-бита в случае внешнего воздействия, а от повреждения микросхем — никак нет

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


                если вы верите, что сбоев памяти не бывает, значит у вас пока просто мало опыта.


                Может быть, можно настроить получение данных об ошибках памяти и температурах с сенсора, снимать их с ipmi, отдавать в мониторинг и тогда, действительно, узнать, но я нигде такого не видел и не слышал

                очень грустно за вас, это совсем не rocket science.
                кстати, снимать ошибки ecc можно не только из ipmi, в linux, например, edac-util покажет ошибки (да и в dmesg будет сообщение); в случае аренды сервера у хостера бывает полезно.


        1. schvii Автор
          21.10.2022 10:34

          1) Ставил размер диска в интервале от 12 Гб до 21 Гб - разницы не было

          2) Как только появится в наличии серверный ssd - разумеется добавлю в статью. Постараюсь заказать в течение месяца


          1. edo1h
            21.10.2022 11:10

            1) Ставил размер диска в интервале от 12 Гб до 21 Гб — разницы не было

            правильнее ИМХО повторить тест на базой на ssd с включенным (но не используемым) рамдиском.


            1. schvii Автор
              21.10.2022 13:47

              я так и делал - никак не влияет


              1. edo1h
                21.10.2022 14:34

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


  1. nikweter
    20.10.2022 16:36
    +1

    Так MS SQL всё равно сейчас не купить. Как можно сравнивать бесплатное с тем чего вовсе нет?


    1. sukharichev
      20.10.2022 16:52
      +1

      Есть доступный для бесплатной загрузки MS SQL Server 2019 for developers, ничем не отличается от полнофункциональной версии. И у многих уже купленные лицензии все еще есть, так что вопрос вполне актуальный. Тем более в свете необходимости планировать переход с MS SQL на Postgres - чтобы понимать, сколько именно производительности будет потеряно. Методика проверки в статье может быть неверной, но сама проблема актуальна. Тем более, что по моей практике, 1С сколько мощностей не дай, она все равно медленная. Если понимаешь, что станет еще медленнее, переход стоит отложить до выяснения подробностей.


      1. nikweter
        20.10.2022 17:34

        Доступный - не значит лицензионный. Использовать в работе то нельзя.


        1. Ivan22
          20.10.2022 17:53
          +1

          нельзя или "нельзя" ?


          1. nikweter
            20.10.2022 18:00

            Так ведь уголовка. До 6 лет. Без всяких кавычек.


    1. schvii Автор
      20.10.2022 17:27
      +1

      "Сейчас" означает что не навсегда, а во вторых этот форум же читают не только в РФ, но и в других странах. Ну и плюс, разве не интересно сравнить условно бесплатный продукт (не забываем что покупку лицензии на сервер 1С никто не отменял) с платным?


      1. nikweter
        20.10.2022 17:33
        +1

        Платный - значит можно купить за деньги. А MS SQL купить нельзя. Я только к этому придирался, не к самому сравнению.


    1. sden77
      20.10.2022 19:31
      +3

      Но ведь есть страны кроме РФ, где ms sql вполне актуален. Тем более сейчас это habr.com, что намекает на интернациональную аудиторию


      1. nikweter
        21.10.2022 03:30
        -1

        А 1с в этих странах актуален?


        1. CTDEVIce
          21.10.2022 05:24

          Это почти все страны бывшего СССР, как бы много так то.


        1. sden77
          21.10.2022 07:10

          1C актуален на бОльшей части бывшего СССР


          1. Ivan22
            21.10.2022 13:44

            при этом Украина его сейчас понятно массово заменяет

            Беларусь под теми же санкциями (если еще нет - то будет)

            Узбеки с Таджиками - ставлю свою тюбетейку, паленый mssql юзать не постесняются.

            Остаются степи Казахстана


            1. sden77
              22.10.2022 11:45

              даже по вашим словам получается не так и мало, плюс еще есть Армения и Грузия. Насчет палёный/не палёный mssql в Узбекистане и Таджикистане - а какая разница, даже если так? Тут обсуждаются технические аспекты, а не юридические.


  1. iliabvf
    20.10.2022 20:28
    +2

    Как вообще можно рассматривать файловый режим как рабочий. Это же какой-то франкенштейн из 90х годов, готовый упасть в любой момент


    1. ixsphin
      20.10.2022 22:43

      Например из-за стоимости лицензии на сервер 1С, а x64 версия сервера ещё дороже. А при использовании в связке с веб-сервером становится возможно работать на HDD с файловой


    1. Handogin
      21.10.2022 01:41
      +2

      А что с файловым не так?

      Вы предлагаете на компьютере каждого бухгалтера поднимать sql сервер?

      Файловый это стабильный быстрый и удобный вариант.

      А клиент-серверные решения применяют для большого количества пользователей.

      Большая часть пользователей 1с работает как раз на файловом варианте.


    1. mlnw
      21.10.2022 01:41
      +1

      Он в 100500 раз быстрее и уместнее, когда ты, скажем, бух на фрилансе, ведущий кучу баз всяких ИП со своего ноута. Скули разворачивать для таких целей нет необходимости. Достаточно решить вопрос с бэкапами и в принципе можно работать.


    1. jstbot
      21.10.2022 09:36
      +1

      если база не большая у не большой конторы то смысл им покупать 1с сервер и городить это всё с БД на 1-2 пользователей? а таких случаев много


  1. ixsphin
    20.10.2022 22:37
    +2

    А чем создавали RAMDisk? У таких программ часто разительно отличаются результаты в синтетических бенчмарках. Вплоть до опции принудительной эмуляции жёсткого диска


    1. schvii Автор
      21.10.2022 01:34

      Softperfect RAM Disk


  1. myhambr
    20.10.2022 23:43

    Не указано потребление памяти в каждом случае, объём занимаемых данных на диске во всех 3х случаях хранения (файлы/MS/PG). Не приведён конфиг для Postgres. Может у Postgres по умолчанию выставлен маленький кэш, а у MSSQL большой.

    По мотивам https://infostart.ru/1c/articles/962876/ - OnlineAnalyze.enable включен и Postgres поддерживает этот патч ?


    1. schvii Автор
      21.10.2022 01:03

      Спасибо за вопрос, я ждал его. В скором времени я хочу провести второй тест. Все настройки в данном тестировании у меня по дефолту. Мне нужны были "стандартные" результаты при установке по умолчанию. Теперь, когда у нас есть информация при дефолтных данных, я хочу сравнить какие можно получить результаты если постараться оптимизировать настройки MS SQL и POSTGRES SQL.


  1. BigKote
    21.10.2022 01:05
    +1

    Можете в статье указать какие параметры были у postgres? Интересно можно ли в вашем случае подтянуть pg по скорости. Есть ещё платный postgres pro, интересно его с версией от 1с посмотреть.


    1. schvii Автор
      21.10.2022 01:06

      Уже ответил выше:

      Все настройки в данном тестировании у меня по дефолту. Мне нужны были "стандартные" результаты при установке по умолчанию. Теперь, когда у нас есть информация при дефолтных данных, я хочу сравнить какие можно получить результаты если постараться оптимизировать настройки MS SQL и POSTGRES SQL .

      Что касается postgres pro - не обещаю но попробую добавить его если будет возможность


      1. levkib
        21.10.2022 08:49
        +1

        Установки по дефолту вещь своеобразная. Например сборка postgresql от 1с настроена на параметры по умолчанию которые тащатся в postgresql с незапамятных времен (а это примерно двух ядерный компьютер с 1ГБ ОЗУ и жестким диском, а например сборка от ПостгресПРО выполняет после установки скрипт который пытается хоть немного подстроить параметры СУБД под текущие параметры системы где устанавливается. MS SQL при работе часть параметров динамически подстраивает под оборудование. Так что сравнение производительности получается не очень корректное.


  1. nbkgroup
    21.10.2022 01:11

    Правильно настроеный Postgres на ZFS вообще не уступает MS SQL. Главное бутылочное горло 1C это скорость одного потока процессора.


    1. schvii Автор
      21.10.2022 01:30

      Возможно, я попробую поэкспериментировать с этой файловой системой после второго этапа тестирования. Но есть один нюанс - серверов под LINUX у меня нет в обеспечении. Как вариант можно заставить Windows понимать ZFS. Хотя это было бы интересное сравнение... В общем, пока могу сказать что подумаю на счет тестов на этой фс


      1. badmilkman
        21.10.2022 08:11

        Попробуй конечно, но у меня в 2016 году "правильно настроенный" закрывал месяц в течении недели. Стоковый MS SQL - 15 минут. (База около 80GB)
        Возможно постгрес и вырос с тех пор, но насчет я не ZFS не уверен.


        1. levkib
          21.10.2022 08:54

          В 16 году с оптимизацией связки 1С и postgresql было всё печально. На данный момент сменилось слишком много версий 1С и postgresql. Тот опыт уже не актуален.


        1. nikweter
          21.10.2022 10:09

          Ничего не изменилось, 100Гб база закрывает месяц 3 дня. На МС - 16 часов.


          1. ptr128
            21.10.2022 10:12

            Подозрительно большая разница. Складывается ощущение, что на MS SQL все запросы живут с MAXDOP 0, а на PostgreSQL параллелизация запросов сильно ограничена настройками.


            1. nikweter
              21.10.2022 10:25

              Да, МС тестировал в дефолте - себестоимость считается одним запросом на много часов, в МС распараллеливается на все ядра. В postgres запрос выполняется на одном ядре. Я пробовал распараллелить, но не смог. Там запрос вида INSERT INTO pg_temp.tt817 ...

              Я на инфостате нашел статью про параллелизм и сравнение МС и посгрес. Там указано что в стандартной postgres работа с pg_temp не параллелится. PGpro вроде говорят, что внедрили у себя параллельную работу с временными таблицами, но я не проверял. У них вроде нет демо доступа, надо покупать.


              1. myhambr
                21.10.2022 12:25

                Читали https://infostart.ru/1c/articles/962876/ про OnlineAnalyze.enable для включения индексов во временных таблицах ? В 2016 его не было.
                Ну и по выводом это статьи (2019 год), на Linux в 1.3-1.5 раза быстрее.


                1. nikweter
                  21.10.2022 12:33

                  В последних версиях платформы analyze для временных таблиц выполняется и без этого плагина. Так что он не нужен больше. Это с 8.3.18 или 8.3.19, точно не помню.

                  Ну и написано много где много чего. По факту на Linux в 2-3 раза медленнее.


                  1. levkib
                    21.10.2022 15:10

                    Видимо у вас сильно специфичные запросы. На не сильно модифицированных конфигурациях УПП и Торговли для свежих релизов Постгрес и 1С большой разницы с MS SQL не замченео. Базы гигов по 50-60. Постгрес используется от ПостгресПРО


                    1. nikweter
                      21.10.2022 15:52

                      Прогеры клянутся что в себестоимость не лазили. Так что типовая ЕРП.


                      1. levkib
                        21.10.2022 20:22

                        Если ERP, то поверю, от ее исходников даже наши бывалые 1С программисты бывают в ужасе.


              1. ptr128
                21.10.2022 21:31

                INSERT INTO в ванильном PostgreSQL не параллелится. Но есть обходные пути.

                Во-первых, можно сделать CREATE TEMP TABLE ... AS ... , что замечательно параллелится в ванильном PostgreSQL. Ну а результат потом перелить куда надо, если надо. Все равно он будет, преимущественно в оперативке сервера.

                Во-вторых, можно писать в одну UNLOGGED таблицу из нескольких соединений, породив их, например, через dblink(). Этакий ручной параллелизим.

                В-третьих, есть PostgresPro с патчем, который это позволяет, что Вы уже сами упомянули.

                Ну и в-четвертых, патч для ванильного PostgreSQL для параллельного INSERT INTO мурыжится уже два года. Применять его самому не советую, но может дождемся еще его стабилизации и включения в mainstreem.


                1. nikweter
                  22.10.2022 08:06

                  На самописе всегда можно сделать чтобы не тормозило. Но в 1С своя атмосфера. Никто не будет переписывать расчёт себестоимости из-за того что он медленно работает в постгре, проще взять мсскуль.


              1. Bessome
                23.10.2022 08:12

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


        1. Bessome
          23.10.2022 08:10

          В 14 релизе postgres, по заявлениям производителя, добавлен алгоритм, аналогичный существующему в MySQL, который проталкивает наложение отборов ниже в структуре плана запроса .

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


          1. edo1h
            23.10.2022 11:14

            который проталкивает наложение отборов ниже в структуре плана запроса

            Хм, а что именно вы имеете в виду?
            Сейчас перепроверил

            select * from
                (select a.field1, b.field2 from a join b on …) с
                where field1=xxx
            

            условие field1=xxx было применено, как и ожидалось, до join

            в MySQL

            Это не опечатка?


            1. Bessome
              23.10.2022 11:20

              Действительно опечатка. Читать MSSQL


          1. Bessome
            23.10.2022 12:09

            https://habr.com/ru/company/postgrespro/blog/682976/

            Вот такие изменения. Есть ключевые именно для 1С


    1. levkib
      21.10.2022 08:56

      А можно хоть наметки как правильно приготовить postgres на ZFS? А то я при экспериментах не получил выигрыша ZFS от других ФС для postgres.


      1. nbkgroup
        21.10.2022 10:55
        +1

        Вкратце — нужно правильно распределить ОЗУ между ZFS ARC, postgres и остальной системой, включить в zfs как минимум для фс с postgres сжатие lz4 (zstd не дает выигрыша в производительности), а у postgres настроить effective_io_concurrency и отключить synchronous_commit и full_page_writes, так как целостностью данных управляет zfs. Ну и для полноты картины убедиться, что процессор работает в режиме максимальной производительности, а не энергосбережения.

        Есть ещё ряд мелких настроек, дающих небольшой прирост производительности, но ни включение huge pages, ни отключение защиты от аппаратных уязвимостей процессоров mitigations = off не показали у меня увеличение производительности выше погрешности измерения.

        Измерял тестом Гилёва, попугаи на не уступают конфигурациям с MS SQL.

        Реальная производительность зависит от многих факторов, в т. ч. от версии платформы и конфигурации. С одной стороны, обновление платформы ухудшает показатели тестов на том же сервере. С другой — использование современных конфигураций может увеличить скорость работы в разы.


        1. levkib
          21.10.2022 15:11

          Спасибо Вам добрый человек, буду пробовать рыть в указанном направлении.


  1. sden77
    21.10.2022 07:29

    Как я понимаю, выбор сводится к двум вариантам ssd, причем, если уже есть sata диск, то менять его на nvme практически бессмысленно.


    1. schvii Автор
      21.10.2022 10:13

      Если речь идёт про уже имеющийся в наличии SATA SSD, то да, смысла особого нет при использовании СУБД MS SQL или POSTGRES, а если речь идёт про приобретение новых дисков, то разумеется, есть существенный смысл приобрести NVME


    1. sukharichev
      21.10.2022 10:17

      Нет, не так. Я не могу подготовить целую статью, времени нет и сил нет, но я проводил такие тесты:
      База на MSSQL + Raid10 x4 SATA + журнал на другом Raid10 x4 SATA
      и
      База MSSQL + Raid1 x2 NVME U.2 Oculink + журнал на одиночном NVME 2 Tb PCI-e.
      NVME в такой конфигурации существенно быстрее. База 70 Гб, Конфигурация Бухгалтерия вер. 3, платформа 1.8.3.18 Количество документов не помню, в самом ненагруженном месяце примерно 27000, в квартал около 160000

      Полное "Тестирование и исправление" базы со всеми галками на SATA - 22 часа, на NVME - 16. Закрытие месяца Sata 19 часов, NVME 9,9
      По соотношению цена\скорость в тот момент выигрывал SATA потому что был гораздо дешевле, но для бизнеса была важнее скорость, потому что бухгалтерии работать надо, а не ждать, пока месяц закроется. Особенно когда база такая не одна.


      1. nikweter
        21.10.2022 10:37

        Скажите, а при цене MSSQL вы все еще смотрите на цену дисков? Они же теряются где-то на фоне.


        1. sukharichev
          21.10.2022 11:18

          1. Мы смотрим

          2. Нет, не теряются, посмотрите цены на 2 Tb U.2 - около 50.000 за штуку, а нужен Raid минимум из 2 шт, + кабели + мат. плата с разъемами oculink стоит на 40 Т. р. больше похожей без них

          3. MSSQL мы купили давно и заплатили за него один раз, а диски желательно менять профилактически раз в три года, или уж если совсем затягивать, то раз в 5.

          4. Множество других организаций не используют MSSQL или переходят с него на Postgres

          UPD: А если вспомнить, сколько такие диски стоили в момент взлета криптовалюты "Чиа" и наводнений, разрушивших фабрики на Тайване и т. п., да еще умножить это не на 2 а на 4, потому что кластер...


      1. edo1h
        21.10.2022 11:18

        ИМХО сравнивать накопители по единственному параметру — интерфейс — это плохая идея.


        1. sukharichev
          21.10.2022 16:52

          Тут я полностью с вами согласен, но мы все дружно сидим и ждем, пока найдется добрый человек, или организация с бесконечным бюджетом денег и времени, которые кааак соберуться, каак выкатят нам массовый тест всех видов железа для 1С и best practice как это все готовить. Пока не дождались и читаем скупые рекомендации от 1С и инфостарт. Спасибо автору, потратил силы и время и сделал, что мог.


          1. edo1h
            21.10.2022 17:24

            речь была лишь про то, что делить накопители по признаку sata/nvme некорректно, конкретная модель накопителя важнее, чем интерфейс (особенно, если учесть, что в статье и комментариях мы не ограничиваемся dc-накопителями).


  1. Fa11en_Angel
    21.10.2022 08:51
    +2

    Что такое NVMe x3?

    Если речь о PCI-E Gen 3, то надо так и писать. X используется для обозначения количества линий PCI-E, а никак не версии. А 3 линии у NVME в PCI - нонсенс


    1. schvii Автор
      21.10.2022 10:16

      Да, моё упущение. Добавил строчку: предлагаю дальше для упрощения просто указывать NVMe x3 для SSD на шине версии 3 и NVMe x4 с PCI-express версии 4. Но постараюсь в ближайшее время переделать всё на gen3 (или v3) чтобы не было больше вопросов


      1. khajiit
        21.10.2022 16:18

        Это все равно запутывает. Когда хочется сократить выражение вида "smth1 on smth2" — используют @, он менее запутывающий и давно устоялся в качестве предлога "на" или "в".
        NVMEx4@v3.


  1. teplolub
    21.10.2022 09:15

    Для корректного сравнения файловой и серверных версий на RAM диск нужно переносить и служебные файлы SQL серверов. Например, для MS SQL нужно перенести базу Tempdb. Эта база активно используется при перепроведении документов. Не увидел информации об этом в статье.


    1. schvii Автор
      21.10.2022 10:18

      Это делалось


  1. ptr128
    21.10.2022 10:06
    +1

    Хотелось бы отметить, что Windows для PostgreSQL инородная среда, под которой оценивать его производительность уж точно не стоит. По двум причинам:

    Во-первых, PostgreSQL каждый объект БД (раздел таблицы, индекс и т.п.) хранит в отдельном файле. А производительность даже древней ext3 при больших количествах файлов в одной директории, заметно выше, чем NTFS. Что уж говорить о современных файловых системах? В MS SQL эта проблема решается просто отказом от работы с файловой системой в процессе работы сервера и размещением всех объектов БД в одном или нескольких постоянно открытых файлах.

    Во-вторых, PostgreSQL активно пользуется fork(), реализация которого под Windows далека от оптимальной. В первую очередь из-за отсутствия Copy-on-Write. Иными словами, если под Linux fork() выполняется почти мгновенно, откладывая копирование страниц памяти на потом, и только при их модификации, то под Windows такой возможности нет и при fork() выполняется принудительное копирование всей памяти процесса.


    1. edo1h
      21.10.2022 11:22

      А производительность даже древней ext3 при больших количествах файлов в одной директории, заметно выше, чем NTFS

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


      1. sukharichev
        21.10.2022 12:03
        +1

        У меня есть каталог на windows 2008r2 - сервере, лежащий на Raid1 из жестких дисков, в NTFS, где лежат несколько милионов документов в нескольких сотнях тысяч папок. Сколько именно я не могу сказать, потому что не могу ни зайти в него проводником, ни посчитать их скриптом powershell, сервер при этом зависает намертво. Диски в порядке и по смарту и по тестам поверхности и ФС chkdsk.
        И есть копия этих же данных на Linux в Ext4, на одиночном диске. Там нет графического интерфейса, чтобы проверить, зайду ли я туда Наутилусом, но скрипты и du с ними работают вполне нормально. Считать их там я не пробовал, но разница даже по перемещению скрипта и подсчету занятого места явная


      1. ptr128
        21.10.2022 12:49
        +1

        Во-первых, раз речь об 1С, количество файлов может оказаться под миллион, так как каждый раздел и индекс - отдельный файл. По крайней мере на первой попавшейся мне сейчас под руку продуктивной БД PostgreSQL 500 таблиц хранятся в 7 тысячах файлах.

        Во-вторых, это MS SQL держит все файлы открытыми, так как их у него на пальцах можно пересчитать. PostgreSQL так не делает и открывает/закрывает файлы по мере надобности в них. И в том то и проблема, что на современных FS в Linux операции открытия/закрытия файлов при работе PostgreSQL занимают меньше миллисекунды (не забываем об указании noatime,nodiratime при монтировании), тогда как на NTFS - несколько миллисекунд. Оба времени - с учетом кеширования.


        1. edo1h
          21.10.2022 16:46

          Во-первых, раз речь об 1С, количество файлов может оказаться под миллион,

          не может


          так как каждый раздел и индекс — отдельный файл. По крайней мере на первой попавшейся мне сейчас под руку продуктивной БД PostgreSQL 500 таблиц хранятся в 7 тысячах файлах.

          чтобы число файлов выросло до миллиона, надо или создать миллион таблиц/индексов (чего в стандартных конфигурациях явно не бывает), или в существующие записать петабайт (ЕМНИП постгрес создаёт по файлу на гигабайт)


          PostgreSQL так не делает и открывает/закрывает файлы по мере надобности в них

          так увеличьте max_files_per_process. 1с рекомендует 8к как начальное значение, и увеличивать с ростом базы.
          https://its.1c.ru/db/metod8dev/content/5866/hdoc


          1. ptr128
            21.10.2022 19:15

            Для того, чтобы число файлов PostgreSQL выросло до миллиона, достаточно несколько десятков тысяч таблиц, что я легко наблюдал на производственных предприятих. Любая таблица без индексов - уже минимум три файла (данные, карта свободного места и карта видимости). Каждый индекс - два файла (индекс и карта свободного места). То есть, одна таблица с восемью индексами - два десятка файлов. И это не считая вороха временных таблиц на каждого пользователя.

            "Под миллион", как я писал выше - это фактическая картина для 1С на предприятии по производству ювелирных часов.

            И при чем тут количество файлов для серверного субпроцесса? Эти субпроцессы форкаются в PostgreSQL по десятку-другому на один запрос.


            1. edo1h
              22.10.2022 01:51

              Для того, чтобы число файлов PostgreSQL выросло до миллиона, достаточно несколько десятков тысяч таблиц, что я легко наблюдал на производственных предприятих. Любая таблица без индексов — уже минимум три файла (данные, карта свободного места и карта видимости). Каждый индекс — два файла (индекс и карта свободного места). То есть, одна таблица с восемью индексами — два десятка файлов. И это не считая вороха временных таблиц на каждого пользователя.

              "Под миллион", как я писал выше — это фактическая картина для 1С на предприятии по производству ювелирных часов.

              ваши оценки: под миллион файлов, по файлов на таблицу — итого выходит многие (не один-два) десятки тысяч таблиц.
              я такого не видел. и не хотел бы увидеть.


              И при чем тут количество файлов для серверного субпроцесса? Эти субпроцессы форкаются в PostgreSQL по десятку-другому на один запрос

              вы про распаралеливание запросов? нет, параметр был ещё до этого:
              https://www.postgresql.org/docs/8.1/runtime-config-resource.html
              если я правильно понимаю, он означает как много открытых файлов может быть в серверном процессе (читай клиентском подключении), при превышении этого числа процессу придётся закрывать какие-то из открытых прежде файлов (а при повторном обращении к ним открывать их снова)


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


              1. ptr128
                22.10.2022 02:32

                Дело в том, что на больших БД, во-первых, активно используют частичные индексы. И таких индексов на таблице может быть несколько десятков. Во-вторых, для удобства архивирования старых лет и повышения производительности, все транзакционые таблицы (документы, регистры и т.п.) партиционируются по годам. А каждая партиция, с точки зрения PostgreSQL - отдельная таблица со своими индексами. Так что, если горизонт хранения лет 10 (что совершенно нормально, если убытки в первые годы работы покрываются потом прибылью последующих лет), такое количество файлов получить несложно.


                1. edo1h
                  22.10.2022 07:38

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


                  1. ptr128
                    22.10.2022 11:30

                    Вам нравится партиционировать выборочно вручную и только большие таблицы. Но из этого не следует, что нельзя партиционировать автоматизировано все транзакционные таблицы. Я же не зря потребность в архивировании вынес раньше, чем производительность.


  1. rezedent12
    21.10.2022 10:09
    +1

    Что если это проблема windows, а точнее конкретной программы для создания виртуального накопителя? Для объективности надо сравнить с tmpfs в linux.


  1. net_men
    21.10.2022 10:17

    Долго боролись мы с 1С и её тормозами... в итоге пришли к следующему решению: сиквельную базу оставили на старом сервере с рейдами, а клиентскую часть я затолкал в новый сервак в виртуалку. Правда изначально этот сервер предназначался под файловое хранилище. Первое время было нормально, но после нескольких обновлений 1С стало ужасно тормозить. Самое интересное, что по производительности, не потребляется ничего, кроме оперативы, но чем больше пользователей входит, тем сильнее тормоза.

    Оперативы было выделено 12ГБ, 2 проца Bronze 3106 (1,7ГГц)... работает обычно 12-15 клиентов. Как я говорил, занята была только оператива (до 97%) при полной загрузке... очередей по диску почти нет: изредка кратковременно очередь доходила до 5. По итогу, люди ждали загрузки 1С по несколько минут.

    Чисто ради эксперимента перетащил виртуалку с клиентами на старый временный сервак (i5 10400, 16ГБ под виртуалку)... и скорость существенно выросла, но не идеально... и по прежнему загружена была только оператива.

    На новом сервере рейд-массив 10 на хардах... на временном серваке обычный хард (по сути это обычный комп)... на обоих система работает на SSD.

    Кто может объяснить что нужно этой 1С? Контора, которая обслуживает 1С, не может нам ничего сказать... регулярно что-то обновляют в ПО, но ничего не меняется в скорости в лучшую сторону. Как увидеть реальную потребность 1С в ресурсах? Я предложил проапгрейдить процы на сервере до 4115R + добавить 64ГБ оперативы... но будет ли от этого существенный прирост в скорости - не понятно. Самое обидное, что организация готова платить, но за что?



    1. Elisy
      21.10.2022 11:29
      +1

      Когда у нас встала задача оптимизации, мы начали с изменения конфигурации. Перевели все блокировки на управляемые, тем самым ускорив параллельную работу пользователей. Сейчас не знаю, но несколько лет назад перевод MSSQL в режим версионника тоже давал ускорение.


      1. khajiit
        21.10.2022 16:26

        перевод MSSQL в режим версионника

        Это ALTER TABLE dbo.MyTable SET (SYSTEM_VERSIONING = ON)?


        1. Elisy
          22.10.2022 07:02
          +1

          ALTER DATABASE [mydb] SET ALLOW_SNAPSHOT_ISOLATION ON

          ALTER DATABASE [mydb] SET READ_COMMITTED_SNAPSHOT ON


          1. khajiit
            22.10.2022 10:28

            Спасибо


    1. sukharichev
      21.10.2022 11:30
      +1

      К сожалению, по нашему опыту улучшить производительность 1С "завалив" ее новеньким быстрым оборудованием получается, но совсем не так, как хотелось бы. Прирост мощностей в "попугаях" + 250% а быстродействия 1С - 25-30%.
      Однако и это уже хорошо.
      Обновления ПО на старом железе ухудшают ситуацию, потому что новое ПО приспосабливают делать работу быстрее, потребляя больше ресурсов и адаптируя под новые аппаратно реализованные алгоритмы.
      1С очень любит частоту процессора а не количество ядер, потому что многие операции невозможно (или разработчики 1С не умеют) разделять в многопоток. 1.7 Ггц и 12 Гб это очень мало для нее. Рассчитывайте минимум 4 Гб на платформу, лучше 8, +2 Гб на каждого пользователя. А в моменты перепроведений месяцев\кварталов оно способно сожрать 256 Гб ОЗУ в зависимости от вашей базы и объема документов.
      В нашем случае 4115R принес ускорение, но не сам по себе, а в сочетании с NVMe дисками и увеличением ОЗУ.

      UPD: Харды для 1С это смерть. Если хотите попробовать ускорится бюджетно, мы делали еще такой вариант: Мощный десктопный комп на Ryzen 7 3ХХХ (сейчас лучше 5ХХХ) с максимальной частотой и минимум 8 Ядрами, мат. плату с минимум 64Гб (желательно 128) ОЗУ и поддержкой 2 NVMe PCI-e 3.0 или 4.0. Систему на рейд из SATA SSD, Платформу и базы на NVMe, журналы и кэши на другой NVME. Все это уделает ваши чахлые "Bronze" в разы.


      1. net_men
        21.10.2022 12:16

        Всё понял, спасибо!

        Оператива уже была закуплена некоторое время назад (64ГБ)... но "не взлетело": как оказалось, она совместима только со вторым поколением процов, а стоит первое (об этом нет нигде информации, выяснилось только по факту... и то, производитель ответил вот так: пробуйте обновить бивас... если не поможет - нужно 2е поколение процов).

        Поэтому сейчас смотрю в сторону 4215R (не 4115 - опечатался) + NVMe на сервер с базой.

        Сейчас база лежит на хардовом сервере с оперативой 64ГБ (через пару недель она сжирала 30 гигов и начинала ещё больше тормозить: помогала перезагрузка... недавно немного подрезали аппетит СУБД), но процы там тоже унылые. Соединены серваки по 1Гб.

        ЗЫ: и всёравно я недоумеваю: почему не видно нагрузки на подсистемы... любой другой софт займёт все свободные ресурсы, пока ему не будет достаточно... а тут всё по минимуму и тормозит...


        1. nikweter
          21.10.2022 12:49
          +2

          Ну у нас 4215R - все не очень быстро. Там в разгоне все ядра 3.6Ггц, и в однопотоке 2300 попугаев. Я для тестов поставил на i5 10400 - там 4Ггц и 2600 попугаем - стало значительно лучше. Так что для 1с хорошо идут мощные десктопы типа i9 12900. Или Intel® Xeon® E-2388G - там колоссальные 3500 в однопотоке, это перебивает практически любые остальные опции в сервере.


        1. sukharichev
          21.10.2022 16:47
          +2

          "ЗЫ: и всёравно я недоумеваю: почему не видно нагрузки на подсистемы... " Сам испытываю те же чувства, но магией мониторить правильные показатели для работы 1С владеют не только лишь все. Я не владею. Я смотрел в sysmon\resmon и глубину очередей по дискам и ввод-вывод по процессам, пытался заглядывать в распределение памяти и в своп. В результате пришли к выводу, что повседневная производительность после апгрейда - хорошая, а по перепроведениям из абсолютно неприемлемой стала минимально достаточной, а для дальнейших улучшений нужен либо бюджет на еще больше быстрого железа, либо на найм аутсорса, который как раз все правильно помониторит, оптимизирует и почистит базу и т.д. Ни на то ни на другое денег пока нет.


    1. edo1h
      21.10.2022 11:44

      честно говоря, я из вашего описания вообще не понял кто на ком стоял.


      sql-версия? где лежит база? где запущен сервер приложений? клиенты толстые/тонкие? где запущены?


    1. Bessome
      23.10.2022 08:23

      Раз с железом чехарда, надо смотреть настройки сервера 1с. Или у Вас файловая версия?

      Для сервера 1С уменьшаем количество соединений на процесс до минимума от версии. Инструкцию под Стандартный сервер, корп сервер искать на инфостарте.

      Для сервера 1С %Appdata% и %temp% на одно дисковое устройство, базу данных на другое. Тюнинг ос. Регулярная очистка кэша 1с.

      При открытии тормозит из-за журнала 1с: читать как увеличить производительность и правильно работать с журналом 1С на инфостарте, хабр.

      А еще долго может искать лицензии hasp в сети на клиентах. Как раз минуты две таймаут. Настроить поиск по ip адресам машин с хаспом или выдавать лицензии сервером 1С.


      1. net_men
        23.10.2022 13:09

        Спасибо, проверю...

        Сервер лицензий 1С'ники вынесли на отдельный комп на *nix'е... Адрес в резерве. Кстати совсем недавно были проблемы с лицензиями: постоянно жаловался на нехватку, хотя сессий хватает. После долгих жалоб это поправили, но начались сильные тормоза.

        Тормоза не только в долгом запуске, но и в элементарной работе: выпадающие менюшки падают через несколько секунд после клика и т.п.


        1. Bessome
          23.10.2022 14:01

          Выпадающие менюшки: клиент и журнал регистрации...

          Опять же надо понимать, что за конфигурация, режим запуска толстый, тонкий клиент.

          Можно организовать веб-доступ, если конфигурация позволяет и перевести клиентов на доступ через веб. Соединений к серверу за счет этого меньше будет, скорость повысится


          1. net_men
            23.10.2022 14:18

            Конфигурация УПП (оно?). Клиенты толстые, но иногда вижу тонких.


  1. nikweter
    21.10.2022 10:35

    А клиенты где? На том же сервере? Или тонкие?

    Если на том же - памяти очень мало. Да и в принципе мало, 16Гб - это только для 1с, для БД отдельно нужно.

    1с очень любит частоту ядер. У Bronze 3106 (1,7ГГц) очень низкая, все будет мертвое. У i5 10400 в принципе норм, для 15 человек сойдет.

    Ну и CCД под базы, никаких хардов.


  1. DBA_KadushkinS
    21.10.2022 13:50

    А настройки postgres менялись перед тестированием? Или использовались из коробки? Какая версия Postgres?


    1. schvii Автор
      21.10.2022 13:52

      Уже отвечал в комментариях, а версия postgres указана в самом начале статьи. Установки все по умолчанию - "из коробки", так как хочу в ближайшие дни провести тестирование после тюнинга настроек


  1. Bessome
    21.10.2022 14:40

    Заранее прошу прощения, если пропустил выше, но:
    Не повлияло ли на тестирование размещение %temp% и прочих сервисных директорий на самом медленном диске в тестировании диска RAM? Мне кажется, по своему опыту, что ОЗУ должно выдать производительность на уровне SSD на PCI шине. Возможно, драйвер виртуального диска в ОЗУ требует настройки?