В облако на работу: Вишенка на торте. Быстродействие оборудования, нагрузочное тестирование, балансировка нагрузки в кластере серверов 1С на базе РЕД ОС 8

31.10.24

Разработка - Тестирование QA

Завершающая публикация цикла "В облако на работу:.. Рецепты от Капитана", в ходе которых был собран полнофункциональный рабочий контур 1С в сети на отечественной Ред ОС. С веб-серверами, доменной авторизацией, архивированием, отказоустойчивостью и прочая, прочая... В этой статье мы определяемся с быстродействием системы, проводим нагрузочное тестирование и отпускаем ее в свободное плавание (зачеркнуто) выпускаем ее в продуктовый контур, где, конечно же, придется отлавливать ошибки, мониторить состояние и т.п.

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

©А. С. Пушкин. Евгений Онегин

 

На этом моя серия публикаций о развертывании 1С Предприятие 8.3 на РедОС подходит к завершению.


 

Получился мини-курс по импортозамещению.

Кто прошел все публикации (и/или видео), тот сможет с минимальными затратами, прежде всего нервов, собрать контур для работы 1С Предприятие 8.3 на РедОС корпоративного уровня.

Надеюсь, ваше время не пропало зря.

Обращайте внимание на даты и номера релизов, все меняется, все течет.

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

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

©народный фольклор

 

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

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


Тем кто не любит много букв

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

Как тут не вспомнить момент, когда все начиналось в далеком 2019 году статьей 
1С и Яндекс.Облако Compute Cloud. Вдоль и поперек, кто хочет ненадолго предаться приятной ностальгии, может перейти по ссылке.

Кто не любит читать вообще, может посмотреть видео.

 

rutube
vk

Остальные, добро пожаловать.

Постановка задачи

Имеем прототип корпоративной windows-linux сети в облаке ©Serverspace.

 

 

Контроллер домена, сервер Windows 2012 R2, домен AD уровня Windows 2012. dc.test.loc

Рабочая станция Windows 10. win-cln01.test.loc

Рабочая станция РедОС 8. red8-cln01.test.loc

Сервер 1С РедОС 8 настроенный. red8-srv.test.loc

Сервер 1С РедОС 8 настраиваемый. red-srv.test.loc

Postgres 16 от PostgresPro

1С Предприятие 64-х 8.3.24.1467

все в домене test.loc. 

Имя домена *.local не рекомендуют коллеги РедОС.

все по железу 4ГБ RAM 50ГБ SSD 2 Ядра CPU

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

Отказоустойчивый кластер с балансировкой нагрузки на двух серверах 1С

Ее и проверим для начала
 

Балансировка нагрузки в кластере 1С

База для тестирования это типовая Зарплата и управление персоналом 3.1, как самая распространенная из баз 1С.

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



Принцип его работы: в серверном вызове создается временный текстовый файл, в него системная команда hostname пишет данные, 1С их выводит на форму.


 

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


 

Пройдя по окнам приложений 1С, можно увидеть, что плюс-минус распределение по серверам равномерное, на red8-srv чуть больше.

Его и нагрузим утилитой stress-ng на 5 минут.

В консоли администрирования 1С видно, как начала падать доступная производительность 


 

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

После этого можно запускать само нагрузочное тестирование.

Нагрузочное тестирование при помощи 1С:Корпоративный инструментальный пакет

Очень тонкий момент. Как вы яхту назовете...

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

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

  • Хороший путь это взять статистику по количеству документов за определенный период, например за прошлый год, обработок подобного рода достаточное количество и попробовать эмулировать тестовыми обработками похожую нагрузку, только сжатую во времени.
    Иными словами, если пользователи в течение года набили 1000 приемов на работу, 1000 увольнений и 10000 табелей рабочего времени, то их и надо пропорционально заносить во время теста, а не ввести 30 корректировок зарплаты и отчитаться об успехе.
    Он потребует написания этих тестовых обработок для заведения нужного количества документов и справочников.
  • Если такой статистики нет, но есть желание сравнить старый/новый контуры или получить значения для некоей средней базы 1С, можно взять из КИП стандартный нагрузочный тест.
    Да и в любом случае его не помешает прогнать для начала.
  • Промежуточный путь это взять готовые тестовые обработки рабочих мест кадровиков, расчетчиков и т.п. из раздела Обновления -> 1С:Корпоративный инструментальный пакет -> Дополнительные материалы на ИТС.
    Их потребуется доработать напильником для интеграции в типовую базу ЗУП с типовым же расширением нагрузочного теста из комплекта КИП.
    Никогда такого не было и вот опять... 

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

Я попробовал использовать как агента тестирования рабочую станцию Ред ОС 8 и получил странную ошибку, с которой надо разбираться - какое бы количество ни указать ВРМ, парочка из них не запустится, причем на всех агентах, т.е. запускается 8 из 10, если поменять общее число на 6, то запустится 4 из 6. :)


 

Поэтому ушел на клиентов windows как проверенный вариант и тест отработал штатно.





Возможно, просто где-то опечатался в настройках, все же эта статья для меня night builds.

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

Также можно посмотреть картину по клиентским сеансам, например
APDEX, APDEX-ксом, но могут быть и пользователи... Статистический подход к замерам производительности. Внешний отчет на СКД

По поводу использования 1С:Корпоративный инструментальный пакет, я помню, раньше на курсе 1С:Эксперт по технологическим вопросам говорилось, что использовать его может сотрудник организации, у которой есть лицензия.

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

См. Ответы на типовые вопросы по лицензированию «1С:Предприятия 8» там везде говорится об "основные поставки, которые содержат платформу, прикладное решение (конфигурацию)" т.е. на мой взгляд встраивать расширение в вашу конфигурацию должен покупатель поставки, но далее использование пока не регламентируется.

