1С в облаке: как повысить производительность приложений
О технологиях

1С в облаке: как повысить производительность приложений

602
16 минут

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

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

1С-in-cloud

Производительность 1C складывается из суммы показателей производительности различных компонентов инфраструктуры, на которой развернута система. Это следующие компоненты: 

  • сервер баз данных,
  • СУБД на сервере баз данных, 
  • сервер 1С, 
  • конфигурация 1C, 
  • сервер лицензирования 1С, 
  • терминальная ферма, 
  • рабочие места пользователей, 
  • сеть на каждом участке взаимодействия всех компонентов.

Компоненты инфраструктуры и их влияние на производительность 1С

Сервер баз данных (+ файловый сервер)

Сервер базы данных — основа любой системы. При оценке его работы необходимо обращать внимание на

  • пропускную способность дисков в МБ/с, т. е. скорость чтения/записи данных;
  • скорость дисков в IOPS, влияющую на скорость отклика базы данных;
  • равномерность нагрузки на ядра CPU.

Методы оптимизации

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

Сервер СУБД на сервере базы данных

Для оптимизации работы сервера СУБД необходимо обращать внимание на 

  • потребление кэша;
  • попадание в кэш и, в особенности, «вымывание» кэша;
  • размер базы, блокировки (locks), ожидания (waits), дедлоки (deadlock);
  • фулсканы таблиц;
  • состояние статистики.

Методы оптимизации

  • Методы, используемые для сервера СУБД, а также отслеживание загрузки дисков и размера базы данных.
  • Регламентные процедуры для обновления статистики и перестроения индексов.
  • Эксперименты с параллельным обращением. Например, если сервер 1C не очень любит параллельные запросы, можно попробовать сделать два-три потока на уровне СУБД вместо одного.

Сервер 1С

Необходимо обращать внимание на 

  • частоту процессора;
  • равномерность нагрузки на ядра CPU (бывают ситуации, когда выделяется много ядер виртуальной машине, но в силу каких-то причин используются не все);
  • скорость диска с логами – технологический журнал и журнал регистрации, в которые пишет 1С, должны лежать на быстром диске;
  • количество активных сессий (если их слишком много, процессоры начинают «метаться» между ними);
  • количество рабочих процессов;
  • потребление памяти (рабочие процессы «съедают» всю оперативную память, если ее мало); 
  • контекстные переключения;
  • редакцию (ПРОФ/КОРП) – если не хватает производительности, подумайте о переходе на лицензии КОРП.

Методы оптимизации

  • Высокочастотный процессор и быстрые диски.
  • Эксперименты с параметрами рабочего процесса, чтобы он не съедал большое количество памяти или не содержал большое количество сессий пользователей.
  • Уменьшение числа информационных баз на одном сервере – лучше сделать несколько серверов в кластере поменьше, а не пытаться выгрузить на один сервер много баз (необходимо обратить внимание на контекстные переключения и эффективность работы процессора при большом количестве процессов).
  • Разделение ролей по узлам кластера (для редакции КОРП), т. е. разделение функций по разным серверам.
  • Разделение данных на активные и архивные на уровне 1С, поскольку чем меньше база данных, которая лежит под 1С (активная часть), тем лучше.

Конфигурация 1С

Конфигурация — это то, с чем непосредственно работают пользователи и что правят разработчики. С точки зрения влияния на производительность необходимо обращать внимание на 

  • процесс разработки и тестирования: иногда обновления, тестирование которых показало отличные результаты, выкатывают в прод, и сервер «ложится», потому что разработчик не учел, что обновление требует очень больших ресурсов, и с ним будет работать очень много пользователей;
  • качество кода, особенно если его пишут неопытные сотрудники. Их работу должны всегда контролировать эксперты;
  • встраивание APDEX в код для отслеживания происходящего в системе;
  • оптимизацию запросов, чтобы пользователь получал из базы данных только нужные ему строки;
  • полномочия пользователей, поскольку разным сотрудникам нужны разные объемы данных. Например, рядовому сотруднику можно ограничить запуск больших отчетов или работу с большими объемами данных, с которыми работает главный бухгалтер.

