Долго гадал, почему из трех практически идентичных компьютеров Core I7 одного и того же поколения 1С на двух работает быстро, а на третьем существенно медленнее.
Так как там серверная БД, пришлось серьезно вникать в анализ производительности БД, купил даже курс
"Ускорение и оптимизация систем на 1С:Предприятие 8.3" и кстати не сочтите за рекламу — очень доволен остался… Парни просто профи в вопросе и умении излагать материал…
По советам из этого курса внедрил подсистему, фиксирующую время выполнения операций и стал изучать на 3х секундном процессе открытия определенной формы сколько тратится на запрос БД /процессорную обработку / Передачу данных на клиент.
Начал анализировать, у каких пользователей, в какое время, с какого сервера/клиента получается быстро или медленно.
Конечно же, поменял сервера местами, снова измерил время работы и выяснил что одинаковые сервера с чрезвычайно похожими сетапами дают разное время открытия формы. Хоть тресни.
Пошел к бородатому и чрезвычайно толковому сисадмину, рассказал про этот парадокс и он дал ответ, от которого во мне что-то перевернулось…
А я говорит, в одном сервере на днях в настройках электропитания поставил режим "Высокой производительности". Ну или в дополнительных параметрах питания, нашел раздел "Управление питанием процессора" — "Минимальное состояние процессора" — и поставил настройку 100%
Каково же было мое удивление, когда я замерил скорость открытия формы…
Я думаю, пояснять этот график не надо….
Конечно, грамотный айтишник скажет, что еще в БИОС надо выставлять максимальную производительность процессора, что бы в 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 файловой по сети
[:||||:]
Кэп, кэп, кэп. Про это уже написано, рассказано… много много.
Перепечатка курса?
Про pg vs ms хрень полная. Автор выставляет себя дилетантом. И как можно путать формы, режим приложения и режим блокировок?
Про Postgre vs MS не хрень. Выполнение запросов в старых конфигурациях, где не используют временные таблицы, а делают сразу объединение виртуальных таблиц на postgre делается неэффективно и по времени в 3-5 раз медленнее. Это зафиксировано в официальной документации и хорошо видно при формировании прайс листа в УТ 10 в двух разных sql.
(2) И поясните, пожалуйста, где были перепутаны «формы», «режим приложения», и «режим блокировок»?
(4) Попробую угадать. Вам не понравилось упоминание о неэффективности использования PostGre на приложениях с обычными формами. Что ж. Это понятно. Здесь, вероятно, надо было указать длинную цепочку событий:
Обычные формы -> это старые конфигурации -> 1С в старых конфах использовала старую методологию в запросах -> В таких конфигурациях не редкость объединение виртуальных таблиц без их предварительного выделения во временные -> PostGre медленно работает, если использовалась эта «старая» методология. -> в старых конфах PostGre не эффективен.
Делается уже на автомате, когда в плане энергосбережения ставишь Высокая производительность, чтобы компьютер не засыпал.
На всякий случай, если кто-то попал сюда в поисках решения с производительностью сервера кидаю ссылку на ИТС, где упоминается в том числе и режим повышенной производительности:https://its.1c.ru/db/metod8dev/content/5904/hdoc (информация по ссылке не полная, остальные твики в гугле).
(7) Спасибо, добавлю в публикацию, если вы не против
(8) Я только ЗА.
Если кто-нибудь напишет утилиту или скрипт позволяющий делать подобные настройки на этапе установке сервера 1С в автоматическом режиме, было бы замечательно.
(10) И тебе привет, Андрей!
(9) Если кто-нибудь напишет утилиту…. Остальные будут бояться ее запускать… Особенно в эпоху вирусов-шифровальщиков….
(12) Есть github, пожалуйста, выкладывайте исходники, будем сами собирать.
Спасибо автору, наткнулся на публикацию буквально в тот момент, когда у меня выполнялась ресурсозатратная операция. Настроил сервер — сэкономил время.
Автор, видимо, или молод или стар настолько, что успел забыть больше чем знал 😉
https://www.youtube.com/watch?reload=9&v=OXuagO8JrRg
про режим энергосбережения лет наверное десять назад еще Павел Баркетов из СофтПоинта подробна на своих очных семинарах и рассказывал и вживую показывал…
ну еще можно базу на диск в памяти положить. еще быстрей. M2 только самсунг 970 pro
Может конечно и очевидные вещи. И уже об этом говорилось ранее.
Но я пробовал изменял параметры энергосбережения и не могу сказать, дало мне это изменение какой-то эффект или нет.
Автор провел практическую работу, сделал замеры и говорит, что есть положительный эффект.
Поэтому публикация однозначно +.
Бородатый админ — маст хэв!
Вообще,про режим высокой производительности я пишу в комментариях примерно раз в неделю — до сих пор, оказывается, есть народ, который не знает, почему это 1С (и не только) начинает работать быстрее раза этак в два. Автор, ты-то хоть знаешь, почему?
(16)
Т.е. не хуже, чем 970. Так следует понимать?
Знал про это. Но главное никогда об этом не забывать ) Автору спасибо!
Интересная и полезная статья. Новый, достаточно сложный материал изложен грамотно и доходчиво! Автор, огромное спасибо.
(17)да их скорость чтения/записи в 6-8 раз превосходит ssd на sata
(0)
. Читая автора сложилось впечатление, что курс только куплен, но не пройден (с домашними заданиями), т.к. в данном курсе о данной настройке так же говориться.
PS Я, про«Этот курс» . Спасибо за курс Андрею и всей команде портала за его доступность, как в денежной, так и в интеллектуальной составляющей.
а где про использование Web сервера для доставки приложения почитать можно?
(23) Вы правы, осилил пока только четверть курса.
(24) Да, конечно.https://infostart.ru/public/646384/
А сколько Алексея ждет открытий когда он научится план запроса анализировать, да виртуалку настраивать…
(27) Сделаю себе это подарком на новый год 🙂
Спасибо за статью! В жизни всегда так — пока сам не разберешься, никто помочь не может, а как разберешься так сразу баян! Никого не слушай, особенно тех кто про баяны поет. Правильно сделал, что статью написал.
Спасибо за статью. В принципе все это не раз пережовывалось но здесь хоть читать приятно
(29) Договорились, экспертов по баянам слушать не буду. Спасибо за добрые слова.
Мастерство заголовка, блин.
«Где можно натупить с настройкой сервера и просесть в производительности в два-три раза» — было бы ближе к телу.
На всякий случай. M2 это форм-фактор диска(даже семейство форм-факторов), а sata — протокол. Есть, и не мало, ssd в форм-факторе m2, которые работают по протоколу sata.
Более быстрый протокол называется NVM.
Спасибо за статью.Полезная. Возьму на вооружение
(18)А на файловых базах поможет? Часто для скорости приходится что-то тестировать до того, как на сервер обновления загружат.
(35)
Поможет, если алгоритм написан неоптимально. Т.е. процесс обработки данных сменяется процессом получения данных из хранилища. Если такое поведение в алгоритме частое (пример — запрос в цикле), то даже на файловой системе данная операция повысит производительность (хоть и не в два раза). Если же сначала все данные выбираются, потом обрабатываются, потом записываются в систему, то изменения будут не такими большими, но тоже будут — интерфейс начнет реагировать быстрее на действия пользователя.
В принципе все очевидно, но напомнить никогда не мешает. Статья кратенько так написана, в самый раз чтобы вспомнить. Автору плюс. По PG vs MS можно подробнее, где и что написано, кто проводил замеры?
Замеры проводил я лично. А где написано — искать надо. Год назад это очень внимательно изучал. Теорию уже не найду, а практику — очень легко воспроизвести самому.
(5) только наверно не объединение, а соединение)
Я за точность высказываний. Чтобы человек, не понимающий темы не делал смысловой привязки к формам. Потому что этим человеком может оказаться заказчик, который увидит ОФ и сделает абсолютно идиотский вывод плохой работе ПГ.
Спасибо за исправление. Извините за резкость и «гневность»)))
Я рад, что у вас глубокие знания и опыт. Но нужна ответственность перед более неопытными коллегами за каждое свое слово. Поэтому давайте не оставлять за кадром такие важные моменты, тем более в статье.
Справедливости ради замечу, что такой сильной корреляции между формами и качеством запросов я не замечал. Наверно потому что в УФ ПГ тоже часто отказывается работать. Соединения со срезами, по два полных соединения в запросе и т.д. Последние конфигурации для РФ вроде хороши, но локализованные решения или сильно отстают, или сделаны некачественно. Поэтому для меня нет такой аналоги с формами и не будет никогда.
что подразумевается под » — КЭШ сервера 1С (в реестре отредактировать команду запуска сервера)»?
(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». В этом каталоге вы как раз и найдете «серверный» кэш всех использовавшихся вами баз.
(41) обычно debug я ставлю в такой последовательности, и отладка работает: «C:Program Files1cv88.3.13.1644in
agent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -debug -d «C:Program Files1cv8srvinfo»
Имеется ввиду что кэш можно перенести на другой диск ускорив тем самым работу сервера?
(42) Сам по себе перенос кэша имеет смысл только если системный диск перегружен, а диск на который переносите — способен работать в разы быстрее.. Что касается порядка команд — это едва ли имеет значение.