Желающие могут в комментариях подискутировать.

Если у вас нет времени/возможности использовать 1С:Корпоративный инструментальный пакет, то придется прибегать к подручным средствам linux, в котором правильнее сказать для которого написаны как всеобъемлющие пакеты тестирования, так и утилиты ставшие де-факто методом тестирования одного рода оборудования, сети, диска, etc.

Измерение производительности с помощью утилит
 

  • pgbench
     

О ней мы говорили ранее Построение отказоустойчивого кластера PostgreSQL. HAProxy, давай до свидания. Рецепты от Капитана

На лидере создаем и инициализируем базу pgbench.
sudo -u postgres psql -U postgres -c "create database pgbench;"
PGPASSWORD='123456' pgbench -h redos-vm -U postgres -i -s 5 pgbench

Затем с клиента проверяем по прямому соединению на лидер



Устанавливается вместе с пакетами postgres  

все остальные требуют установки и все присутствуют в штатном репозитории РЕД ОС

PGPASSWORD='123456' pgbench  -h red-srv.test.loc -U postgres -c 10 -j 1 -t 10000 pgbench

  • 7z

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

7z b



 

Еще два кроссплатформенных инструмента

  • iPerf

измеряющий пропускную способность сети между устройствами, одно из которых будет сервером, а второе клиентом тестирования

iperf -s и iperf -c <адрес сервера> в простейшем случае, но у утилиты есть достаточное количество настроек для любого тестирования сети



 

Еще больше настроек есть у 

  • fio

для замера производительности дисковой системы в Linux

Уважающие себя облачные провайдеры приводят тесты своих систем обычно в ее нотации,
у одного из них я и взял как образец файл test.ini со следующим содержимым:

[test IOPS]
blocksize=8k
filename=/tmp/testfile
filesize=1G
direct=1
buffered=0
ioengine=libaio
iodepth=64
rw=randrw
rwmixwrite=30
runtime=10
clat_percentiles=0
unlink=1

тогда запуск будет fio ./test.ini


 

  • Нагрузочный тест gilev.ru

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

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

Зато он четко продуман маркетологически. 



С красивыми картинками и названием.

И он на 1С, это магические слова.

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



Это работает.

Аналогичные результаты можно получить простым запуском бенчмарка 7zip, если вы измеряете производительность для своего понимания.

C’est tout... как говорят французы



 

Планы на будущее:

Подтянуть собственные знания, особенно 1С:Исполнитель хочется пощупать)

А если серьезно, то далее идет мониторинг и поддержка.

Поэтому, скорее всего, будет публикация "1000 мелочей..." с различными нюансами, вроде того как заново собрать контур patroni и где у PostgresPro прячется $PGDATA.

И на ИТС есть отличная статья про мониторинг, ее тоже хочется проверить и визуализировать.


 

Благодарности:

Благодарю компанию ©Serverspace за предоставленное оборудование, без поддержки собрать такой пингвинариум мне было бы негде.

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

Статья продолжает серию публикаций:

Серия "Рецепты от Капитана" на всякий случай

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Администрирование веб-серверов Сервера Нейросети Программист Платные (руб)

Сервер поиска по метаданным и поиска по коду, Сервер экспорта и поиска по документации, Сервер синтаксической проверки кода

17.06.2025    17039    0    Infostart    20    

113

DevOps и автоматизация разработки Тестирование QA Программист Пользователь 1С v8.3 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Автотесты 1С - готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарий – feature-файл, разработанный с помощью vanessa-automation. Запуск сценария выполняется интерактивно с помощью vanessa-automation или с помощью vanessa-runner в CI-системах. Доступно тестирование тонкого клиента. Поддерживаемые версии конфигураций 1С:Зарплата и Управление Персоналом 3 и версии КОРП: 3.1.35.48.

3600 руб.

05.08.2024    4049    22    1    

16

Тестирование QA DevOps и автоматизация разработки Программист 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Налоговый учет Платные (руб)

Готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарии возможно использовать как для vanessa-automation, так и для СППР. Поддерживаемые версии конфигураций ERP2 и КА2: 2.5.17.168.

2400 руб.

04.07.2022    11180    44    1    

35

Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Облачные сервисы, хостинг Программист Пользователь 1С v8.3 Управляемые формы 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Данная система предназначена всем, кому нужно выгружать данные в SPOT 2D или в ОРИМИ. Позволяет гибко настроить получение данных для каждого поля файла и файла выгрузки в целом. Имеет отборы по организации, складу, и папкам номенклатуры. Есть возможность выгружать данные как вручную, с выбором конкретного файла, за конкретный период, так и в автоматическом режиме в указанное вами время. Выгрузка может выполняться в файл или через http напрямую. Имеется подробная справка по настройке, а также примеры запросов для приведенных в примерах файлов выгрузки. Может работать в составе любой конфигурации!

18000 руб.

19.10.2018    29725    8    1    

10

Сервера Системный администратор Программист 1С v8.3 Бесплатно (free)

В статье говорится о консольной утилите от компании 1С под названием ibcmd. Она доступна как для операционных систем Windows, так и для Unix-подобных. Во многом схожа с rac, но функционирует независимо и предлагает свои собственные режимы работы. В этой статье рассмотрим два из возможных режимов использования этой утилиты: server и infobase.

17.10.2025    1557    AlexeyPROSTO_1C    2    

13

Тестирование QA 1С v8.3 Бесплатно (free)

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

01.09.2025    4836    Oksana_Makr    2    

16

Тестирование QA Программист Бесплатно (free)

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

29.08.2025    2065    Scorpion4eg    0    

11

Тестирование QA Программист Бесплатно (free)

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

13.08.2025    3400    olga_seva    2    

13
Для отправки сообщения требуется регистрация/авторизация