Методы оптимизации

  • Тщательное тестирование кода перед выкаткой в прод.
  • APDEX для ключевых и длительных операций. 1C позволяет встраивать в код строки с результатами запросов и с комментариями, чтобы можно было видеть выполняемые пользователями действия и причины сбоев. Например, если у двух пользователей 1C работает по-разному, APDEX позволяет выявить, что причина более медленной работы систем может заключаться, например, в том, что один пользователь запрашивает отчет за неделю, а другой — за год; т.е. дело не в том, что запрос работает медленно, а в том, что он обрабатывает большой объем данных.
  • Запрет на выгрузку больших объемов для тех, кому это не нужно, поскольку сотрудники могут по незнанию выставлять неверные параметры и запускать большие отчеты, которые могут «положить» всю систему.
  • Разделение данных на активные и архивные.
  • Вынос вложений на файловый сервер.

Есть разные инструменты, с помощью которых можно измерить скорость работы конфигурации 1С. Например, тест Гилева, APDEX, внутренние инструменты 1С. Но надо понимать,  что любой тест — это синтетика. Авторы вкладывают в тест определенные параметры. 

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

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


Сервер лицензирования

Бывают случаи, когда ограничения на производительность накладывает сервер лицензирования, потому что он размещен далеко, например, за VPN с большим временем отклика, а 1C любит часто проверять лицензию. Соответственно, необходимо обращать внимание на

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

Методы оптимизации

  • Размещать сервер рядом с кластером.
  • Следить за нагрузкой и вовремя увеличивать параметры сервера.

Терминальная ферма

Администраторы делают больше всего ошибок именно здесь. Если правила использования сервера СУБД и сервера 1С все более-менее понимают, то терминал часто пытаются установить на одну машину, выдав ей огромное количество CPU и огромный объем памяти. Это делать не стоит, учитывая контекстные переключения и количество сессий. Процессору очень сложно работать с большим числом одновременных сессий. 

Необходимо обращать внимание на

  • количество пользователей на один узел;
  • потребление CPU и памяти;
  • контекстные переключения процессора;
  • скорость дисков для профилей пользователей.

Методы оптимизации

  • Следовать рекомендациям вендора по параметрам узлов (например, Microsoft рекомендует размещать не более 50 пользователей на одном узле – это оптимальное число, с которым узел справляется. CPU и память уже подстраиваются под задачи, которые решаются на терминальной ферме).
  • Иметь запасной узел на случай выхода из строя или регламентных работ, чтобы пользователи могли переподключиться с минимальным влиянием на их работу.
  • Отслеживать нагрузку на CPU и память и вовремя их увеличивать.
  • Хранить профили пользователей на быстрых дисках, потому что клиент 1С хранит в профиле пользователей все временные данные. Таким образом, даже если сервер 1С быстро выдает данные, клиент 1С может задерживать выдачу данных пользователю из-за узких мест.

Рабочие места пользователей

Необходимо обязательно следить за тем, чтобы у пользователя было комфортное и быстрое рабочее место без лишнего ПО, и антивирус не съедал все ресурсы процессора, а также чтобы было стабильное подключение. Необходимо обращать внимание на 

  • характеристики рабочих компьютеров, тип клиента 1С (толстый, тонкий, веб);
  • что установлено помимо клиента 1С;
  • метод подключения к сети (WiFi, провод, VPN);
  • скорость подключения к сети.

Методы оптимизации

  • Правильно подобранное «железо».
  • Правильно настроенное ПО, особенно антивирус.
  • Быстрая сеть.
  • Переключение пользователя на терминальную ферму, если нет возможности обеспечить хорошее рабочее место.

Сеть

Необходимо обращать внимание на 

  • пропускную способность сети;
  • задержки по сети.

Методы оптимизации

  • Располагать все компоненты как можно ближе друг к другу, в том числе все серверные компоненты, такие как сервер 1С, терминальный сервер, сервер лицензирования, что легко обеспечить в облаке.
  • Для пользователей обеспечить быстрое подключение рабочего места или предоставить терминальный доступ. При этом VPN через спутник — не самое лучшее решение, потому что сервер может сформировать какую-либо форму за секунду, а до пользователя эта форма будет добираться минуту, и субъективно будет казаться, что медленно работает система 1С.

Как заставить 1С работать быстрее

Мы рассмотрели различные компоненты системы и их влияние на общую производительность работы 1С. Ответим теперь на вопрос: как заставить 1С работать быстрее? 

