В облако на работу: Вишенка на торте. Быстродействие оборудования, нагрузочное тестирование, балансировка нагрузки в кластере серверов 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 за предоставленное оборудование, без поддержки собрать такой пингвинариум мне было бы негде.

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

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

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

См. также

Внешние источники данных Облачные сервисы, хостинг Программист Бизнес-аналитик Пользователь Руководитель проекта Платформа 1С v8.3 8.3.14 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Бытовые услуги, сервис Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Гостиничный бизнес Рестораны, кафе и фаст-фуд Реклама, PR и маркетинг Легкая промышленность, мода и одежда Управленческий учет Платные (руб)

Расширение позволяет автоматизировать управление картами лояльности и взаимодействие с покупателями при помощи интеграции корпоративной системы 1С и специализированного облачного сервиса "CARDPR". Автоматическая онлайн синхронизация сведений о владельце электронной карты лояльности и баланса бонусных баллов на карте между корпоративной системой 1С и мобильным устройством покупателя. Оповещение покупателя об изменении баланса его электронной карты лояльности и проведении каких-либо маркетинговых акций в компании при помощи рассылки push-сообщений на его мобильное устройство.

36000 руб.

20.07.2023    3201    1    2    

11

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

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

2160 руб.

05.08.2024    1272    12    1    

7

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

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

14400 руб.

19.10.2018    28696    7    1    

9

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

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

2400 руб.

04.07.2022    8364    38    1    

29

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

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

1800 руб.

20.01.2022    7778    19    0    

13

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

При многолетней эксплуатации 1С на Windows и MS SQL в базе накапливаются не самые оптимальные запросы, COM-объекты и скрипты, зависящие от ОС. Из-за этого процесс перехода на PostgreSQL и переноса сервера 1С на Linux неизбежно осложняется длительным исправлением кода и оптимизацией запросов. Расскажем о том, как с задачей такого рефакторинга справились в компании Avito.

13.11.2024    4507    klimat12    15    

24

Сервера Системный администратор Бесплатно (free)

На первый взгляд, добавление второго сервера в кластер 1С не должно вызывать проблем – все просто должно работать. Но на практике дело обстоит иначе. Несмотря на то, что все действительно работает, многие при этом сталкиваются с трудностями. Расскажем, когда нужно задуматься о втором сервере 1С в кластере, какие особенности работы второго сервиса с файлами и сервисами, и какие настройки ТНФ можно сделать для лицензий ПРОФ и КОРП.

31.10.2024    7705    a.doroshkevich    20    

66

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

Отдельный сервер лицензирования упрощает администрирование лицензий в сложных структурах с несколькими кластерами и тысячами пользователей. Расскажем о том, как настроить резервирование лицензий для крупной компании с высокими требованиями к доступности SLA 99.98% и автоматизировать переактивацию лицензий в случае возможных сбоев.

29.10.2024    1909    jul.dolganova    6    

16
Оставьте свое сообщение