Элементарный способ ускорить вашу 1С в два-три раза


Как ни странно, для меня оказалось открытием, что скорость работы 1С (всех процессорных задач) можно ускорить более чем в два раза элементарной настройкой Windows.

Долго гадал, почему из трех практически идентичных компьютеров Core I7 одного и того же поколения 1С на двух работает быстро, а на третьем существенно медленнее.

Так как там серверная БД, пришлось серьезно вникать в анализ производительности БД, купил даже курс
"Ускорение и оптимизация систем на 1С:Предприятие 8.3"  и кстати не сочтите за рекламу — очень доволен остался… Парни просто профи в вопросе и умении излагать материал…
По советам из этого курса внедрил подсистему, фиксирующую время выполнения операций и стал изучать на 3х секундном процессе открытия определенной формы сколько тратится на запрос БД /процессорную обработку / Передачу данных на клиент.

Начал анализировать, у каких пользователей, в какое время, с какого сервера/клиента получается быстро или медленно.

Конечно же, поменял сервера местами, снова измерил время работы и выяснил что одинаковые сервера с чрезвычайно похожими сетапами дают разное время открытия формы. Хоть тресни.

Пошел к бородатому и чрезвычайно толковому сисадмину, рассказал про этот парадокс и он дал ответ, от которого во мне что-то перевернулось…

А я говорит, в одном сервере на днях в настройках электропитания поставил режим "Высокой производительности". Ну или в дополнительных параметрах питания, нашел раздел "Управление питанием процессора" — "Минимальное состояние процессора" — и поставил настройку 100%


 

Каково же было мое удивление, когда я замерил скорость открытия формы…

Ускорение и оптимизация систем на 1С:Предприятие 8.3

 

Я думаю, пояснять этот график не надо….

Конечно, грамотный айтишник скажет, что еще в БИОС надо выставлять максимальную производительность процессора, что бы в Windows уже не требовалось за этим следить. Но для сервера лезть в БИОС это целая история, причем ночная… А изменить сделать предложенную настройку настолько просто и очевидно — что стало стыдно за то, что потребовалось так много лет, что бы дойти до этой простой истины…

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

— Использование скоростного SSD (можно SATA3, можно M.2)

— Запас оперативной памяти

— Windows тоже ставить на SSD или же обязательно переносить на SSD диск
     — файл подкачки
     — КЭШ сервера 1С (в реестре отредактировать команду запуска сервера)
     — Терминальных пользователей вынес в отдельную виртуальную машину (тоже на SSD)
     — Если используем решения на "обычных формах" — то никакой PostgreSQL — только MS SQL (Реагирую на гневный комментарий… — дело, конечно не в формах, а в технологии запросов, которые применялись в старых конфигурациях, когда допускалось соединение виртуальных таблиц без их предварительной записи во временную таблицу). 

— Если решение на управляемых формах, то используем Web сервер для доставки приложения. Особенно заметно на файловых базах — ускорение получается даже на том компьютере, где лежит эта база (что казалось бы парадокс). А у сетевых клиентов — просто космос!!!

— Регулярное тестирование БД с пересчетом итогов.

— Если SQL — не забываем про регламентное обслуживание SQL базы.

По рекомендации пользователя PerlAmutor  в комментариях — обращаю внимание на сведения от 1С https://its.1c.ru/db/metod8dev/content/5904/hdoc

Также рекомендую прочитать статью Скорость работы 1С8 файловой по сети