Есть два основных сценария – добавление ресурсов и адаптация архитектуры системы.


1С повышение производительности


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

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

Отметим, что в облаке можно все это сделать очень быстро и эффективно, не дожидаясь нового оборудования. 

Адаптация архитектуры – гораздо более гибкий способ, чем добавление ресурсов. Основное преимущество этого подхода — практически неограниченное горизонтальное расширение. Ограничением будет служить только размер облака и дата-центра. 


1С в K2 Cloud: отвечаем на ваши вопросы

О производительности систем 1С в облаке

Влияет ли модель процессора на производительность базы данных?

На производительность базы данных влияет количество ядер, так как база данных – это работа с дисками. Чем больше потоков при обращении к дискам вы обеспечите, тем выше будет скорость. Частота процессора тоже будет влиять, но в меньшей степени и для сложных запросов.

Что вы можете сказать по поводу AMD Epyc для 1С в сравнении с Intel?

Опыта работы с этим процессором в нашем облаке нет, поскольку мы используем высокопроизводительные процессоры Intel® Xeon® Gold Processor 6348, 6244 и 6254. 

Расскажите подробнее про активные и архивные данные

При работе с СУБД есть одно простое правило. Чем меньше размер базы данных, тем меньше расходуются ресурсы на работу с такой базой. Поэтому ту базу, с которой работают большинство пользователей, нужно стараться делать как можно меньше. Один из вариантов – разделить базу на активную и архивную. Например, документы, которые были проведены более года назад (или любой другой период в зависимости от потребностей вашей организации), можно положить в отдельную базу на отдельном сервере. Делать это можно с помощью регламентных заданий на уровне кода 1С. А для пользователей делать склейку данных, если они берутся из разных баз. Также можно выбрать другие критерии разделения. При таком раскладе ваша активная база всегда будет иметь небольшой размер, с ней легче будет работать, проще оптимизировать, обслуживать, бэкапить.

Как часто и какие выполняются регламентные работы, ребилды индексов, пересчет статистики и т.п., какое влияние на доступность/производительность 1С оказывается?

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


О мониторинге 1С в облаке

Какой инструмент вы предлагаете для мониторинга производительности?

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

Будет ли работать нормально RAS, если есть проблемы с производительностью 1С?

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

Как вы можете прокомментировать встроенные средства мониторинга базы данных Tantor?

Очень хорошая платформа мониторинга и управления. Ее наличие является преимуществом этой СУБД по сравнению с другими продуктами. Однако надо учесть, что подключение сторонних сборок потребует покупки дополнительной лицензии. Для мониторинга самой Tantor она бесплатна. Если сравнивать с мониторингом с помощью Zabbix, то тут есть преимущество – платформа Tantor хранит планы запросов, поэтому вы всегда можете сравнить два запуска одного и того же запроса и проанализировать, что поменялось.

Можно ли быстро получить результат анализа итогов мониторинга?

Процесс анализа метрик по итогам мониторинга – это комплексный итерационный процесс, Иногда возникает потребность в длительном сборе данных, тюнинге и последующем анализе. 


Преимущества K2 Cloud и поддержка 1С в облаке 

Какая архитектура у облака K2 Cloud?

В основе облака лежит гипервизор KVM и программно-определяемые СХД и сети. ПО для управления облаком написано полностью нами. Используются процессоры трех моделей от Intel, диски SSD и HDD. Для дисковой подсистемы используется искусственное ограничение скорости в зависимости от типа и размера диска, что позволяет пропорционально обеспечивать заказчиков требуемыми ресурсами.

Какие есть типы дисков в облаке, количество IOPS?

Мы предлагаем 3 типа дисков: HDD и два SSD с разными ограничениями по IOPS (10 IOPS/GB и 50 IOPS/GB). 

HDD можно использовать для размещения архивной базы, что позволяет сэкономить. SSD с лимитом 10 IOPS/GB нужно применять для системных разделов, где лежит операционная система, и для данных СУБД. На высокопроизводительных дисках с повышенным лимитом можно хранить tempdb, транзакционные логи и тому подобные части СУБД, а также журнал 1С, если он активно пишется. 

Какой Postgre и Linux вы используете?

Разные в зависимости от потребностей заказчика. Отечественные сборки Postgre и дистрибутивы Linux также используем. На них есть спрос.

Есть ли у вас компетенции по системам 1С? Если проблема с IaaS – понятно, а если проблема с самой 1C, вы сможете помочь?

У нас есть 2 выделенных департамента, которые профильно занимаются развитием сервиса 1С как из K2 Cloud, так и на локальной инфраструктуре наших заказчиков. Мы можем решить такие вопросы, как аудит производительности, устранение проблем производительности, миграция с SAP на 1С, миграция с площадки на площадку, внедрение 1С,  поддержка 1С и многие другие.

Решения по проблемам 1С будут предложены в рамках поддержки облака или это отдельная услуга?

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

Ваше облако более выгодно по сравнению с арендой выделенного сервера?

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

Сколько баллов в тесте Гилева может получить система 1С в K2 Cloud?

35 баллов - http://www.gilev.ru/virtual/

Есть ли у вас специалисты, которые могут помочь со скоростью проведения документов в 1С:ERP? ПТУ по одному из контрагентов в среднем проводятся за 20 секунд (и это ночью без активных пользователей). Далее детали: настройки сервера по рекомендациям 1С сделаны в диспетчере задач, процессор загружен на 30%, очередей к дискам нет, сеть вроде тоже тянет. 512 ГБ ОП. В замере производительности на первой строке по времени 105 раз выполнение запроса (занимает 15% времени)

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

Какая стоимость услуги предоставления облачной 1С? Входят ли в стоимость услуги лицензии 1С, СУБД, ОС, системы резервного копирования?

Стоимость услуг предоставления инфраструктуры 1С из облака рассчитывается исходя из суммы виртуальных машин (vCPU, vRAM, vSSD, vSAS, vSATA) + ОС + СУБД + резервное копирование с нужной глубиной хранения и графиком РК + дополнительные услуги (сеть, лицензии RDS и др). Лицензии 1С также могут быть включены в стоимость и оказание услуги в формате «единого окна». Если вы направите нам запрос на расчет, мы вышлем бюджетную оценку согласно вашему текущему сайзингу.

Гарантируете ли вы backup на 100%? 

Если речь про консистентность, то все зависит от метода резервного копирования, насколько инструмент умеет «морозить» базу данных. Этот механизм есть у проприетарных агентских решений, а также в облаке есть интеграция с Windows VSS и возможность запускать скрипты для подготовки СУБД на Linux посредством облачного агента (по аналогии с VMware Tools). Но в любом случае резервные копии нужно периодически проверять на возможность восстановления, равно как и отрабатывать механизм восстановления всей системы – от сервера приложения до сервера СУБД.

Чем ваша поддержка отличается от поддержки 1С?

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

19 февраля 2024
Cloud Security Services: безопасное облако для бизнеса
По данным из открытых источников, 9 из 10 опрошенных российских компаний с выручкой от 15 млрд руб. в год активно используют облачные сервисы. Но вместе с востребованностью облачной модели возрастает и обеспокоенность бизнеса: можно ли в облаке выстроить надежную защиту данных?
1 минута
143
20 ноября 2023
Что такое Kubernetes? Знакомимся с дико популярной платформой контейнерной оркестрации
С появлением микросервисной архитектуры и технологии контейнеризации разработчики и администраторы стали совсем по-другому тестировать и развертывать современное ПО.
1 минута
704
1 ноября 2023
Незаменимых нет. Сервис на базе Nextcloud вместо привычных корпоративных облаков

Привет, Хабр! Меня зовут Александр Фикс, я менеджер по развитию бизнеса K2 Cloud. Сегодня поговорим о тренде локализации, о том, что происходит на рынке файлообменников с уходом западных решений и какие альтернативные продукты есть у бизнеса в данный момент.

1 минута
192
12 января 2023
Российский Kubernetes, какой он? Знакомьтесь, платформа Deckhouse

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

2 минуты
209
10 января 2023
Заоблачные возможности: как облачные сервисы используются в бизнесе
В 2022 году облачные сервисы стали одним из наиболее стремительно развивающихся направлений в ИТ. Рост рынка облачных вычислений постоянно ускоряется: в 2020 году его подтолкнула пандемия, а в 2022 - курс на миграцию на отечественные решения.
0 минут
202
scrollup