42 Comments

  1. vano-ekt

    [:||||:]

    Reply ↓
  2. nvv1970

    Кэп, кэп, кэп. Про это уже написано, рассказано… много много.

    Перепечатка курса?

    Про pg vs ms хрень полная. Автор выставляет себя дилетантом. И как можно путать формы, режим приложения и режим блокировок?

    Reply ↓
  3. Aleksey81

    Про Postgre vs MS не хрень. Выполнение запросов в старых конфигурациях, где не используют временные таблицы, а делают сразу объединение виртуальных таблиц на postgre делается неэффективно и по времени в 3-5 раз медленнее. Это зафиксировано в официальной документации и хорошо видно при формировании прайс листа в УТ 10 в двух разных sql.

    Reply ↓
  4. Aleksey81

    (2) И поясните, пожалуйста, где были перепутаны «формы», «режим приложения», и «режим блокировок»?

    Reply ↓
  5. Aleksey81

    (4) Попробую угадать. Вам не понравилось упоминание о неэффективности использования PostGre на приложениях с обычными формами. Что ж. Это понятно. Здесь, вероятно, надо было указать длинную цепочку событий:

    Обычные формы -> это старые конфигурации -> 1С в старых конфах использовала старую методологию в запросах -> В таких конфигурациях не редкость объединение виртуальных таблиц без их предварительного выделения во временные -> PostGre медленно работает, если использовалась эта «старая» методология. -> в старых конфах PostGre не эффективен.

    Reply ↓
  6. insurgut

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

    Reply ↓
  7. PerlAmutor

    На всякий случай, если кто-то попал сюда в поисках решения с производительностью сервера кидаю ссылку на ИТС, где упоминается в том числе и режим повышенной производительности: https://its.1c.ru/db/metod8dev/content/5904/hdoc (информация по ссылке не полная, остальные твики в гугле).

    Reply ↓
  8. Aleksey81

    (7) Спасибо, добавлю в публикацию, если вы не против

    Reply ↓
  9. PerlAmutor

    (8) Я только ЗА.

    Если кто-нибудь напишет утилиту или скрипт позволяющий делать подобные настройки на этапе установке сервера 1С в автоматическом режиме, было бы замечательно.

    Reply ↓
  10. Aleksey81

    (10) И тебе привет, Андрей!

    Reply ↓
  11. Aleksey81

    (9) Если кто-нибудь напишет утилиту…. Остальные будут бояться ее запускать… Особенно в эпоху вирусов-шифровальщиков….

    Reply ↓
  12. PerlAmutor

    (12) Есть github, пожалуйста, выкладывайте исходники, будем сами собирать.

    Reply ↓
  13. maxim_1c

    Спасибо автору, наткнулся на публикацию буквально в тот момент, когда у меня выполнялась ресурсозатратная операция. Настроил сервер — сэкономил время.

    Reply ↓
  14. CheBurator

    Автор, видимо, или молод или стар настолько, что успел забыть больше чем знал 😉

    про режим энергосбережения лет наверное десять назад еще Павел Баркетов из СофтПоинта подробна на своих очных семинарах и рассказывал и вживую показывал…

    https://www.youtube.com/watch?reload=9&v=OXuagO8JrRg

    Reply ↓
  15. Adilgeriy

    ну еще можно базу на диск в памяти положить. еще быстрей. M2 только самсунг 970 pro

    Reply ↓
  16. Vlx

    Может конечно и очевидные вещи. И уже об этом говорилось ранее.

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

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

    Поэтому публикация однозначно +.

    Reply ↓
  17. starik-2005

    Бородатый админ — маст хэв!

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

    Reply ↓
  18. Vlx

    (16)

    M2 только самсунг 970 pro

    Т.е. не хуже, чем 970. Так следует понимать?

    Reply ↓
  19. w.r.

    Знал про это. Но главное никогда об этом не забывать ) Автору спасибо!

    Reply ↓
  20. Ziggurat

    Интересная и полезная статья. Новый, достаточно сложный материал изложен грамотно и доходчиво! Автор, огромное спасибо.

    Reply ↓
  21. Adilgeriy

    (17)да их скорость чтения/записи в 6-8 раз превосходит ssd на sata

    Reply ↓
  22. DarkAn

    (0)

    купил даже курс «Ускорение и оптимизация систем на 1С:Предприятие 8.3»

    . Читая автора сложилось впечатление, что курс только куплен, но не пройден (с домашними заданиями), т.к. в данном курсе о данной настройке так же говориться.

    PS Я, про «Этот курс». Спасибо за курс Андрею и всей команде портала за его доступность, как в денежной, так и в интеллектуальной составляющей.

    Reply ↓
  23. shard

    а где про использование Web сервера для доставки приложения почитать можно?

    Reply ↓
  24. Aleksey81

    (23) Вы правы, осилил пока только четверть курса.

    Reply ↓
  25. Aleksey81

    (24) Да, конечно. https://infostart.ru/public/646384/

    Reply ↓
  26. Gilev.Vyacheslav

    А сколько Алексея ждет открытий когда он научится план запроса анализировать, да виртуалку настраивать…

    Reply ↓
  27. Aleksey81

    (27) Сделаю себе это подарком на новый год 🙂

    Reply ↓
  28. frkbvfnjh

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

    Reply ↓
  29. F1215

    Спасибо за статью. В принципе все это не раз пережовывалось но здесь хоть читать приятно

    Reply ↓
  30. Aleksey81

    (29) Договорились, экспертов по баянам слушать не буду. Спасибо за добрые слова.

    Reply ↓
  31. herfis

    Мастерство заголовка, блин.

    «Где можно натупить с настройкой сервера и просесть в производительности в два-три раза» — было бы ближе к телу.

    Reply ↓
  32. VasilVtoroy

    На всякий случай. M2 это форм-фактор диска(даже семейство форм-факторов), а sata — протокол. Есть, и не мало, ssd в форм-факторе m2, которые работают по протоколу sata.

    Более быстрый протокол называется NVM.

    Reply ↓
  33. _Enot_

    Спасибо за статью.Полезная. Возьму на вооружение

    Reply ↓
  34. rovenko.n

    (18)А на файловых базах поможет? Часто для скорости приходится что-то тестировать до того, как на сервер обновления загружат.

    Reply ↓
  35. starik-2005

    (35)

    А на файловых базах поможет?

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

    Reply ↓
  36. Созинов

    В принципе все очевидно, но напомнить никогда не мешает. Статья кратенько так написана, в самый раз чтобы вспомнить. Автору плюс. По PG vs MS можно подробнее, где и что написано, кто проводил замеры?

    Reply ↓
  37. Aleksey81

    Замеры проводил я лично. А где написано — искать надо. Год назад это очень внимательно изучал. Теорию уже не найду, а практику — очень легко воспроизвести самому.

    Reply ↓
  38. nvv1970

    (5) только наверно не объединение, а соединение)

    Я за точность высказываний. Чтобы человек, не понимающий темы не делал смысловой привязки к формам. Потому что этим человеком может оказаться заказчик, который увидит ОФ и сделает абсолютно идиотский вывод плохой работе ПГ.

    Спасибо за исправление. Извините за резкость и «гневность»)))

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

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

    Reply ↓
  39. user1090556

    что подразумевается под » — КЭШ сервера 1С (в реестре отредактировать команду запуска сервера)»?

    Reply ↓
  40. Aleksey81

    (40) Это значит, что в реестре нужно найти ветку [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices1C:Enterprise 8.1 Server Agent] в которой лежит команда запуска сервера ImagePath = «C:Program Files (x86)1cv88.3.13.1644in
    agent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d «C:Program Files (x86)1cv8srvinfo» -debug

    Кстати именно в ней мы ставим флаг -debug.

    Посмотрев внимательно на эту строку увидим такой поддекст: -d «C:Program Files (x86)1cv8srvinfo». В этом каталоге вы как раз и найдете «серверный» кэш всех использовавшихся вами баз.

    Reply ↓
  41. user1090556

    (41) обычно debug я ставлю в такой последовательности, и отладка работает: «C:Program Files1cv88.3.13.1644in
    agent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -debug -d «C:Program Files1cv8srvinfo»

    Имеется ввиду что кэш можно перенести на другой диск ускорив тем самым работу сервера?

    Reply ↓
  42. Aleksey81

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

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *